Customer Milestone 2 Report of CMPE 451 Fall 2025 - bounswe/bounswe2025group10 GitHub Wiki
Customer Milestone 2 – Milestone Review
Project Name: Zero Waste Challenge
Team Name: Group 10
Date: 28.11.2025
1.Weekly Reports & Meeting Notes
1. Summary of Customer Feedback and Reflections
1.1. Summary of Customer Feedback
-
Meeting Date(s):
- 24.11.2025 – Customer Milestone 2 Meeting & Feature Demonstration
-
Main Positive Points:
- The demonstration of newly developed features was successful and well-received.
- Clear technical progress since Milestone 1.
- Code quality and project structure were appreciated by the customer.
- Previous feedback was addressed effectively.
-
Main Concerns / Requested Changes:
- The Activity Streams feature was not sufficiently domain-specific and requires further refinement.
- Some planned components were incomplete due to reduced team participation.
- A clearer roadmap and prioritization for upcoming domain-specific tasks is expected.
1.2. Team Reflections
-
What went well:
- The feature demonstration was smooth and technically solid.
- Core team members coordinated effectively despite missing teammates.
- Major blockers were resolved before the milestone meeting.
- Communication with the customer during the meeting was productive.
-
What did not go as planned:
- Four team members did not attend the meeting, affecting both presentation flow and the ability to answer certain questions.
- Activity Streams lacked the required domain-specific logic.
- Milestone preparation workload was unevenly distributed across the team.
-
Key lessons learned:
- Consistent attendance and equal contribution are essential for milestone success.
- Domain-specific features must be validated earlier to avoid misalignment with customer expectations.
- The team needs clearer internal deadlines and stronger communication practices.
- Prioritization of critical features is necessary, especially when team availability is limited.
2. List and Status of All Project Deliverables
| Feature | Status | Notes |
|---|---|---|
| Web Application | ✅ Completed | Dockerized and deployed via Docker Compose. Frontend Dockerfile with Nginx production build. Community features (posts, comments, likes) fully implemented. |
| Mobile Application | ✅ Completed | Dockerized with multi-stage Dockerfile supporting Android SDK and EAS Build. APK build infrastructure ready. React Native/Expo application with full feature set. |
| Backend API | ✅ Completed | Django REST Framework API with JWT authentication. Comprehensive endpoints for posts, comments, waste tracking, tips, challenges, achievements, profiles, follow/unfollow, and reporting. |
| Documentation | ✅ Completed | Wiki and SRS documentation referenced in README. UML diagrams available in docs/uml/. Project structure and setup instructions documented. |
| Backend Tests | ✅ Completed | Django unit tests exist (api/tests/ with 16 test files). Jenkinsfile present for deployment. |
| Frontend Tests | ✅ Completed | Vitest unit tests exist (src/Tests/). |
| Mobile Tests | ✅ Completed | Jest test suite with 165+ test cases covering utils, services, context, hooks, components, and screens. |
| CI/CD | ⚠️ In Progress | Missing: GitHub Actions workflow for automatic test execution on PR/push. |
3. Planning and Team Process
3.1. Changes Since Milestone 1
Process changes introduced since Milestone 1:
- After Milestone 1, we did not introduce any major changes. We made design adjustments in the Web UI to provide a better user experience. We also placed greater emphasis on testing and worked to address our shortcomings in that area. Additionally, we focused on the client’s requests from Milestone 1 and implemented the majority of them. To be better prepared for the Final Milestone, we decided to put more emphasis on the following:
- We decided to prepare a more polished presentation for the Final Milestone. For this, we will create a user scenario that clearly showcases all features of the project to the client and populate our database with well-prepared sample data for that scenario.
- Instead of spending time on features we considered adding but the client never mentioned, we will focus on what truly matters: the features explicitly requested by the client.
Impact of these changes:
Past Impacts:
- After Milestone 1, the team did not introduce any major architectural or structural shifts, but the increased emphasis on testing had a clear effect. Strengthening the testing workflow helped expose hidden gaps in functionality and stability, which in turn improved the reliability of the features already implemented.
- Focusing on the client’s stated requirements also streamlined development; unnecessary distractions were reduced, and most of the requested features were delivered in a more consistent and predictable manner.
Future Impacts:
- Looking ahead to the Final Milestone, the planned adjustments will shape both the development process and the overall project quality.
- Prioritizing a well-structured presentation, supported by a realistic user scenario and a properly populated database, will make the final demo more coherent and persuasive. This approach ensures that every key feature is showcased in a context that reflects real usage rather than isolated technical demonstrations.
- Additionally, shifting attention away from self-proposed but nonessential features will keep the team aligned with the client’s core needs. This focus is expected to reduce scope creep, tighten workload management, and ultimately increase the likelihood that the final delivery meets the client’s expectations both functionally and strategically.
3.2. Plan for Completing the Project
High-level plan for remaining milestones:
- We reviewed the requirements, identified those that have not yet been implemented, and created draft issues for them. Within a week, we will assign these issues to the appropriate team members and add more detailed explanations about what needs to be done for their completion. For these issues, we have planned a schedule on the Project Plan leading up to the Final Milestone. The image below shows the timeline of the issues required for the completion of our project.
4. Utilized Standards (W3C, etc.)
For each standard, duplicate the template below.
4.1. Standard: Activity Streams 2.0
-
Standard name and version:
Activity Streams (AS) 2.0 – W3C Recommendation -
Brief description of the standard’s relevance:
- Activity Streams 2.0 defines a structured and interoperable JSON-based vocabulary for representing user actions (“activities”) in web applications.
- It ensures consistency, machine-readability, and compatibility with modern social-interaction systems.
- Using AS2.0 helps us model user actions in ZeroWaste (e.g., posting, creating events, achievements) in a standardized and extensible format.
Development Artifacts (Issues / PRs / MRs):
-
Issue(s):
- #343 – Implement Activity Streams infrastructure
-
Pull Request(s):
- #346 – Activity Streams Implementation (ZeroWaste Backend)
Link: https://github.com/bounswe/bounswe2025group10/pull/346
- #346 – Activity Streams Implementation (ZeroWaste Backend)
How Our Implementation Fulfills the Standard
-
Specific requirements / guidelines addressed:
- Representation of activities using AS2.0–compliant vocabulary:
actor,object,type,published,id
- Support for core AS2.0 activity types (e.g., Create, Add, Like)
- Serialization of activity objects following AS2.0 JSON format
- Storage of activity metadata in a structured, extensible model
- Ensuring that activities follow standardized naming and schema conventions
- Representation of activities using AS2.0–compliant vocabulary:
-
Implementation details:
- Introduced
ActivityEventmodel using JSON fields aligned with AS2.0. - Added serializers enforcing AS2.0 structure (actor, object, type, published).
- API endpoints updated to emit activity objects following the AS2.0 spec.
- Implemented automatic activity generation for user actions (e.g., creating posts, joining events).
- Extended backend logic so activities can later be filtered, queried, and used in a domain-specific way.
- PR #346 includes schema validation, model constraints, and example activity payloads to ensure compliance.
- Introduced
4.2. Standard: W3C Internationalization (i18n) & CSS prefers-color-scheme
- Standard name and version:
- W3C Internationalization (i18n) Best Practices – W3C Working Group Note
- CSS Color Scheme Module Level 5 – W3C Candidate Recommendation
Development Artifacts (Issues / PRs / MRs):
-
Issue(s):
-
Pull Request(s):
- #413 – Frontend Restructuring + i18n + Theme Infrastructure
How Our Implementation Fulfills the Standard
Specific requirements / guidelines addressed:
-
Internationalization (W3C i18n):
- Multi-language support implemented using a centralized translation provider.
- Full support for right-to-left (RTL) languages such as Arabic.
- Dynamic assignment of text direction (
dir="rtl"where appropriate). - All interface text externalized into language JSON files.
- Hot language switching without page reloads.
- No hardcoded strings inside components, following W3C best practices.
-
Theming / prefers-color-scheme:
- Implementation of light and dark themes using CSS variables.
- User-controlled theme switching handled via ThemeContext.
- Followed accessibility-friendly contrast principles.
- Architecture prepared for future OS-level theme detection (
prefers-color-scheme).
Implementation Details
-
Language Infrastructure:
- Introduced
LanguageContextto manage translation state and direction (LTR/RTL). - Added translation dictionaries under:
src/i18n/en.json src/i18n/tr.json src/i18n/ar.json src/i18n/es.json src/i18n/fr.json - Navbar, profile menu, pages, and feature components all updated to use
t()translator function. - Arabic translation supports RTL layout mirroring for menus and flex alignments.
- Introduced
-
Dark Mode Support:
- Implemented
ThemeContextwith controlled global theme state. - All visual components adapted to theme-based CSS variables (
--background,--text, etc.). - Navbar, cards, admin panel, forms, and tables respond correctly to theme changes.
- Implemented
-
Restructured Codebase (PR #413):
- All pages consolidated under
src/pages/. - UI components split into:
components/ui/components/layout/components/features/
- Removed duplicate components (e.g., duplicate ChallengeCard).
- Route guards placed in
src/routes/. - Providers (including
AuthContext,LanguageContext,ThemeContext) placed insrc/providers/. - Clear organization ensures global themes + translations work predictably across the entire app.
- All pages consolidated under
How the Implementation Satisfies the Standard
- Ensures consistent multilingual interface following W3C i18n guidelines.
- Supports correct bidirectional text handling and RTL layout requirements.
- Provides accessible light/dark themes via CSS variables and context control.
- Clean, modular project structure allows scalable extension of translations and themes.
- PR #413 demonstrates compliance through removal of duplication, unified structure, and fully integrated providers.
5. UX Design: Accessibility, Inclusivity, Ethics
5.1. Key Use Case
-
Use Case Title: User Logs Recycling Activity and Views Environmental Impact Statistics
-
Scenario Description:
A user opens the Zero Waste mobile application at home after sorting their recyclable waste. They navigate to the main page, select the type of waste (plastic, paper, glass, etc.), enter the quantity in grams, and submit their recycling activity. The system processes this data and updates their personal statistics dashboard, showing their total recycled waste, environmental impact (CO₂ saved, trees equivalent, energy saved), and their ranking on the community leaderboard. The user can also view community-wide statistics to see collective impact and participate in recycling challenges to earn achievements.
5.2. Analysis of the Use Case
5.2.1. Accessibility
How the system supports a wide range of abilities:
-
Visual:
- High Contrast Theme: A dedicated high-contrast theme with maximum color contrast (black background, white text, bright yellow accents) helps users with visual impairments read content clearly
- Multiple Theme Options: Three distinct visual themes (Light, Dark, High Contrast) allow users to choose based on their visual preferences and lighting conditions
- Consistent Color Usage: All text, buttons, and interactive elements maintain consistent color contrast throughout the application
- Optimized Chart Colors: Data visualizations use carefully selected colors that are distinguishable in each theme, making charts readable for users with color vision deficiencies
- Visual Icons: Emoji icons (home 🏠, lightbulb 💡, trophy 🏆) provide visual cues alongside text labels in navigation menus
- Scalable Text: Text sizes adjust appropriately across different screen sizes and devices
-
Motor:
- Large Touch Targets: All buttons and interactive elements are sized generously to accommodate users with limited fine motor control or those using assistive devices
- Keyboard Navigation: Users can navigate the entire application using only a keyboard, without requiring a mouse
- Clear Disabled States: Buttons that cannot be clicked are visually dimmed and show a "not allowed" cursor, preventing confusion
- Visual Feedback: All interactive elements change appearance when hovered over or clicked, confirming user actions
- No Time Pressure: The application never requires users to complete actions within a time limit
-
Cognitive:
- Consistent Layout: Every page follows the same structure with navigation on the side and main content in the center, reducing cognitive load
- Clear Visual Hierarchy: Important information uses larger, bolder text while supporting details use smaller text
- Simple Language: All text uses clear, everyday language avoiding technical jargon
- Progress Feedback: The system always shows what's happening (loading, success, error) so users understand the current state
- Encouraging Messages: Positive, supportive messages with friendly emojis (💚, 🤝, 🌱) motivate users without overwhelming them
- Visual Data Display: Complex statistics are shown as colorful charts and graphs, making data easier to understand than raw numbers
- Consistent Symbols: The same icons represent the same functions throughout the app (♻️ always means recycling centers, 📊 always means statistics)
5.2.2. Inclusivity
How the design considers diverse users beyond ability differences:
-
Cultural / Language Aspects:
- Multi-Language Support: Full support for 5 languages (English, Turkish, French, Spanish, Arabic) allowing users to interact in their preferred language
- Right-to-Left Layout: Arabic users see the interface mirrored appropriately for right-to-left reading
- Universal Icons: Emoji and symbols that transcend language barriers (🌍 for environment, 🌳 for trees, ⚡ for energy)
- Localized Formatting: Numbers and dates display according to regional conventions
- Complete Translation: All user-facing text, including error messages and notifications, is available in all supported languages
- Easy Language Switching: Users can change languages at any time through an accessible menu with flag emojis
-
Socio-economic or Device Constraints:
- Mobile-First Design: The application works perfectly on smartphones, recognizing that mobile devices are more accessible than computers for many users
- Lightweight Design: Uses simple graphics and emojis instead of heavy image files, working well on slower internet connections
- Efficient Data Loading: Lists are paginated to avoid loading too much data at once, saving bandwidth and battery
- Graceful Degradation: Core features work even when some advanced features fail to load
- Works Offline: The app provides helpful error messages and cached data when internet connection is lost
- Fallback Options: When server data is unavailable, the system provides sample data so users can still explore features
-
Different Contexts:
- Dark Mode: A dark theme reduces eye strain in low-light environments and saves battery life on modern phone screens
- Persistent Preferences: Theme and language choices are remembered across sessions
- One-Handed Operation: Mobile menu can be easily operated with one hand
- Public Profiles: Users can view others' achievements and statistics, supporting social learning
- Flexible Timing: No features require immediate action, accommodating users in different time zones and with varying schedules
- Local Time Display: All timestamps show in the user's local time zone
5.2.3. Ethical Considerations
Identified risks (privacy, surveillance, bias, autonomy, etc.):
-
Privacy Risks:
- User recycling data could reveal personal habits, household size, and lifestyle patterns
- Profile pictures and usernames are publicly visible on leaderboards
- Searching for recycling centers reveals approximate location (city/district)
- Community posts and comments create a permanent public record of user opinions
-
Surveillance Concerns:
- Leaderboard system continuously tracks and ranks all user recycling activity
- Notification system monitors user actions across the platform
- Detailed logging of waste disposal creates temporal patterns of user behavior
-
Bias Risks:
- Leaderboard rankings may favor users with more resources, larger households, or better access to recycling facilities
- Language support limited to 5 languages excludes many global populations
- Assumes users own smartphones and have reliable internet access
- Environmental impact calculations use generalized formulas that may not apply equally across different regions or contexts
-
Autonomy Concerns:
- Gamification features (challenges, achievements, leaderboards) may create addictive engagement patterns
- Public leaderboards may create social pressure to participate or compete
- Encouraging messages, while positive, could be perceived as manipulative or patronizing
- System nudges users toward specific behaviors without explicit consent
Mitigation strategies implemented in the design:
-
Privacy Protection:
- Secure authentication system protects user accounts
- Users can control what information appears on their public profile
- No automatic location tracking—users voluntarily select cities for recycling center searches
- Report functionality allows users to flag inappropriate community content
- Clear separation between public data (leaderboard, community) and private data (personal statistics)
-
Transparency:
- Environmental impact calculations clearly label what they measure (CO₂ Saved, Trees Equivalent, Energy Saved)
- Pagination displays total counts so users understand the scope of data
- Loading and error messages keep users informed of system status
- All text has fallback translations ensuring users always see meaningful content
-
User Control:
- Users choose their preferred visual theme
- Users select their preferred language
- Participation in community features is entirely optional
- Logout option is clearly accessible
- Users decide what waste to log and when
-
Inclusive Design:
- Multiple themes accommodate different visual needs and environmental conditions
- Right-to-left support ensures equal experience for Arabic speakers
- Responsive design works across all device types and screen sizes
- Fallback data ensures functionality even when backend services fail
- Error messages are helpful and user-friendly rather than technical
-
Ethical Gamification:
- Encouraging messages emphasize environmental impact over competition
- Community statistics highlight collective achievement rather than individual ranking
- Achievements celebrate personal milestones without creating pressure
- Leaderboard shows only top 10 users, reducing competitive pressure on others
Remaining open ethical questions or trade-offs:
-
Data Retention: How long should user recycling data be stored? Longer retention enables better environmental analysis but increases privacy risks and creates a more detailed surveillance record.
-
Leaderboard Fairness: Should rankings account for socio-economic factors like access to recycling facilities or household size? The current system may disadvantage users in areas with limited recycling infrastructure or those living alone.
-
Behavioral Nudging: While encouraging messages promote positive environmental behavior, they may be seen as paternalistic. The line between helpful motivation and manipulation is subjective and culturally dependent.
-
Data Ownership: Users generate valuable environmental data—should they have rights to export, delete, or even monetize their recycling records?
-
Algorithmic Transparency: Environmental impact calculations use simplified conversion factors. Should the exact formulas and assumptions be disclosed to users, even if this adds complexity?
-
Community Moderation: The report system relies on user reports to identify problematic content. How can we balance free expression with preventing harmful content without creating excessive surveillance or censorship?
-
Accessibility vs. Aesthetics: Some design choices (colorful charts, emoji icons, animations) enhance visual appeal and engagement but may not work optimally with all assistive technologies. There's an inherent tension between modern, attractive design and maximum accessibility.
-
Competitive Pressure: While gamification motivates some users, it may stress others who feel they can't compete. Is it ethical to use competitive elements even when they're optional?
6. Testing
6.1. Test Strategy Overview
- Overall testing approach:
6.2. Unit Tests
- Scope:
- Example test cases and rationale:
- Coverage summary (if available):
6.3. Integration Tests (API and Service Interactions)
- Scope:
- Critical flows tested:
- Failure points being validated:
6.4. End-to-End (E2E) Tests
- Tools / framework:
- Key user workflows covered:
- Why these workflows were prioritized:
6.5. UI/UX Tests
- Accessibility / usability checks performed:
- User testing (if any):
6.6. How Tests Ensure Core Functionality
- Mapping tests to core requirements:
- Remaining test gaps and mitigation plan:
7. Individual Contributions
This section covers only work done between Customer Milestone 1 and Customer Milestone 2.
Each member should create a subsection sorted by surname.
7.1 Ak, Berkay
Responsibilities
Main Contributions
Significant Issues
Code-related (max 3): 1. 2. 3.
Non-code-related (max 3): 1. 2. 3.
Pull Requests
-
Created:
- PR #X – Title –
- ...
-
Reviewed:
- PR #Y – Title –
- ...
-
Conflicts experienced (if any) and resolution:
Additional Information
7. Akçin, Eren
Responsibilities
Main Contributions
Significant Issues
Code-related (max 3): 1. 2. 3.
Non-code-related (max 3): 1. 2. 3.
Pull Requests
-
Created:
- PR #X – Title –
- ...
-
Reviewed:
- PR #Y – Title –
- ...
-
Conflicts experienced (if any) and resolution:
Additional Information
7.3. Irwin, Ceyda İrem
Responsibilities
- Automated Tests: Responsible for mobile development efforts that improve application reliability by adding comprehensive automated tests for screens, navigation flows, and API services.
- Internationalization (i18n): Responsible for mobile development tasks that establish the foundational i18n system supporting Turkish, English, Spanish, and French across the application.
Main Contributions
- Led mobile development efforts to improve application reliability by implementing comprehensive automated tests covering screens, navigation flows, and API services.
- Delivered core mobile development work to establish the foundational internationalization (i18n) system, enabling Turkish, English, Spanish, and French language support across the app.
Significant Issues
Code-related (max 3):
- User Preferences & Language Management #378 - Users should be able to configure and update their language/region preferences easily, with consistent application across the mobile platforms.
- Create Unit Tests for Mobile App Testing #384
- Consistent & Predictable Navigation (WCAG 2.1 AA) #324
Non-code-related (max 3):
- Documentation of Software Requirements Compliance Status #394
Pull Requests
- Created:
- PR #387 – Add Comprehensive Unit Tests for Mobile App – This PR adds comprehensive automated tests for the mobile application as required.
- PR #427 – Feature/i18n multilanguage support – This PR adds comprehensive internationalization (i18n) support to the mobile application with support for 4 languages: English, Turkish, French, Spanish
7.4. Kızılhan, Samed
Responsibilities
- I was responsible of making improvements in the project's frontend, such as creating a new page for giving recycling centers info, fixing admin page and adding activities page. Also I prepared the web demo scenario for Milestone 2 presentation.
Main Contributions
- Created the issues related to the feedbacks taken in the Demo 1 presentation. (#360, #361, #362, #363, #364, #365, #366, #367, #368 )
- Made a research on the recycling centers in Turkey and created a new page which shows the address and additional information based on the selected city and the district.
- Fixed admin page APIs and added a new page to show all the activities occurred in a filterable manner.
Significant Issues
Code-related:
- Verification Mechanism to Handle Large Waste Inputs#366
- New Page for Giving Recycling Centers Info#362
- Fix Admin Page and Add Activities Page#429
Non-code-related :
- Prepared the web user scenario for the second Demo.
- Prepared the Planning & Team Process Section in the Milestone 2 Report. The issue #439
Pull Requests
-
Created:
- PR #417 – feature/frontend-enhanced-features – a handler for large waste inputs and a page in which a user can find the recycling centers info
- PR #430 – feature/frontend-admin-improvements – a new page to show all the activities occurred and pagination feature to all moderation pages
-
Reviewed: For each PR below, I worked on determining whether the changes were sufficient and tested the new additions.
-
Conflicts experienced (if any) and resolution:
- I have had some conflicts in the PR #417. I fixed them by reviewing the conflicts one by one and deciding which parts to keep.
7.5. Kirman, Mert
Responsibilities
- Mobile Accessibility & Compliance: Responsible for auditing the mobile application against WCAG 2.1 AA standards, specifically focusing on color contrast ratios and implementing dynamic typography scaling to ensure usability across various system settings.
- Quality Assurance & Testing: In charge of establishing test coverage for core mobile components, specifically the TipsScreen, ensuring robustness in data fetching, user interactions, and error handling.
- Requirements Analysis & Peer Review: Responsible for reviewing project documentation and user scenarios to ensure technical feasibility and alignment with stakeholder (instructor) feedback regarding usability metrics.
Main Contributions
A. Mobile Accessibility Infrastructure (WCAG 2.1 AA Integration)
-
Audit & Refactoring: Conducted a comprehensive audit of existing mobile screens to identify accessibility violations. Refactored theme tokens to ensure all text meets the 4.5:1 (normal) and 3:1 (large) contrast ratio thresholds for both light and dark modes.
-
Dynamic Text Scaling: Replaced fixed font sizes with scalable units throughout the initial screen set. Engineered the layout constraints to support system font scaling up to 200% without causing functional regressions or UI breakage.
-
Collaboration: Established the accessibility pattern and codebase groundwork, which was subsequently handed off to the mobile team for replication across remaining screens.
B. Unit Testing Suite (TipsScreen.tsx)
-
Comprehensive Test Coverage: Developed a complete unit test suite using Jest and React Native Testing Library for the TipsScreen component, covering 100% of critical user paths.
-
Interaction & State Verification: Wrote test cases to verify:
-
Lifecycle States: Initial loading, successful list rendering, and empty state handling.
-
Modal Logic: Opening/closing behavior and form validation for "Create Tip" and "Report Tip" modals.
-
User Actions: Correct invocation of likeTip and dislikeTip services.
-
Mocking Architecture: Implemented robust mocks for external dependencies including tipService, useAppNavigation, and system Alerts to isolate component logic and simulate API success/failure scenarios.
C. Project Documentation & Code Review
- Scenario Refinement: Reviewed the "User Scenarios for Web Presentation" to ensure alignment with project goals.
- Usability Enforcement: Identified a disconnect between the proposed metrics and usability best practices. Enforced a pivot from weight-based metrics (e.g., "0.5 kg plastic") to discrete/countable units (e.g., "5 bottles") in the requirement specifications to better align with the professor's feedback and real-world user mental models.
Significant Issues
Code-related (max 3):
Non-code-related (max 3):
Pull Requests
-
Created:
- PR #389 – Add comprehensive unit tests for TipsScreen – Addition of detailed unit tests for increasing test coverage of mobile.
-
Conflicts experienced (if any) and resolution:
- No conflicts encountered.
Additional Information
- None.
7.6. Şen, Asya Su
Responsibilities
I was in the front end team.
Main Contributions
- researched and implemented waste input type tool
- implemented new dashboard visualization tools to see the data
- implemented front end page for the invite a friend feature
- rewrote most of the front end tests from scratch and wrote new ones
Significant Issues
Code-related (max 3):
- Change the Type of Waste Quantities: #361
- Fix broken tests due to restructure: #428
- Add an "Invite a Friend" feature : #360
Non-code-related (max 3):
- Create a logo for the website: #399, I created a list of possible logos to choose from to use in our website.
- Create Strategic Sustainability Tips to Motivate Users: #363, I compiled a list of new tips to add to our data
- Write Implementation Plan: #371, I wrote the implementation plan.
Pull Requests
- Created:
- Reviewed and Merged:
7.7. Şendağ, Umut
7.7. Şendağ, Umut
Responsibilities
I was responsible of making additions to our backend such as language feature and auto translation to posts and tips. Also I worked on moving our deployment to the https domain that Başar got us. I also worked on fixing bugs and keeping our backend alive.
Main Contributions
Significant Issues
Code-related:
Non-code-related :
Pull Requests
-
Created:
- PR #382 – Merge Follow/unfollow into main – Addition of following and unfollowing features for community page.
- PR #391 – Tip/post/pagination – Addition of tip and post pagination.
- PR #404 – Add swagger documentation – Changing our documentation from manual page in wiki to swagger.
- PR #421 – Language for tips&posts – Addition of language and auto translate to tips and posts.
- PR #423 – Recycling centers – Addition of endpoints for recycling centers.
-
Reviewed: For each PR below, I worked on determining whether the changes were sufficient and tested the new additions.
- PR #419 – fixed the waste bug
- PR #414 – Invite
- PR #405 – New carbon
- PR #403 – Suspicious waste
- PR #402 – Get the top 5 liked post
- PR #400 – Carbon3
- PR #418 – URGENT fix: API url
- PR #415 – Removed all pycache and fix the prod
- PR #425 – the socket logic has been added , gunicorn has been changed to daphn…
-
Conflicts experienced (if any) and resolution:
- I have had some conflicts on overlapping migrations. I fixed them by dividing them into separate migrations.
- I have had some conflicts on uploaded pycache files. The solution was simply removing all pycache files.
7.8. Temiz, Başar
Responsibilities
I am primarily responsible for backend development within the ZeroWaste platform.
My key responsibilities include:
- Designing and implementing backend API endpoints (Activity Streams, CO₂ calculation, post analytics, reporting).
- Integrating WebSockets for real-time notifications.
- Ensuring API correctness, performance, and alignment with project standards.
- Supporting demos, milestone preparation, and backend debugging.
Main Contributions
- Developed major backend features since Customer Milestone 1:
- Activity Streams API compliant with AS2.0.
- Top 5 Most Liked Posts retrieval logic.
- CO₂ Emissions Calculation backend implementation.
- Suspicious Waste Reporting API endpoint.
- Real-Time Notifications using WebSockets.
- Ensured high-quality integration of backend components and improved several features with performance-focused enhancements.
- Provided continuous backend support and helped with milestone readiness.
Significant Issues
Code-related (max 3):
- #401 – Top 5 Most Liked Posts: Implemented optimized DB retrieval + endpoint.
- #380 – CO₂ Emissions Calculation: Integrated backend logic for environmental metrics.
- #318 – Activity Streams Endpoint: Built API endpoint aligned with Activity Streams 2.0.
Non-code-related (max 3):
- Supported customer demo preparation and milestone presentation.
- Helped with Activity Streams expectations.
- Assisted the team by taking on additional responsibilities during weeks with low attendance.
Pull Requests
-
Created:
- PR #346 – Activity Event Implementation – Implemented AS2.0 activity events.
- PR #402 – Top 5 Most Liked Posts – Added ranking & retrieval endpoint.
- PR #403 – Suspicious Waste Reporting – Developed reporting endpoint.
- PR #425 – WebSocket Integration – Implemented real-time notification system.
-
Reviewed:
- PR #421 – General Backend Fixes & Improvements – Provided technical feedback and code quality checks.
- PR #391 – Waste Management Enhancements – Reviewed logic correctness and API consistency.
- PR #382 – Notification Module Updates – Ensured integration compatibility and validated backend–frontend alignment.
Additional Information
- Helped prepare and refine the Customer Milestone 2 demo.
- Provided explanations to the customer on activity modeling and environmental calculation logic.
- Took initiative to maintain backend development.
7.9. Yılmaz, Cenk
Responsibilities
Frontend development with focus on user experience, internationalization (i18n), and theming. Responsible for implementing multilingual support, theme system, statistics visualization, real-time notifications, and overall frontend code organization and quality.
Main Contributions
- Internationalization & Accessibility: Implemented comprehensive i18n infrastructure supporting 5 languages (English, Turkish, French, Spanish, Arabic) with RTL (right-to-left) layout support for Arabic users
- Theme System: Developed global ThemeContext with three distinct themes (Light, Dark, High Contrast) for improved accessibility and user preference support
- Statistics & Visualization: Created Statistics page with interactive charts (bar, pie) showing waste recycling data, environmental impact calculations (CO₂ saved, trees equivalent, energy saved), and community statistics
- Real-Time Notifications: Implemented WebSocket-based notification system with JWT authentication for real-time user engagement
- Auto-Translation & Pagination: Developed an automatic content translation system and pagination for Tips and Community pages
- Code Organization: Led frontend code restructuring effort, improving maintainability and developer experience
- UX Enhancements: Improved WasteHelperInput component UX, added theme/language switchers to navbar, and implemented consistent styling across all pages
- Code Quality: Removed legacy code, cleaned up unused assets, extracted reusable hooks for API calls, posts, and comments logic
Significant Issues
Code-related (max 3):
- #406 - Implement global ThemeContext with multiple themes – Created theme management system with Light, Dark, and High Contrast themes
- #407 - Implement LanguageContext and base i18n infrastructure with RTL support – Built multilingual support infrastructure with RTL layout for Arabic
- #381 - WasteHelperInput improvements and backend integration – Enhanced waste input UX and proper backend API integration
Non-code-related (max 3):
Pull Requests
-
Created:
- PR #437 – quickix: navbar of recyclingCenters – Fixed navbar active state for recycling centers page
- PR #436 – feat: implemented statistics – Added comprehensive statistics page with charts and environmental impact calculations
- PR #435 – fix: whitespaces in the tipsService – Code formatting fix (urgent)
- PR #434 – feat: implement auto translation and pagination – Automatic content translation and pagination system (urgent)
- PR #432 – feat: implement real-time notifications with WebSocket and JWT auth – Real-time notification system
- PR #418 – URGENT fix: API url – Critical production API URL fix
- PR #415 – Removed all pycache and fix the prod – Cleaned up Python cache files and fixed production environment configuration
- PR #413 – Feature/lang and theme support – Complete theme and language support implementation
-
Reviewed:
-
Conflicts experienced (if any) and resolution:
- Merge conflicts during feature/pages-end-fixes branch integration due to parallel development on multiple frontend features. Resolved by carefully reviewing changes, coordinating with team members, and ensuring all features worked together cohesively.
- Production environment configuration conflicts when deploying HTTPS changes. Resolved by updating .env files and coordinating with backend team on API URL changes.
Additional Information
- User Experience: Conducted UX analysis and implemented encouraging messages, consistent styling, and intuitive navigation across all pages