Customer Milestone 3 Report of CMPE 451 Fall 2025 - bounswe/bounswe2025group5 GitHub Wiki

Report Date: 21.12.2025, 17:00

Group Number: 5

1. Weekly Reports and Meeting Notes

Weekly Reports:

Abdurrahman Arslan

Abdülkerim Kasar

Ali Bartu Konca

Arda Yalçındağ

Cengiz Bilal Sarı

Emre Kılıç

Serdar Bahar

Yusuf Onur Öksüz

Yüksel Eren Şen

Meeting Notes:

2. Project Documentation

3. Project Review

Executive Summary

3.1 Project Status Summary

By the Milestone 3, the WasteLess platform has matured into a fully functional, deployed final delivery of web and mobile applications. All functional and non-functional requirements defined in the Software Requirements Specification, except some minor ones such as implementing horizontal scalability, have been implemented, tested, and validated. Although there is still room for refinements and improvements, our application is complete and polished and can be considered Finished.

All planned deliverables have been completed and finalized. Design artifacts, implementation, documentation, and testing outputs are aligned with the final system behavior. The backend, web frontend, and mobile application have been deployed successfully. The v1.0.0 release represents a stable and deployable version of the platform.

The users are able to perform all the intended functions through our app such as creating personal waste goals, joining into community challenges, utilizing social side of the application through seeing posts, searching them with a semantic search, commenting to them, Seeing other users' profiles, following them, getting notifications, getting badges about their achievements in the application, and so on. Our final product, WasteLess, provides a platform for users to track their waste and reduce their environmental footprint while educating themself through a forum section to make an impact on protecting the environment. The final demo we took also confirmed that the system meets customer expectations in terms of functionality, usability, and accessibility.

3.2 Deliverable Status

Deliverable Status Related Link
Requirements Done Requirements
Use Case Diagram Done Use Case Diagram
Class Diagram Done Class Diagram
Sequence Diagram Done Sequence Diagram
Project Plan Done RoadMap General Plan Plan For Milestone 3
Git Contribution Plan/Standards Done Contribution Guidelines
Communication Plan Done Communication Plan
Meeting Notes Done Lab Reports Meeting Notes
Individual Contributions Done Individual Contributions
Release Of The Software Done 1.0.0
API Documentation Done Swagger API
(Extra) Postman Collections Done Postman

3.3 Final Release Notes

  • Completed all remaining functional requirements, including:

    • Standardized challenge units and point-based scoring.
    • Contextualized notifications with meaningful event references.
    • Achievement badges, rewards, and feedback mechanisms.
    • Moderator tools and reporting workflows.
  • Accessibility support enhancements and final compliance checks.

  • Verified WCAG 2.1 AA alignment for implemented accessibility features.

  • Finalized multilingual support and accessibility-aware i18n integration.

  • Released stable, production-ready backend, web, and mobile applications.

  • Published v1.0.0 as the official release with finalized documentation.

3.4 Process Improvements

After dicussing and materializing what we have changed throughout our project lifetime we could agree on the following bullet points for our process improvements:

  • Feedback-Driven Refinement: Following Milestone 2 demos and customer evaluations, we adopted a tighter and more structured feedback loop. Instead of treating feedback as high-level suggestions, we directly translated concrete usability and feature critiques—such as the need for notification previews, more flexible waste logging and impact visualizations into prioritized development tasks. This shift ensured that Milestone 3 focused on addressing real user pain points identified during demos rather than expanding functionality without clear user value.

  • Performance-Centric Refactoring: We shifted our process to prioritize Non-Functional Requirements alongside standard features. Recognized that system "smoothness" is vital for the UX, since only a "working" app is not sufficient. Hence we proactively refactored backend endpoints, database and frontend logic—such as reducing repetitive API calls and embedding data in notifications and switching to Vector-DB to minimize latency and enhance the application's responsiveness.

  • Automated Accessibility & Testing: We moved from manual verification to automated tooling, implementing custom static analyzers and expanding Jest unit test coverage. This allowed us to enforce WCAG 2.1 AA standards and logic correctness programmatically, reducing regression risks during the final sprint.

  • API-First Collaboration: We standardized our communication via updated Swagger documentation and shared Postman collections. This "contract-first" approach allowed the frontend and mobile teams to implement features in parallel with backend development, significantly reducing integration wait times.

  • Containerized Deployment: We matured our DevOps process by utilizing Dockerfiles for both backend deployment and mobile APK generation. This standardization eliminated environment-specific bugs and streamlined the migration to our new production server.

3.5 Final Milestone Demo Reflections

During our final milestone demo, we presented the fully realised WasteLess platform across both web and mobile. The demonstration highlighted not only the core functionality delivered throughout previous milestones such as waste goals, challenge system, and community features but also newer enhancements like post and comment reporting mechanism with moderator page, semantic search with predefined tags, badge system, and assistive technology support, i.e VoiceOver. Customers responded positively to the new features and overall polish of the product. The coherence of our application's features with the zero-waste domain is also praised considerably. The customers were overall satisfied with our final product.

3.6 What Could Have Been Done Differently

Although the project was successfully finalized and delivered as a stable and feature-complete system, several early-stage decisions could have been handled differently to improve architectural stability, reduce rework, and clarify product semantics. The following points outline concrete areas where earlier alignment and planning would have strengthened the overall development process.


Early Architectural Commitment to Scalability Boundaries

From the start of the project, scalability was treated as a future consideration rather than an architectural constraint. While this approach allowed faster initial development, it also meant that horizontal scalability requirements (e.g., stateless service design, scaling assumptions for storage and traffic) were not explicitly accounted for during early system design.

If scalability boundaries and assumptions had been defined earlier—even without full implementation—the backend architecture could have been structured in a way that would better support future horizontal scaling. This would have reduced architectural uncertainty and limited the need for later reassessment of deployment and infrastructure decisions.


Accessibility as a Foundational Design Constraint Rather Than a Later Enhancement

Although accessibility was always a project requirement, many accessibility-related improvements such as comprehensive screen reader support, dynamic accessibility labels, and automated contrast checking were implemented in later milestones.

If accessibility constraints had been fully integrated into UI and component design from the beginning, fewer UI elements would have required refactoring. Early enforcement of accessibility principles during design and component creation would have reduced implementation overhead and ensured more consistent coverage across the application.


Earlier Definition of API Evolution and Versioning Strategy

During the early phases of the project, API endpoints evolved organically as features were added and refined. While this flexibility supported rapid development, it also led to repeated adjustments on the frontend and mobile sides as endpoint structures changed.

