-
Notifications
You must be signed in to change notification settings - Fork 1
Customer Milestone 1 Report of CMPE 451 Fall 2025
The application is successfully deployed and running on a Digital Ocean Droplet. It currently includes several core features that enable users to track, share, and compete in waste reduction efforts through an engaging and community-driven platform.
Current Features:
- Logging of waste and graphical visualization of all recorded data.
- Tips section where users can share advice and interact through likes/dislikes.
- Challenges section for users to create and join public or private challenges.
- Achievements section displaying completed challenges.
- Leaderboard page showcasing users’ contributions and promoting friendly competition.
- Community page for social interaction through posts, comments, and reactions.
- User profiles with editable bios and profile pictures.
To enhance user engagement, accessibility, and data integrity, several updates and new features are planned for future releases.
Upcoming Additions:
- Type-based (e.g., 500 g of plastic, 200 g of metal) and timed (e.g., 1 week, 2 days) challenges.
- Measures to prevent users from abusing the challenge system.
- Creation of badges for completed challenges.
- Verification mechanisms for logged waste entries.
- Accessibility improvements: dark mode, multilingual support, scalable text, keyboard navigation, and localized date formats.
- Some way to help users to measuse their weight.
- Compliance with security and privacy standards for user data.
- Transparent communication to users about privacy policies.
- Follow/unfollow system in the community page to view posts from followed users.
- An invite a friend feature to the application for user encouragement.
- Some way to inform users about nearby recycling centers may be added.
- We will change our CO2 emission calculation method to not be reliant on an external API.
- A show password and hide password option can be added to the signup and login pages.
During this milestone, feedback was received both during the Customer Feedback Meeting with the TA and the Milestone 1 Presentation. The feedback provided valuable insights into improving the system’s functionality, usability, and overall user engagement.
- The customer suggested adding an “Invite a Friend” feature to encourage user participation and community growth.
- Instead of entering recycled waste by weight (grams), users could select predefined items (e.g., “1 plastic bottle”) and let the system handle internal gram calculations.
- Users could optionally upload photos to verify their inputs, though practicality concerns were raised about the reliability of such images.
- The app could include information about recycling center locations, especially for electronic waste, with the possibility of extending this to other waste types.
- The Tips section could be expanded to motivate users through varied content and highlight the financial benefits of recycling.
- The CO₂ emission calculation could be handled internally with reasonable coefficients instead of relying on an API.
- A control mechanism should ensure that joining multiple challenges does not automatically inflate progress across all challenges.
- A verification warning could be shown if users input unusually large amounts of waste, prompting them to confirm or adjust their entry.
- Additional usability improvements were also confirmed:
- Dark Mode support
- Multi-language support
- Adjustable text size in settings
- Show/Hide password feature for sign-in and sign-up pages
The feedback helped the team identify areas where user convenience and data reliability could be better balanced. While certain suggestions, such as image verification, may pose feasibility challenges, others — like simplified waste entry, clearer feedback mechanisms, and UI personalization — offer practical ways to improve the user experience.
Following the discussion, the team also refined the requirement structure to ensure consistency and clarity, separating functional and non-functional requirements and standardizing terminology (e.g., using “system” instead of “platform”). These reflections will guide the next development phase, ensuring the project aligns more closely with user needs and customer expectations.
| Deliverable Name | Description | Status (Completed / In Progress / Planned) | Responsible Member |
|---|---|---|---|
| Revised Software Requirements Specification (SRS) | Updated requirements document reflecting the latest customer feedback and system scope. Includes functional and non-functional requirements with traceability. | Completed | All Members |
| Revised Software Design (UML Diagrams) | Updated class, sequence, and activity diagrams to match the implemented backend and mobile components. | Completed | Umut Şendağ |
| Team Development Policies | Established and documented communication plan, branching strategy, commit message conventions, and code review process in the wiki. | Completed | All Members |
| Project Plan | Project timeline with milestones, sprint schedule, and task allocation, tracked via GitHub Projects and wiki updates. | Completed | All Members |
| Weekly Reports and Meeting Notes | Weekly progress reports and meeting summaries uploaded to the wiki; includes retrospectives and sprint outcomes. | Completed | All Team Members (rotating weekly reporter) |
| Milestone Review | Summary of work done so far, reflections, feedback from customer, and planning for next iteration. | Completed | All Members |
| Individual Contributions | Detailed breakdown of each member’s tasks, responsibilities, and linked issues/commits for transparency and evaluation. | Completed | Each Individual Member |
| Pre-release Version of Software | First deployable beta version (v0.x.0-beta) containerized via Docker and deployed on a DigitalOcean droplet; includes web and Android apps. | Completed | All Members |
Our team successfully met the main objectives for Customer Milestone 1. The majority of deliverables — including the updated Software Requirements Specification (SRS), project plan, and pre-release software — were completed on schedule. The deployment on the DigitalOcean droplet and functional demo both ran error-free during internal testing.
The core workflow and policies defined in this milestone have already improved coordination and code quality across the team.
- Timely completion of functional deliverables: The SRS and project plan were finalized early, allowing implementation to proceed without ambiguity.
- Smooth collaboration and workflow: The branching and commit policies helped maintain a clean and reviewable Git history. Pull requests and issues were used consistently for task tracking.
- Successful pre-release deployment: The containerized application was deployed to DigitalOcean as planned, and the Android APK was built and distributed internally for testing.
- Effective communication: Weekly reports and structured meetings enabled the team to detect blockers quickly and resolve them before they escalated.
- Customer feedback integration: Feedback from the customer demo was incorporated into the revised SRS and design documents, ensuring that priorities for the next milestone align with user expectations.
- Ongoing design revisions: UML diagrams and certain architecture updates lagged slightly behind the implementation. The team decided to refine them after deployment to ensure consistency with the final codebase.
- Uneven task distribution: Some backend-heavy tasks (e.g., authentication, data visualization) required additional support late in the milestone. For the next cycle, clearer sub-tasking and early pairing sessions will be applied.
- Documentation maintenance: Weekly reports were maintained well, but some meeting notes and reflection sections were delayed in merging to the wiki. This will be streamlined by assigning a documentation owner each sprint.
- Schedule adjustments: The project remains on track, but additional time in the next milestone will be dedicated to finalizing UML diagrams and expanding automated tests.
- Refinement of priorities: Non-functional improvements (e.g., verification, accessibility) will be elevated to high priority to ensure product maturity.
- Improved estimation: The team observed that early sprint estimations were optimistic, especially for backend tasks. Future sprints will include more detailed story-point calibration and buffer allocation.
In summary, Milestone 1 established a strong technical and organizational foundation for the project. Core deliverables were completed successfully, the product reached a functional beta state, and internal processes matured significantly.
For the next milestone, the focus will move toward design refinement, verification, testing, and user-experience improvements. The project plan has been updated accordingly to include more time for QA and documentation, while maintaining flexibility for new customer feedback and feature suggestions.
The Zero Waste Challenge is a gamified platform built with a modern full-stack architecture consisting of three main components: Backend API, Web Frontend, and Mobile Application.
Location: /application/backend
- Framework: Django 5.2 with Django REST Framework 3.16.0
- Database: MySQL 8.0
- Authentication: JWT (djangorestframework_simplejwt 5.5.0)
- Production Server: Gunicorn 23.0.0
- CORS Support: django-cors-headers 4.7.0
- API Filtering: django-filter 24.2+
- HTTP Client: requests 2.32.3
- Mock Data: Faker 37.1.0
- Containerization: Docker with docker-compose for consistent environments
- Database Management: Django migrations with automated health checks
- Environment Configuration: django-environ for secure config management
-
Deployment Scripts:
-
deploy_save_db.sh- Preserves database state -
deploy_destroy_db.sh- Clean deployment
-
- Development Mode: Auto-reload with hot-reloading enabled
Location: /application/front-end/zero-waste
- Framework: React 19.0.0 with TypeScript 5.7.2
- Build Tool: Vite 6.3.1 (fast, modern bundler)
-
Styling:
- Tailwind CSS 4.1.6
- Bootstrap 5.3.5 + React Bootstrap 2.10.9
- Animation: Framer Motion 12.10.5
- Routing: React Router DOM 7.5.1
- Data Visualization: Recharts 2.15.3
- HTTP Client: Axios 1.9.0
- Notifications: React Toastify 11.0.5
- Date Handling: Day.js 1.11.13
- Testing: Vitest 3.1.3 + React Testing Library + jsdom
- Code Quality: ESLint with React-specific plugins
- Type Safety: TypeScript with strict checking
- Development Server: Vite dev server with HMR (Hot Module Replacement)
- Build Process: Optimized production builds
- Containerization: Docker support for deployment
npm run dev # Start development server
npm run build # Production build
npm run lint # Code linting
npm run preview # Preview production buildLocation: /application/mobile
- Framework: React Native 0.79.2
-
Navigation:
- @react-navigation/native 7.1.8
- @react-navigation/native-stack 7.3.12
- @react-navigation/bottom-tabs 7.3.12
-
UI Components:
- React Native Vector Icons 10.2.0
- React Native SVG 15.12.0
- @react-native-picker/picker 2.11.0
- Data Visualization: React Native Chart Kit 6.12.0
- Media Handling: React Native Image Picker 8.2.1
- Storage: AsyncStorage 2.1.2
- HTTP Client: Axios 1.9.0
- Safe Area Support: React Native Safe Area Context 5.4.0
- Testing: Jest 29.6.3 + React Test Renderer
- Code Quality: ESLint + Prettier
- Type Safety: TypeScript 5.0.4
- Platform Support: Android and iOS
- Node Requirements: Node.js >= 18
- Docker Compose: Multi-service orchestration
- Database Persistence: MySQL with persistent volumes
- Health Checks: Automated service availability monitoring
- Environment Variables: Secure configuration management
| Component | Testing Tools |
|---|---|
| Backend | Django's built-in test framework |
| Frontend | Vitest + React Testing Library + jsdom |
| Mobile | Jest + React Native Testing Library |
- Linting: ESLint across all JavaScript/TypeScript codebases
- Type Checking: TypeScript for static type safety
- Formatting: Prettier (mobile), consistent style guides
- Pre-commit Hooks: Automated quality checks
- Local Development: Hot-reloading for rapid iteration
- Containerization: Docker ensures consistency across environments
- Database Migrations: Version-controlled schema changes
- API Authentication: JWT-based secure authentication
- Version Control: Git-based workflow with feature branches
- JWT token-based authentication
- CORS configuration for API access control
- Environment-based secrets management
- Health checks for service reliability
- Backend: Gunicorn WSGI server for production
- Frontend: Vite optimized production builds
- Mobile: Native builds for Android/iOS app stores
- Database: MySQL with automated backups via deployment scripts
- Container Orchestration: Docker Compose for multi-service deployment
| Requirement Catagory | Requirement IDs |
|---|---|
| Registration and Login System | 1.1.1, 1.1.2, 1.1.3 |
| Personal Dashboard | 1.2.1, 1.2.2(partially), 1.2.6, 1.2.8 |
| Community Engagement | 1.3.1, 1.3.2 |
| Social & Sharing | 1.4.1, 1.4.2, 1.4.4, 1.4.5, 1.4.7, |
| Challenge Creation & Moderation | 1.5.1, 1.5.2, 1.5.3, 1.5.5 |
| User Profile Picture and Title | 1.7.1 |
| Sustainability Tips System | 1.8.1, 1.8.2, 1.8.3(partially) |
| Moderation System | 1.9.1, 1.9.2 |
| Performance | 2.1.1, 2.1.2, 2.1.4 |
| Security-Privacy | 2.2.1, 2.2.2, 2.2.4, 2.2.6 |
| Quality | 2.3.1, 2.3.2, 2.3.3, 2.3.4 |
| Accessibility | 2.4.3, 2.4.4 |
| Interoperability & Portability | 2.5.1, 2.5.2 |
| Team Member | Main Contributions |
|---|---|
| Başar Temiz | Implemented the admin panel and login/signup functionality in the old codebase. In the new code, implemented signals for A2C (Activity to Content) activity events, created the A2C activity event model, and integrated Activity Streams 2.0 standards with an as2_json field for standardized event representation. Additionally, as the team leader, organized extra team meetings, created the Milestone Report draft (#331), and opened/managed key issues such as the Activity Event issue (#313) and Signal implementation issue (#316). Completed related PR #339. |
| Umut Şendağ | - Responsibilities: I had the responsibility of revising our sequence and class diagrams according to our newly added requirements. During that I also had the chance to check and review our new requirements with the team to make them compatible with W2C Standards. I also had the responsibility of writing the backend function of loggin activities for later use. - Main Contributions: Worked on implementing event creation for logging in backend. Also worked on revising our requirements and diagrams. Created issues #274, #276, #287, #315, #318, #319, #320, #333, #334, #335, and #336. Closed issues #318, #287, #274, #336, and #340. - Code-Related Significant Issues: Writing the Event Writer class compatible with the previous Activity Event model created by Başar was challenging. It required significant attention and collaboration with him to overcome. Also creating new sequence diagrams for our new requirements took some time and effort. - Non-Code-Related Significant Issues: Deploying the program required us to create a new Digital Ocean account since our old account's free trial was over. For that issue we used my account to deploy our application. - Pull Requests: Created PR's #339, #341, #346. Merged PR #339. - Additional Information: The reason I both created and merged the PR #339 is the changes were already reviewed by one of my friends. However, then I decided it was not a good developing practice to merge my own PR, so on my later PR's I will create the PR and assign one of my friends to merge it. |
| Asya Su Şen | - Responsibilities: Responsible for customer feedback, documentation, quality review, and coordination of requirement-related tasks. Also contributed to testing, report writing, and feedback integration for Milestone 1. - Main Contributions: Reviewed and summarized the project’s expectation document #275 and created Milestone 2 issues while adding them to the roadmap, analyzed the previous project wiki, set up the codebase locally, and contributed to all the labs, milestone reports. Updated requirements and integrated feedback into the documentation, attended pre-milestone planning meetings, and tested the website for bugs. - Code-Related Significant Issues: Set up the and on-boarded to the project as a new comer #281, searched for bugs and alerted the team before the milestone presentation, opened and reviewed multiple issues to improve code including #299, #300, #301, #302, #303, #304 - Non-Code-Related Significant Issues: Discussed W3C Guidelines and created issues according to it, wrote the Customer Feedback Meeting Report, merged notes from meetings and presentations into the final Customer Feedback Summary in this report, reviewed lab reports #280, took lab meeting notes. - Pull Requests: Primarily contributed through documentation, issue tracking and reviews rather than PRs - Additional Information: I had misunderstood weekly report naming conventions so I had to go ahead and change them even though I had finished them by the deadline |
| Samed Kızılhan | - Responsibilities: I had the responsibility of revising and finalizing of our SRS with Mert Kirman and updating it as needed. We had updated all parts of the SRS: Introduction, Overall Description, Glossary and some requirements accordingly. I discussed with my friends about which requirements need to be added related to Design Criteria. Then created a page for lastly added requirements for team members convenience. I communicated with our course assistant to clarify blurry points in lab assignments and milestone requirements. - Main Contributions: Contributed to the preparation of communication plan and project plan. I prepared 3 web user scenarios appropriate to our app features will be presented in the demo. I revised SRS and detect the requirements addressed up to now. I did enhancements in the Main Page of the app: Added new waste types, updated the points given for each waste unit, added a welcome text to show our goal to the users of the app. Created Issues: #325, #329, #330, #343, #344, #352 Reviewed Issues: #342, #289 - Code-Related Significant Issues: I did not experience any code related issues. - Non-Code-Related Significant Issues: Revising and updating the SRS with Mert was challenging since there are a lot of recently added requirements. We also tried to eliminate all conflicts. - Pull Requests: Created PR's #351. - Additional Information: I think working with a team in a software project is challenging especially while struggling with other courses’ tasks. The communication between the team members is the most critical point. |
| Mert Kirman | - Responsibilities: I was responsible for reviewing and improving the project’s documentation and requirements, ensuring consistency with W3C compatibility standards. After switching from the backend team to the mobile team this semester, I began learning React Native to contribute to the mobile development tasks (#322). I also coordinated with teammates to ensure alignment between documentation and implementation efforts. - Main Contributions: For Customer Milestone 1, I focused on enhancing the quality and consistency of the project documentation. This included revising and finalizing the Introduction and Overall Description sections of the SRS, reviewing newly added requirements, and ensuring alignment with W3C accessibility standards. - Code-Related Significant Issues: I did not make direct code contributions for this milestone. After transitioning to the mobile team, I attempted to run the mobile application locally using Expo Go but consistently encountered an Axios network error. I worked with my teammates to diagnose the issue and examined the mobile codebase to understand its structure and API interactions. - Non-Code-Related Significant Issues: Reviewed requirements for W3C compatibility with teammates and made necessary modifications #287, created issue on “Sufficient Color Contrast & Scalable Text” and contributed to accessibility-related documentation #328, created issue for updating the SRS based on newly added requirements #342, reviewed teammate’s updates to ensure requirement consistency and correctness #343. - Pull Requests: My contributions were primarily focused on documentation, requirements refinement, and issue reviews rather than PRs. |
| Berkay Ak | - Responsibilities: I was responsible for preparing the mobile application for Customer Milestone 1 by migrating the project to an Expo Go–compatible structure. I revised the mobile repository, organized upcoming milestone tasks, and tested the Android build ahead of the demo. I also contributed to requirement refinement by reviewing the W3C Accessibility Guidelines with my teammates and helped integrate accessibility-related requirements into the project. Additionally, I documented and published weekly meeting notes to support team coordination. - Main Contributions: Migrated the legacy mobile repository to Expo Go compatibility and resolved related dependency issues #323. Created milestone planning issues for mobile development tasks #327. Tested the Android app for compatibility and performance before the demo. Wrote and organized detailed weekly meeting notes #338. Reviewed the term expectations document and contributed to the General Project Plan. Participated in discussions to define and finalize W3C accessibility requirements for the project. - Code-Related Significant Issues: Migration to Expo Go required resolving multiple dependency conflicts and updating project structure to align with current mobile development practices. Refamiliarizing myself with the legacy codebase also required additional time to understand the architecture and ensure compatibility with future implementations. - Non-Code-Related Significant Issues: Aligning milestone expectations within the mobile team required significant communication and task planning. Reviewing W3C accessibility guidelines and converting them into actionable project requirements involved collaborative decision-making. Maintaining clear documentation and meeting notes also required attention to detail to ensure accurate project tracking. - Pull Requests: Reviewed and merged PRs related to mobile migration and improvements, including PR #356 and PR #358, both successfully merged as part of the milestone work. |
| Cenk Yılmaz | - Responsibilities: I was responsible for creating and verifying the demo scenarios for the web application and assisting the frontend team during milestone preparation. I also tracked and updated the status of project deliverables in the wiki and GitHub Projects board to ensure accurate milestone reporting. Additionally, I supported documentation reviews, accessibility verification, and overall coordination to help the team prepare for the milestone presentation. - Main Contributions: Authored and documented web user case scenarios #337 that demonstrated the project’s main features through realistic use cases. Reviewed, tested, and verified the finalized demo scenarios prepared by teammates #344, ensuring all actions worked correctly in the deployed version. Tracked milestone deliverable completion and helped finalize the Customer Milestone 1 Report. Supported the frontend team by testing UI functionality and ensuring consistency across pages. - Code-Related Significant Issues: No major code contributions were made in this milestone. Focused primarily on testing, documentation, and deliverable tracking to ensure milestone readiness. - Non-Code-Related Significant Issues: Aligning milestone expectations within the frontend team required consistent communication and coordination. Reviewing W3C accessibility guidelines and translating them into practical, frontend-related tasks involved collaborative decision-making with teammates. Tracking deliverable progress and maintaining up-to-date documentation demanded attention to detail to ensure accurate reporting. Additionally, preparing the demo scenarios and verifying user flows required careful planning and teamwork to align presentation goals with actual system functionality. - Pull Requests: Reviewed and merged PRs related to frontend improvements and documentation updates, including PR #351, which was successfully merged as part of the milestone work. |
| Ceyda Irwin | - Responsibilities: I prepared the mobile application for Customer Milestone 1 by adding the Tips, Leaderboard and Achievements pages. This involved revising the mobile repository, organizing tasks for the upcoming milestone, and testing the Android build ahead of the demo. I also contributed to requirement refinement by reviewing the W3C Accessibility Guidelines with my teammates and incorporating accessibility-focused requirements into the project. - Main Contributions: Reviewed the migration of legacy mobile repository to Expo Go compatibility #323. Contributed to requirement refinement by reviewing the W3C Accessibility Guidelines with my teammates and incorporating accessibility-focused requirements into the project. #324. Wrote meeting notes for Lab1 Meeting Notes and Meeting 5 Notes .. Reviewed the term expectations document and contributed to the General Project Plan. - Code-Related Significant Issues: Reviewed the migration to Expo #323. Improved mobile Challenges Screen UI/UX and functionality #350. Implemented a Tips screen for the mobile app that allows users to view, create, like, dislike, and report sustainability tips #353. Implemented an Achievements screen that displays user's earned achievements with visual cards and progress information. #354. Implemented a Leaderboard screen that displays the top 10 users ranked by their waste reduction contributions, including current user's ranking. #355. Added Admin Panel for Mobile App #357. - Non-Code-Related Significant Issues: RReviewed the term expectations document and contributed to the General Project Plan. Participated in defining and finalizing the project’s W3C accessibility requirements. Maintaining clear documentation and meeting notes also required attention to detail to ensure accurate project tracking. - Pull Requests: Created PRs related to additional pages and improvements, including PR's: #349, #356, #358 all successfully reviewed and merged. |
| Eren Akçin | - Responsibilities: I was responsible for DevOps operations, including managing Digital Ocean droplets, handling deployment processes, and implementing deployment automation. I also focused on backend database-related bug fixes, invalid entry handling, and ensuring system stability for Customer Milestone 1. Additionally, I supported backend team members with technical issues and infrastructure-related tasks. - Main Contributions: Managed and configured Digital Ocean droplets for project deployment. Implemented deployment automation to streamline the release process and reduce manual deployment errors. Fixed critical backend database-related bugs and improved invalid entry handling to enhance data integrity. Supported backend team members with infrastructure setup, debugging, and deployment issues. Ensured the deployed application was stable and accessible for the milestone demo. - Code-Related Significant Issues: Configuring deployment automation required careful attention to environment variables, build processes, and continuous integration workflows. Debugging database-related issues involved investigating data integrity problems, query optimization, and handling edge cases for invalid entries. Coordinating deployment timing with the team's development schedule required communication to avoid conflicts during critical milestone preparation phases. - Non-Code-Related Significant Issues: Managing Digital Ocean account transitions after the free trial ended required coordination with teammates. Ensuring deployment stability while teammates were actively developing features required careful timing and communication. Documenting deployment processes and infrastructure setup for team reference demanded attention to detail to support future maintenance and onboarding. |
- Lab1
- Lab2
- Lab3
- Lab4
- Lab5
- Lab6
- Lab7
- Lab8
- Lab9
- Weekly Reports
- Lab Meeting Notes
- Customer Feedback Meeting Notes
- LAB 5: MVP Implementation & Planning
- Lab 7: Milestone 2 Demo Preparation
- Lab 8: Requirements Review & Acceptance Planning
- Lab 9: Milestone 3 Demo Preparation