Defining a clear API versioning and evolution strategy at the start—including expectations for backward compatibility and contract stability—could have reduced integration friction and rework. Early use of strict API contracts and mock endpoints would have further improved parallel development across teams.


Clear Early Agreement on Gamification Style and Mechanics

The gamification approach of the project changed multiple times throughout development, largely due to ambiguity in how mechanics such as challenges, points and progress feedback were intended to function and be perceived by users. In several cases, customers found the mechanics unclear or unintuitive, leading to redesigns and adjustments in later milestones.

This could have been mitigated by establishing a clear and agreed-upon gamification model at the very beginning of the project. Defining the intended style of gamification (e.g., progression-based, competitive, or achievement-driven), its core mechanics, and how it integrates with waste tracking and user motivation would have reduced ambiguity and minimized later revisions. Early validation of this model with customers would have ensured shared understanding and more stable implementation throughout development.

4. Progress Based on Teamwork

4.1 Team Contribution Summary

Team Member Contributions (Summary) Major PRs/Issues
Serdar Bahar I integrated the report API endpoints for posts and comments with error handling and loading states and reset password functionality with Jest test coverage. To improve the accessibility of the mobile application, I finalized VoiceOver and TalkBack support by implementing dynamic accessibility labels and hints, specifically for notification, post interaction, and language choice contexts. I authored unit tests using Jest and React Testing Library, covering CRUD operations for comments, post creation, and waste goals in the mobile application. I developed a custom contrast-lint.js static analyzer to programmatically detect and resolve color contrast issues across all mobile components. I improved UI clarity by providing text alternatives for all non-text functional elements like edit and delete icons. I established the i18n infrastructure, introducing Turkish language support and a persistent toggle across the main screens. On the maintenance side, I helped the configuration of the production Dockerfiles and generation of APK in all releases. 809, PR808,PR796, PR765, 743, 729, 710, PR677, PR605, 602, 600, 597, PR566, 564, 563, PR427, 424, 322
Abdülkerim Kasar Led mobile development as Mobile Team Lead and Group Communicator. Delivered customer-driven mobile improvements such as notification post previews, diversified waste logging, a redesigned and benchmark-based “My Impact on Planet” section, a fully refactored badge system with prioritization, a simplified profile structure via unified settings, and a direct mobile feedback submission flow. Earlier, strengthened moderation and account management with reporting and deletion flows, stabilized Explore navigation with infinite scrolling, fully integrated notifications with backend endpoints, expanded mobile unit test coverage, resolved critical bugs, and supported APK delivery. Initially reactivated and stabilized the mobile codebase, aligned it with evolving backend APIs, restored core features, prepared signed demo builds, generated realistic mock data, and coordinated documentation, demo planning, and task distribution to ensure consistent mobile scope across releases. #757, #794, #561, #629, #652, , #395, #361, PR#821, PR#796, PR#758, PR#680, PR#651, PR#632, PR#623, PR#504, PR#473, PR#442, PR#375
Emre Kılıç Implemented comprehensive mobile application features including user badge system with interactive modals. Developed search functionality with waste type filtering. Engineered mobile performance optimization, significantly reduced API calls and improved app responsiveness. Built complete challenge management system featuring creation, visual progress tracking, and waste logging. Configured backend addressing through .env file. Fixed critical pre-release bugs including visual issues, text translations, and missing UI elements. Contributed to APK generation process, unit testing framework for profile page, release publication, Git development policies documentation, and demo data population strategy. #828, #806, #802, #698, #718, #661, #514, #469, #710, #591, #526, #389, #321
Ali Bartu Konca Worked on code refactoring, testing, and code review across the project. Took responsibility for all aspects of activity logging and notification handling covering key events such as getting a follower, receiving likes on posts, new posts from followed users, report resolution notifications, and similar events of interest. Added notification previews to improve usability in compliance with Activity Streams 2.0. Optimized the notification and post data structure to reduce request overhead by embedding profile picture information directly into posts and notifications ensuring that profile images remain consistent when updated, while preventing repeated and unnecessary frontend requests for profile data. Led the creation of the project plan, prepared demo scenarios, presented the application in all demos, and generated mock data for the presentations. Implemented and reviewed unit tests, assisted with release processes, configured the application domain from my domain using Cloudflare, and handled server migration and helped HTTPS setup. Implemented badge triggers based on user activities and helped in Swagger API documentation. #PR404, #IS425, #IS456, #PR622, #PR655, #PR659, #PR712, #IS736, #PR799, #PR815, #IS823, #PR829
Yusuf Onur Öksüz Implemented the preview functionality for notifications, integrating optimized APIs to enhance listing performance and user engagement. Revamped the Challenges section by integrating the new gamification process, which involved connecting new endpoints, implementing the point scoring system, adding predefined type selection for challenge creation and new predefined sub-type selections for challenge loggin and adding a new challenge log history view. Took responsibility for the Milestone 3 demo, creating the presentation scenario, the comprehensive demo plan and presenting it succesfully. Actively tested new features developed by teammates, providing technical feedback to ensure functional stability and UI consistency prior to release. Attended meetings and planning phases to actively effect the project planning issue: mobile/ challenge, issue: mobile/ notifications, issue: specific types, issue: demo plan, PR 835, PR 843, PR 808
Cengiz Bilal Sarı Implemented backend and database part of the code. Dealt with the deployment part, prepared mobile apk for the release. Implemented follow feature, waste goal and waste log feature, authentication and security issues, challenge feature,report and moderator feature. Implemented semantic search by using huggingface vector embedding models and utilized Qdrant vector DB, configuration of it. Implemented triggers for the badges, waste goals and logs, challenges. Dealt with the deployment issues such as the configuration of the new machines, space objects for photos of profiles and posts, passing to https from http with nginx. Made the configurations of the Dockerfiles for build , dealt with the mobile apk release(its dockerfile) . Written unit tests for the controllers of the backend. Arranged postman collections so that other guys can understand the backend easily. Created swagger API.Contributed to demo planning, acceptance testing, milestone reporting, and established Git development policies. #PR1-jwt-token, #PR2-rest-standard-endpoint-change, #PR3-waste log-waste-goal, #PR4-semantic-search, #PR5-unit tests, #PR6-follow, #PR7-report, #PR8-feedback, #PR9-badge, #PR10-Milestone3-Unit-test, #766, #811, #801, #780, #538, #486
Arda Yalçındağ I was the part of the web frontend team and implemented several major components of the web application. I have implemented badge system with all related frontend components and icons. I have tracked the compliance of our web application with WCAG 2.1 AA standards and implemented/checked most of the features such as minimum color contrast ratios, text alternatives for non-text content and comprehensive VoiceOver support and compatibility. I have implemented follow feature altogether and introduced profile modal. I have implemented the challenges page and related components such as challenge cards, create challenge modal, and leaderboard. Since I was a new-comer, I learned frontend development and used frameworks such as React, TypeScript, CSS etc. from scratch. #800, #817, #743, #851, #636, 678, #445, #491

4.2 Status of Requirements

4.3 API Endpoints

API Documentation

Swagger API

Sample Usage Scenarios

Scenario 1: Reporting Content

  • Endpoint: POST /api/reports
  • Scenario Description: A user reports a post, suspecting that it is a spam
  • The Request:
curl -X POST "https://waste-less.alibartukonca.org/api/reports" \
     -H "Authorization: Bearer USER_JWT_TOKEN" \
     -H "Content-Type: application/json" 
     -d '{
        "reporterName": "cengizbilalsari2",
        "description": "Such a bad post",
        "type" : "Spam",
        "contentType":  "Post",
        "objectId": 1
     }' 
  • The Response:
{
    "success": true
}

Scenario 2: Giving Feedback

  • Endpoint: POST /api/feedback
  • Scenario Description: A user gives a positive feedback to the application which can be seen by the moderators
  • The Request:
curl -X POST "https://waste-less.alibartukonca.org/api/feedback" \
     -H "Authorization: Bearer USER_JWT_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "content": "Such a good designer",
       "contentType": "Compliment",
       "feedbackerUsername": "Aarslan"
     }'

  • The Response:
{
    "feedbackId": 29,
    "feedbackerUsername": "Aarslan",
    "contentType": "Compliment",
    "content": "Such a good designer",
    "createdAt": "2025-12-20T07:43:17.751+00:00"
}

Scenario 3: Semantic Search

  • Endpoint: GET /api/forum/search/semantic?username={username}&query={query}
  • Scenario Description: A user makes a search based on waste type.
  • The Request:
curl -X GET "https://waste-less.alibartukonca.org/api/forum/search/semantic?username=CuriousBartu&query=Plastic" \
     -H "Authorization: Bearer USER_JWT_TOKEN" \
     -H "Content-Type: application/json" 
  • The Response:
[
    {
        "postId": 4,
        "content": "No more paper or plastic cups. From now on, refill and reuse.",
        "createdAt": "2025-10-20T16:51:07.000+00:00",
        "likes": 17,
        "creatorUsername": "alcala.kelsy",
        "photoUrl": "https://waste-less-photo-storage-2.sfo3.digitaloceanspaces.com/post/no_more_plastic.png",
        "comments": 2,
        "liked": true,
        "saved": false,
        "profile_picture": "https://waste-less-photo-storage-2.sfo3.digitaloceanspaces.com/profile/d3ddf72e-3afd-4ae3-99e3-addd077b9063.jpeg"
    },
     ... 
    {
        "postId": 73,
        "content": "Riding green and recycling clean! ?‍♂️ Glass bottles ready to find a new life.",
        "createdAt": "2025-11-25T10:29:41.000+00:00",
        "likes": 25,
        "creatorUsername": "daimar_morreno_",
        "photoUrl": "https://waste-less-photo-storage-2.sfo3.digitaloceanspaces.com/post/01bb0ebc-f5e3-462b-a1bb-20fa09333f42.webp",
        "comments": 1,
        "liked": false,
        "saved": false,
        "profile_picture": "https://waste-less-photo-storage-2.sfo3.digitaloceanspaces.com/profile/7df0b0ed-fb98-4836-9793-94e0ba708d87.webp"
    }
]

4.4 User Interface / User Experience

4.4.1 Artifacts

4.4.1.1 Link to Frontend Code:

  • Mobile UI Implementation: repo
  • Web UI Implementation: repo

4.4.1.2 Screenshots:

Mobile

1. Report Form 2. Custom Waste Logging 3. Users Profile 4. Notifications
  • For Milestone 3, we started by implementing features that were previously only in a mock state. We implemented the APIs that send the report text to the backend for reporting a post or a comment, and we tested them end to end. We also shipped the custom waste log feature.
  • We made visual improvements to the User Profile section.
  • In the Notifications section, we implemented a preview of the related post, including the post image and a content snippet. We aldo added new notifications for feedback and reports. Later on under performance improvements, we worked with the backend team to make these API calls more efficient.
5. Challenge Page 6. Adding Logs 7. Profile Page 8. New Settings Button
  • Based on the feedback we received in Milestone 2, we updated the Challenge section to support more flexible logging options instead of limiting users to discrete and numeric inputs only.
  • We simplified the Profile page design and introduced a priority list for badges, displaying the most important ones directly on the profile.
  • Elements such as Edit Profile, Log Out, and Language Toggle were grouped under a single Settings section.
9. Change Password 10. Badges Catalog 11. Badges Description 12. Show My Impact Page
  • The Change Password feature has been enabled and is now available to users.
  • Badge catalogs and detailed descriptions have been created. Badges are ordered based on their rarity scores to encourage progression.
  • In the Show My Impact section, we aimed to introduce a clear benchmark that allows users to understand their environmental impact more effectively. On this page, users can view their individual waste logs over the past five months as historical data. While tracking their personal progress over time, they can also compare their behavior with global, category-wise consumption data. The chart grows along the y-axis because every unit of waste, even if recycled, still represents an environmental burden. Therefore, a reduction in waste over time indicates positive improvement.

Web UI

1. Report 2. Notifications & Previews
  • Reporting functionality was fully integrated into the web UI, enabling users to report posts and comments.
  • The Notifications section was extended with new notification types for reports and feedbacks.
  • Notifications now shows previews of object like comment, post text or feedback report texts.
  • Feedback button is added and it opens up feedback creation dialog with feedback types and text sections.
  • A Moderator page was added to support moderation workflows, enabling review and handling of reports.

1. Feedback 2. Moderator Page
  • Feedback button is added and it opens up feedback creation dialog with feedback types and text sections.
  • A Moderator page was added to support moderation workflows, enabling review and handling of reports.

5. Profile Page with Badges 6. Reset Password 7. Badge Catalog
  • The Profile page was redesigned for better placement and to include badges section.
  • Password reset functionality was enabled and made accessible through the web UI.
  • A dedicated Badge Catalog page was introduced, presenting badges in a clear and organized structure.

8. Challenge Page Grouping 9. Waste Type Search Buttons, search UI update
  • The Challenge page was restructured to group challenges with separate sections. Cardss has different designs according to their status. If they are inactive and reached to goal they are faded green, and if they didnt reach they are faded red. If the user is attended to a challenge there is a green ring around that challenge but if the challenge is ended and it didnt reach to goal then the ring is red.
  • There are waste type buttons in feed page to initiate search for specific waste types.
  • Search active mode is now noticably different to with blue puls animations all around with changed color of glass background, search is auto initiated after certain time, cleaning the search box turns off search mode.

10. Waste Impact
  • Waste charts now shows meaningful impact data both for platform and for the specific user.

4.4.2 UX & Accessibility Analysis

4.4.2.1 Accessibility & Inclusivity:

We had already implemented several accessibility/inclusivity implementations before Milestone 2 such as providing text alternatives for non-text content or maintaining a minimum contrast ratio. For Milestone 3, we focused on delivering a comprehensive and seamless screen reader compatibility, namely VoiceOver for the web and TalkBack for the mobile.

Example use case with TalkBack

In the Explore Screen, the notification list provides a complex set of information (sender, action, time, and read status). To ensure a TalkBack user receives all necessary context in a single announcement, we implemented a dynamic accessibilityLabel in the mobile application. Instead of TalkBack reading isolated text fragments, we programmed the container to announce a synthesized string:

// From explore.tsx: Dynamic label construction for TalkBack
accessibilityLabel={t("notificationItemLabel", {
    status: notif.isRead ? t("read") : t("unread"), // Spoken as "Read" or "Unread".
    message: messageText, // Spoken as the specific notification message (e.g., "Someone liked your post").
    time: timestamp, // Spoken as the relative timestamp (e.g., "2 minutes ago").
    defaultValue: `${notif.isRead ? "Read" : "Unread"}. ${messageText}. ${timestamp}`,
})}
accessibilityHint={t("doubleTapToOpenNotification", {
    defaultValue: "Double tap to open notification", // Added to inform the user that a double-tap will open the post preview.
})}

This approach allows a visually impaired user to navigate the feed efficiently, as the screen reader provides a coherent summary of the notification's state and purpose without requiring the user to explore multiple sub-elements.

4.4.2.2 Ethical Considerations:

In milestone 3, We have mitigated the ethical risks by adding post and comment report functionality and moderators to address reports. This new feature allows users to flag content that violates our community guidelines, such as harassment, misinformation, or other harmful content, and alerts administrators for review and action. By enabling the community to help moderate the platform, we address risks like bullying and abuse.

Other than post and comment report functionality, we haven't included a new feature related to ethical considerations. The application was already brought into a level in terms of conforming ethical principles previously. The application still collects only the minimal data necessary to provide its core functionality, and all data transmission is encrypted both in transit and at rest. We are asking approval of Personal Data Protection Law (KVKK) terms while signing up, and we continue to honor the consent and deletion controls implemented earlier. Further detail about our application's ethical considerations is available in Customer Milestone 2 Report.

4.5 Utilized Standards

4.5.1 Compliance Summary

4.5.1.1 Web Content Accessibility Guidelines (WCAG) 2.1 AA

Since the design phase of our application, we have aimed to met several guidelines from the WCAG 2.1 guidelines document. Although full coverage was not our aim, we have covered most of the important ones. Here is the summary of all the guidelines in WCAG 2.1 AA included in the v1.0.0 release in a list format with corresponding requirements in the SRS. Except requirements 2.1.2.7 and 2.1.2.8 which are not applicable to the mobile application, all listed requirements are both complied in web and mobile applications.

Requirement WCAG 2.1 Standard
2.1.2 Usability Requirements
2.1.2.5 All non-text content (images, icons, charts) shall have meaningful text alternative or label. 1.1.1 Non-text Content: All non-text content that is presented to the user has a text alternative that serves the equivalent purpose.
2.1.2.6 Minimum color contrast ratio of 4.5:1 for text and 3:1 for large text/UI shall be maintained. 1.4.3 Contrast (Minimum): The visual presentation of text and images of text has a contrast ratio of at least 4.5:1 and large-scale text and images of large-scale text have a contrast ratio of at least 3:1.
2.1.2.7 Interactive elements shall be fully operable via keyboard. 2.1.1 Keyboard: All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes.
2.1.2.8 Visible focus indicators for all interactive elements (keyboard, mouse etc.) shall be provided for all interactive elements. 2.4.7 Focus Visible: Any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible.
2.1.2.9 Navigational components shall be placed consistently through web pages. 3.2.3 Consistent Navigation: Navigational mechanisms that are repeated on multiple web pages within a set of web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.
2.4 Portability & Compatibility Requirements
2.4.3 The platform shall support screen readers such as NonVisual Desktop Access (NVDA) and VoiceOver. 4.1.2 Name, Role, Value: For all user interface components, the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies.

4.5.1.2 ActivityStreams 2.0

We have aimed to follow the core recommendations of the W3C ActivityStreams 2.0 standard for activity logging and notifications. Each logged activity consistently includes an @context, a top-level type, structured actor and object entities, and a published timestamp. By using unique identifiers for the objects of logs we can find the exact object with no problem. We also build the logs and notifications so that they all have the same structure.

Requirement ActivityStreams Reference
1. Context and Core Properties Activities include @context, type, actor, object, and published, matching the ActivityStreams core activity structure.
2. Timestamp Format The published field is generated in ISO-8601 format using the Java Instant API, satisfying temporal representation requirements.
3. Identifier Representation Our implementation uses unique identifiers for logs
4. Serialization Configuration A Jackson ObjectMapper is used, ensuring the same structure for all notifications and logs
5. Error Handling and Logging Errors during activity logging are caught and logged, ensuring system robustness.
6. Notification Integration Activities are correctly translated into persistent user notifications, preserving a clear link between activity events and user-facing updates.

4.5.1.3 Internationalization (i18n) Standards

Throughout the development phases, we have aimed to meet the W3C Internationalization Guidelines and BCP 47 standards. Our v1.0.0 release focuses on providing a robust infrastructure for English and Turkish, both in web and mobile applications. Below is the compliance summary of the functional requirements that we have identified from W3C Internationalization Guidelines and BCP 47 standards, relating to our single internationalization SRS requirement (2.1.2.1). The implementation descriptions cover implementations in both the web and the mobile application. While we achieved full content decoupling and language switching, features such as Right-to-Left (RTL) support and locale-aware numeric formatting were discarded to prioritize core implementation.

Internationalization (i18n) Requirement Implementation Description
Language and Locale Support We utilize BCP 47 language tags ("en", "tr") across the stack. The system supports multiple languages via react-i18next (Web) and i18next (Mobile), allowing users to select their preferred locale with a global fallback to English.
Content Internationalization All UI elements, including menus, messages, and error notifications, are decoupled from the code. Text is referenced via identifiers in en.json and tr.json files, supporting dynamic variable interpolation for personalized content.
Accessibility and Compatibility While we satisfy WCAG 4.1.2 by programmatically communicating language state to assistive technologies, the application lacks a specific switch for Turkish enunciation. VoiceOver currently defaults to English pronunciation rules.

4.5.2 Deep Dive

4.5.2.1 Web Content Accessibility Guidelines (WCAG) 2.1 AA

For the standards 1.1.1 Non-text Content to 3.2.3 Consistent Navigation, the implementations had been already done before milestone 2. Their detailed analysis including implementation details and links to the relevant development artifacts are provided in related part in the Customer Milestone 2 Report. How our implementation fulfills the requirements was described in detail in this document. The deep dive for the rest of the standards are in the following.

Name, Role, Value:

Evidence:

  • #743: The issue for the VoiceOver implementation for milestone 3 for both frontend and mobile.
  • #765: The PR for the VoiceOver implementation for milestone 3 in mobile.
  • #851: The PR for the VoiceOver implementation for milestone 3 in frontend.

Reasoning: We have already did some work on this standard in previous milestone. The details for those implementations are provided in the related part in the Customer Milestone 2 Report. Similar to our work in milestone 2, we have conducted a comprehensive check on all UI components and provided missing ARIA attributes and roles such as aria-label, aria-describedBy, aria-required etc. By providing these attributes, we aimed to achieve a seamless VoiceOver support (or any other assistive technology, we aimed for just one for this project). Thereby, names and roles of components can be programmatically determined as stated in the guideline. We showed the availability of this property by using the VoiceOver with our web application, and presented it in our customer milestone 3 demo presentation. By fulfilling this guideline, we reached a more accessible application for people who use these assistive technologies such as visually impaired people.

4.5.2.2 Activity Streams 2.0

Evidence:

Reasoning: We introduced a preview field to capture a description of events. This fulfills the standard’s requirement for the summary property, which is intended to provide a human-readable description of an activity. This allows our system to present "human interpretation" data alongside machine-readable JSON-LD.

We added Profile Picture field for performance considerations. By embedding the profile pictures in the notifications, we eliminated many unnecessary requests coming from frontend to load the profile pictures.

4.6 Testing & Quality Assurance

Test Execution Reports

New Test Evidence

Impact Analysis

Coverage: The test suite now provides 100% coverage for the Feedback and Report modules in backend. Specifically, it covers the logic for reporting various content types and ensures the Moderator Dashboard correctly filters solved vs. unsolved reports. Additionally, we have added coverage for the enhanced Notification System, verifying that preview snippets are correctly generated and truncated to 255 characters before being served to the client.

Coverage in mobile team perspective: The current test suite provides comprehensive coverage across the core user journey, spanning from initial authentication and guest access to complex social interactions and environmental goal tracking. By validating the ProfileScreen across 21 distinct scenarios, we have ensured that data-heavy components remain resilient during loading states, API failures, and empty data returns. The inclusion of specialized utility tests for badgeUtils further guarantees that the gamification logic remains consistent regardless of backend naming conventions. Additionally, the coverage of the WasteGoalScreen and ReportModal ensures that both the primary functional features and the community safety tools are verified for logic accuracy and localization support. This multi-layered approach ensures that critical path regressions are caught early, maintaining a stable and accessible experience for both guest and authenticated users.

For Frontend: Unit/Integration (Vitest) Scope: React components, hooks, and utilities (form validation, i18n, layout guards, feed/challenge UI pieces). E2E (Playwright) Scope: Core authenticated journeys and key pages load without errors: login, main page, feed, goals, profile, challenges. Includes challenge attend/leave and goal creation flows; assertions are tolerant of empty data states.

  • Bug Detection:
      1. During Postman testing of the notification endpoint, we discovered that the "Comment Notification" was pulling the username of the commenter instead of the actual Comment Text for the preview snippet. This would have resulted in confusing notifications for users. We corrected the mapping logic to ensure the preview field accurately reflects the start of the comment.
      1. In the mobile team implementation phase our badgeUtils tests caught a critical logic error where badges earned in the system were failing to render their icons. The backend was sending badge identifiers in SNAKE_CASE (e.g., WASTE_WARRIOR), but the frontend asset library was expecting camelCase (e.g., wasteWarrior). This resulted in undefined image sources and broken UI elements. We implemented and tested normalizeBadgeTranslationKey and normalizeBadgeSlug within badgeUtils. These utilities now sanitize any incoming string format from the API into a predictable format. The tests ensure that no matter how the backend formats the string, the frontend reliably maps it to the correct local icon and translation key.
  • Readiness: This suite confirms that the system is stable for the 1.0.0 Official Release by validating the workflow. By checking the opereations in the reporting and feedback logic and inconsistencies in notifications in milestone 3 and all other endpoints before via Postman, we have ensured that the social interaction features are both secure and user-friendly. The system now handles edge cases, with graceful error handling and consistent data state.

5. Individual Contributions

Abdurrahman Arslan

Member

Abdurrahman Arslan, Group 5, Frontend Team

Responsibilities

  • I continued to be primarily responsible for frontend implementation, UI/UX consistency, and standardization across the application. During this milestone, my focus shifted more towards refining existing features, improving usability, performance optimization, and ensuring alignment with acceptance criteria. I worked closely with backend changes (new endpoints), reviewed and tested multiple PRs, and contributed to acceptance planning and documentation while maintaining overall design coherence across pages.

  • Main contributions:
    For this milestone, I focused on improving the notification system with content previews, refining UI consistency (especially in feed, challenge, moderator, and report-related views), and performing a major UI makeover for better clarity and interaction feedback. I optimized frontend performance by reducing repetitive API calls, implemented fallbacks for invalid media, and improved challenge state visibility. Additionally, I actively reviewed, tested, and coordinated PRs, resolved conflicts, and contributed to acceptance planning and criteria documentation.


Issues

Code-Related Significant Issues
Issue Explanation Issue Link
Added content previews to notifications and integrated new backend endpoints for notification previews. issue
Updated challenge page to clearly distinguish active/inactive challenges and disabled actions for inactive ones. issue
Updated moderator page design and improved its functionality. issue
Documentation and Management Related Significant Issues
Issue Explanation Issue Link
Wrote Acceptance Planning and Acceptance Criteria as part of Lab 8. document

Pull Requests

Created / Contributed by Me

PR Explanation PR Link
Reviewed, tested, and merged report functionality PR; updated report button design for UI consistency. pr
Implemented notification content previews using new backend endpoints. pr
Added fallback images for posts and profile photos. pr
Updated challenge page UI and behavior for active/inactive challenges; included broader UI improvements. pr
Major UI makeover on feed page (search mode distinctions, animated post cards, improved comment section). pr
Updated moderator page design and functionality. pr
Added waste-type-specific button to feed page. pr
Performance optimization for profile photo API calls. pr
Expand the unit test coverage and update the ones that are failing because of changes pr
Merge to main pr
Expand unit test coverage and update the ones that are failing pr

Reviewed / Modified / Merged by Me

PR Explanation PR Link
Reviewed, tested and merged PR related to report functionality. pr
Reviewed, tested and merged PR of voicover compatibility works. pr
Reviewed, tested and merged PR of challenge type update pr
Reviewed PR, requested changes with visual feedback, resolved branching timing caused conflicts and merged. Reset password feature. pr
Reviewed and tested PR, applied minor changes, and postponed merge pending team discussion. Badge feature works. pr
Review, test and merged web icon implementation pr
Reviewed, tested and merged waste impact implementation work pr

Other Works

Explanation Link
Contributed to Acceptance Planning and Criteria documentation for Lab 8. document
Hot fixes for build errors and failing tests pr

Serdar Bahar (Mobile)

1. Responsibilities

Developed core additions to mobile features with test coverage, conducted code reviews. Managed APK generation and co-authored project documentation for Milestone 3.

2. Main Contributions

  • Finalization of Voiceover in mobile application
  • Integrating report API endpoints, with test coverage and report-type notifications
  • Implementing reset password functionality
  • Review of important code from other mobile developers
  • APK generation, data population for Milestone 3 demo

3. Significant Issues

3.1 Code-Related Issues

  1. #743 - Voiceover: Finalized VoiceOver and TalkBack support by implementing dynamic accessibility labels and hints, specifically for notification, post interaction, and language choice contexts.
  2. #798 - Reset Password: Implemented reset password modal in the profile page, rejection of weak passwords (also in register), with test coverage using Jest.
  3. #809 - Report (API endpoints): Integrated the report API endpoints for posts and comments (report modal was present) with error handling and loading states, with test coverage using Jest

3.2 Non-Code-Related Issues

  1. #761 - User Experience Assessment (Lab 8): Co-authored user assessment part in Requirements Review and Acceptance Planning document, which was a deliverable in Lab 8.
  2. #789 - Demo-Data Strategy (Lab 9): Co-authored demo-data strategy part in M3 Demo Strategy document, which was a deliverable in Lab 9.
  3. #822 - Population of New Images for the New Machine: Updated profile photos of users whose profile picture was not properly transferred from the old deployment machine.

4. Pull Requests

Created by Me

PR Explanation PR Link
Mobile / Voiceover #765
Mobile / Report API endpoints #808
Mobile / Report-type notifications #840

Reviewed-Modified/Merged By Me

PR Explanation Action  PR Link
Mobile / Show impact reconstruction, custom waste logging, reset password functionalities Implemented reset password functionality, reviewed the rest #796
Mobile / Search filters Reviewed, added 2 commits for accessibility improvement, and merged #806
Mobile / Badges Reviewed and merged #802
Backend / Badge triggers Reviewed and merged #790
Mobile / Improvements in notification system Reviewed, added 5 commits for bug resolution and improvement #758

Abdülkerim Kasar (Mobile)

1. Responsibilities

Mobile Team Lead, Group Communicator. Responsible for writing mobile code, developing and maintaining tests, placing new features on the timeline and distributing tasks within the team by collecting customer feedback.

2. Main Contributions

  • Implemented “Notification post preview” and “Diversified Challenge Waste Logging” based on Milestone 2 customer feedback.
  • Prioritized and implemented “My Impact on Planet” on mobile by combining user waste logs with researched impact data.
  • Refactored the badges system: visuals, catalog, descriptions, and rarity-based prioritization on profiles.
  • Simplified the profile page by consolidating options under a single Settings entry.
  • Added a mobile feedback submission feature with the required API integrations.
  • Contributed across milestone planning, testing, and documentation.

3. Significant Issues

3.1 Code-Related Issues

  1. #757 - Notification Section Post-Milestone-2-Feedback : After the Milestone 2 demo, the customer emphasized the importance of having a body preview and image (if available) in notifications to improve user engagement. Based on this feedback, body previews, images, and navigation links were added to the notification items.

  2. #794 - Structural Changes in "Impact on Planet" Section: Displaying the solid impact of logged waste was a frequently stated customer request in the first 2 milestones. To address this, I redesigned the graph to grow toward the negative y-axis, researched global average consumption per category from external sources and added them as benchmarks, and applied several improvements to the graph and modal behavior in a section that was previously basic and not fully accurate.

  3. #824 - Mobile Feedback System: Implemented a mobile feedback feature that allows users to directly share their thoughts with the app owners. As part of this work, the profile page was also redesigned to include an entry button point for this feature.

3.2 Non-Code-Related Issues

  1. #764 - Lab 8 Report: Revisit Requirements : Contributed to writing the revisit requirements section for the Requirements Review & Acceptance Planning Report.

  2. #786 - Demo Data Strategy: Collaborated on defining a demo data strategy by creating realistic user profiles and data states to ensure scenario authenticity and proper coverage of edge cases.

  3. #865 - User Interface/ UX for Milestone 3 Report: Added screenshots and explanations of newly developed mobile features to the Milestone 3 report.

4. Pull Requests

4.1 PRs Created by Me

PR Explanation PR Link
Badges Refactoring, Feedback, Settings Button, Other Users Page Fixes, Translations #821
Notification System #758
Show My Impact, Custom Waste Logging #796
Unit Tests for Newly Added Features #833

4.2 PRs Reviewed/Modified/Merged by Me

PR Explanation PR Link
Mobile Challenge Endpoint Fixes #835
Mobile Performance Improvements #828
To Main Merge #758

5. Additional Information

  • Supported the team in writing a series finale for our scenario.
  • Further info: Week12, Week 11

Emre Kılıç (Mobile)

1. Responsibilities

Mobile Team Member - Responsible for implementing core mobile features, optimizing application performance, managing API integrations, and ensuring high-quality user experience across the mobile platform.

2. Main Contributions

  • Implemented a comprehensive badges system with 15 badges across 5 waste types and 3 achievement levels
  • Developed search filter functionality with waste type filters for the Explore screen
  • Optimized mobile app performance by eliminating N+1 query patterns and implementing local image caching system
  • Contributed to demo data strategy and planning for milestone presentations
  • Participated in acceptance test planning and milestone reporting

3. Significant Issues

3.1 Code-Related Issues

  1. #801 - Mobile Badges Implementation: Implemented badges display on user profiles with API connection and unit tests. Delivered 15 badges across 5 waste types with interactive modal displays.

  2. #803 - Mobile Search Filter Implementation: Developed search filtering system enabling users to filter posts by waste type (Plastic, Paper, Glass, Metal, Organic) with comprehensive unit tests.

  3. #805 - Mobile Performance Optimization: Enhanced app performance by optimizing backend queries, removing N+1 patterns, implementing 3-week image caching, and cleaning up irrelevant code blocks.

3.2 Non-Code-Related Issues

  1. #764 - Lab 8 Report: Acceptance Test Planning: Contributed to writing the acceptance test planning section for the Lab 8 requirements review and acceptance planning report.

  2. #786 - Demo Data Strategy: Collaborated on defining demo data strategy including user creation, pre-populated states, and edge case handling to align with use case scenarios.

  3. #321 - Populating application data: Populated the application data for the presentation as we planned in demo data strategy.

4. Pull Requests

4.1 Created PRs

  1. #802 - Mobile Badges Implementation: Added comprehensive badges system with 1,121 additions across 6 files. Implemented 15 badges with clickable chips, modal descriptions, and profile integration. Merged successfully with 17 review comments addressed.

  2. #806 - Mobile Search Filter: Implemented semantic search with waste type filters (376 additions). Also resolved Profile Screen test failures and added comprehensive test coverage for search execution and filter buttons.

  3. #828 - Mobile Performance: Major performance optimization PR with 1,226 additions across 14 files. Eliminated N+1 queries, implemented local image caching with automatic cleanup, significantly improving feed loading speed and app responsiveness.

4.2 Reviewed PRs

  1. #758 - Milestone 2 Feedbacks: Notification System: Reviewed and approved enhancements to the notification system addressing feedback from Milestone 2 presentation (579 additions, 7 files changed).

  2. #796 - Show Impact Reconstruction & Custom Waste Logging: Reviewed major structural changes to the "Show my Impact" section and custom waste logging implementation (1,031 additions across 7 files).

  3. #821 - Mobile Badges and Final Improvements: Reviewed comprehensive PR including profile redesign, feedback system implementation, and general badges design improvements (1,035 additions, 28 files changed).

5. Additional Information

  • Actively participated in mobile team coordination and code review processes
  • Contributed to milestone demo preparation through demo data strategy planning
  • Maintained high test coverage for all implemented features with comprehensive unit tests

Ali Bartu Konca (Backend)

1. Responsibilities

I was generally responsible for the backend related tasks, namely adding functionality and reviewing/testing code. I also helped with the presentation tasks and release.

2. Main Contributions

  • Adding functionality to the backend
  • Reviewing code related to backend development
  • Demo presentation
  • Milestone 3 Documentation

3. Significant Issues

3.1 Code-Related Issues

Issues
 Adding profile picture to posts and notifications
2 Adding preview to notifications 
 3  Reviewing unit tests

3.2 Non Code Related significant issues

Issues
 I worked on populating the application with realistic data
2 I wrote the Activity Streams 2.0 Compliance for the Utilized Standards section in milestone 3 report  
 3  I modified the requests in postman which were later exported to swagger API by Cengiz Bilal Sarı and wrote the API scenerios

4. Pull Requests

PR  Description 
#779 Reviewed Get comment endpoint PR
#781 Reviewed feedback PR
#799 Opened notification review PR and added notifications to reports and feedbacks
#810 Reviewed challenge badge trigger PR
#815 Opened first comment and first like trigger PR
#829 Opened profile picture field in notifications and posts PR
#834 Reviewed unit tests PR
#842 Opened comment preview fix PR

5. Additional Information

I have also presented the app with Yusuf Onur Öksüz. And helped with the release of the final version.

Yusuf Onur Öksüz (Mobile)

1. Responsibilities

Mobile Team Member - Responsible for implementing core mobile features, managing API integrations, leading the demo strategy and planning.

2. Main Contributions

  • Implemented the preview functionality for notifications by integrating optimized APIs to enhance listing performance and user engagement.
  • Redesigned the Challenges section by integrating the new gamification process. Connectied new endpoints, added new predefined type selection feature, implemented the point scoring system, and added a challenge log history view.
  • Planned the demo strategy, created the demo scenario, presented the demo.
  • Participated in meetings and planning of the project. Contributed to the documentations and the task distributions in labs.

3. Significant Issues

3.1 Code-Related Issues

  1. predefined specific types: The new challenge logic accross the app.

  2. mobile/ challenge page redesign: Integrating the new gamification process. Connectied new endpoints. Added new predefined type selection feature, implemented the point scoring system, and added a challenge log history view.

  3. mobile/ notifications preview: Integrated the preview functionality for notifications by using new optimized APIs to enhance listing performance and user engagement.

3.2 Non-Code-Related Issues

  1. #789: Created the demo plan and strategy, latest version.

  2. #760: Requirements review & acceptance planning. Distributed lab tasks and written my section of "write user experience assessment"

  3. #863: Written Milestone 3 report section 3.4, 3.6 and 4.6 (it is in a different issue)

4. Pull Requests

4.1 Created PRs

  1. #835 - Mobile Challenge Page Redesign: Integrating the new gamification process. Connectied new endpoints. Added new predefined type selection feature, implemented the point scoring system, and added a challenge log history view. related to issue 1 and 2 above.

  2. #843 - Mobile Notification Previews: Integrated the preview functionality for notifications by using new optimized APIs to enhance listing performance and user engagement. related to issue 3 above.

4.2 Reviewed PRs

  1. #808 - Mobile/ report endpoints: Reviewed, tested, approved and merged the new report feature.

  2. #833 - mobile/ unit test for badges and feedback: Reviewed, tested and merged the new jest tests for the newly added features.

  3. #840 - Mobile/ report notifications: Reviewed, tested, approved and merged the notification connecction for the new feature "report".

5. Additional Information

  • Actively participated in mobile team coordination and code review processes
  • Contributed to data population via pointing out what data is needed and how it need to be populated

Cengiz Bilal Sarı (Backend)

1. Responsibilities

Backend Team Member - Responsible for implementing core backend features, management of database , management of deployment, release of the web application and mobile application.

2. Main Contributions

  • Implementation of feedback and report/moderator feature at backend
  • Implementation of badges and its triggers
  • Creation and deployment configuration of the new machine(since previous one's free credit ended, space objects for photo and profile, configuration of nginx for https.
  • Generate APK for mobile
  • Participated in test coverage of backend and milestone reporting

3. Significant Issues

3.1 Code-Related Issues

  1. #766 - Backend Report-Moderator Implementation: Implemented the report- moderator feature at backend. The users are able to report comments and posts and moderator can see the reports and delete the posts or comments.

  2. #780 - Backend Feedback Implementation: Feedback implementation is done at milestone 3, as we aim to gather feedback from our users to improve our app.

  3. #791 - Backend Badge Implementation: Implemented badges in backend part, they are obtained with triggers, the implementation is done at the db level since the badges are about the update of the tables and depend on the previous values in db.

3.2 Non-Code-Related Issues

  1. #387 - Generate APK for final release: I arranged the dockerfile for the last release and build the mobile apk with a dockerfile.

  2. #789 - Writing Demo Plan: I participated in the development of the demo plan, I have written the user roles part of it.

  3. #822 - Update of profiles and posts for new machine: Since we needed to pass to new machine, the space object of the new machine is required to be created and photos in the mysql db are needed to be updated with the new urls.

4. Pull Requests

Created by Me

PR Explanation PR Link
Feature/backend report #767
Feature/backend change of challenge feature for predetermined type #769
feature/(backend) reset password #771
feature/(backend): get comment endpoint #779
feature/(backend):badge triggers #790
feature/(backend): challenge badge trigger #810
Milestone 3 unit tests of the backend #834
to develop, or to main merge PRs #838 #835, and much more

Reviewed-Modified/Merged By Me

PR Explanation PR Link
Preview addition to notifications #799
First comment and first like badge triggers #815
Profile picture field in db #829
Fix comment preview #842

5. Additional Information

  • I wrote the swagger api of our backend.
  • Contributed to milestone demo preparation through demo data strategy planning
  • Maintained high test coverage for all implemented features with comprehensive unit tests in backend
  • Wrote the status of requirements, testing of backend part of the milestone 3

Yüksel Eren Şen (Frontend)

Yüksel Eren Şen (Frontend)

Responsibilities

  • I was responsible for frontend team leading. I reviewed all the implementations and discussed them before implementation. Checked and decided on the technologies used. Maintained the api connection with services. Implemented needed features mostly focusing on testing and moderating for this milestone.

  • Main contributions:
    For this milestone, I focused on implementing needed features like reporting, moderation and e2e tests. We faced lots of difficulties while trying to implement some advices from milestone 2 presentations. I reviewed and tried to ensure the stability of our app after improvements. Also again as a feedback from second meeting, I revisited the waste page to show the impact a user can do and fixed bugs in that page.


Issues

Code-Related Significant Issues
Issue Explanation Issue Link
Added get comment for frontend and asked for backend to implement endpoint issue
Implemented moderator page and everything related to it issue
Implemented e2e tests issue
Documentation and Management Related Significant Issues
Issue Explanation Issue Link
Wrote Acceptance Planning and Acceptance Criteria as part of Lab 8. document issue

Pull Requests

Created / Contributed by Me

PR Explanation PR Link
Reviewed and asked for correction pr
Reviewed after implementation in a meeting pr
Merged after testing pr [pr] (https://github.com/bounswe/bounswe2025group5/pull/769)
Implemented the moderation page pr
Fixed bug pr
Implemented the waste impact pr
General merge pr
E2E test pr
Final Merge pr

Osman Yusuf Tosun (Mobile)

Arda Yalçındağ (Frontend)

1. Responsibilities:

I am part of the frontend team, and I am responsible for the development of the frontend side of the project. Additionally, I am responsible for attending weekly and non-routine meetings, being part of the project planning, conducting necessary research, and writing reports and documentation.

2. Main Contributions:

For milestone 3, my main contribution was the development of the web frontend side of the project. In particular, I updated challenge cards and create challenge modal as discussed in meetings and according to updated backend endpoints. Predefined challenge types and logging predefined waste types are introduced for challenges in addition to new point logic. Furthermore, I implemented the comprehensive badge feature for web application. Created badge icons that is being used on both web application and mobile application. Created a badge catalog page and implemented a badge showcase component to enable users to show their earned badges. Moreover, I introduced tabs for edit profile modal and added reset password tab. Thereby, users are able to change their passwords in web application. Lastly, I have consideraqbly improved our application's VoiceOver support and made web application ready for customer demo. Aside these, I have reviewed and tested several PRs from my team members and merged them, proactively discussed important decisions for our project, attended all meetings and labs, and collaborated with my teammates about the project throughout the process.

3. Significant Issues:

3.1 Code-Related:

  • #782: Implementation of reset password feature for the frontend.
  • #783: Implementation of predefined challenge types and challenge logs for the frontend.
  • #800: Implementation of badge feature for the frontend.

3.2 Non-Code-Related:

  • #763: Written WCAG 2.1 and i18 parts of Current Compliance Status sections of lab 8 report.
  • #789: Written Timeline part in Demo Plan section of Lab 9 report.
  • #862: Written UX & Accessibility Analysis part of 4.4 User Interface / User Experience section and WCAG 2.1 part of 4.5 Utilized Standards section in Customer Milestone 3 Report.

4. Pull Requests:

4.1 Created

  • #797: Implementation of updated predefined challenge types and log types in the frontend.
  • #804: Bug fix in backend related to badge endpoint in the frontend.
  • #814: Implementation of reset password section in profile page in the frontend.
  • #817: Implementation of badge feature in the frontend.
  • #847: Addition of our application logo as a web page icon.
  • #851: Enhancement of VoiceOver support of our web application.

4.2 Merged or Reviewed

  • #792: Reviewed and merged the PR on feedback feature implementation in the frontend.
  • #818: Reviewed, tested, and merged the PR on fix of displaying unloaded images in the frontend.
  • #819: Reviewed, tested, merged, and asked for a change for a comprehensive UI makeover for the frontend.
  • #827: Reviewed and merged the PR on increasing test coverage for the frontend.
  • #837: Reviewed and merged the PR on updating moderator page design and functionality in the frontend.
  • #846: Reviewed and merged the PR on predefined waste type buttons in post searches in the frontend.
  • #848: Reviewed and merged the PR on general frontend updates on components such as feedback, notification, moderator etc.
  • #850: Reviewed and merged the PR on fixing of failed frontend unit tests.

5. Additional Information:

Joined every single meeting/lab and actively contributed to discussions, organized my team members, actively discussed every aspect of our project through our communication platforms, and helped team members both in frontend team and in other teams on development of the application.

6. Final Software Release & Setup

⚠️ **GitHub.com Fallback** ⚠️