Lab 5: MVP Implementation & Planning - bounswe/bounswe2025group5 GitHub Wiki
Lab 5: MVP Implementation & Planning
1. Goals/Objectives for MVP
For the Minimum Viable Product Milestone, we aim to deliver a fully functional, user ready application that enhances community engagement, and driving user's long-term retention while ensuring a smooth, accessible, and secure user experience.
Goal 1: Comprehensive waste tracking and visualization
In the first milestone, users were able to log their waste for their goals and for the challenges they joined; however, they didn't have the means to see what they have accomplished overall. For the MVP Milestone, we will implement user facing analytics and statistics (Requirement 1.1.1.6) including graphs and charts (Requirement 1.1.2.5). The application needs to have data visualization so that users will be more motivated to use the application to keep track of their achievements and improve their sustainability efforts.
Goal 2: Community Engagement & Safety
In the first milestone, we built the community with feautures such as creating posts, commenting on it and creating/joining challenges. However, it wasn't engaging and safe enough yet. For the MVP Milestone, we will implement a full notification system which will will notify the users on their posts, goals and challenges (Requirement 1.2.4.x), which help the users to engage with the community more. For safety, we will implement reporting posts and moderation tools which will be used by moderators that include deleting posts, and viewing reports (Requirements 1.1.4.3, 1.1.4.4, 1.2.5.4). This way, users will be able to safely interact with the application and the community through a moderated environment. Moreover, we aim to implement a feedback system where the users can give their opinions on the application (Requirement 1.1.5.3). Through the feedback system, users will be able to use the best version of the application. The application needs to have a moderated and engaging environment so that users will invest more of their time to the the application and get more from the community.
Goal 3: Achieve Extensive Usability & Accessibility
For our MVP, we will focus on ensuring extensive usability and accessibility throughout our web and mobile applications. Because our platform centers on waste tracking, waste logging, and community challenges, usability is crucial for encouraging consistent participation and accurate data collection. Accessibility, in turn, ensures that environmental awareness and sustainable practices are inclusive and reachable for all users. These objectives are essential at this stage because the MVP’s success depends on how intuitively users can record their waste, join challenges, and engage with the community without barriers.
Usability Enhancements
To achieve full usability, we will include the following for our web and mobile applications:
- providing tooltips and tutorials for all users (Req 2.1.2.2)
- standard inline validation in form inputs such as login, register, and forum interactions (Req 2.1.2.3)
- requiring user confirmation for critical/irreversible actions such as account/post deletion (Req 2.1.2.4)
- ensuring that the platform is responsive and functions correctly on mobile devices to deliver a consistent user experience across different screen sizes and platforms (Req 2.4.2)
Accessibility Improvements
To ensure extensive accessibility for all users, we will include the following for our web and mobile applications:
- ensuring text alternatives are present for all non-text content (Req 2.1.2.5)
- implementing a color contrast ratio to improve inclusivity for color-blind users (Req 2.1.2.6)
- adding visible focus indicators for all interactive elements (Req 2.1.2.8)
- ensuring consistency in navigational components throughout the apps (Req 2.1.2.9)
- in the web application, making interactable elements operable via keyboard (Req 2.1.2.7)
These improvements will create an inclusive and user-friendly experience by allowing all users—regardless of ability, familiarity, or platform—to interact with the system seamlessly. They will also align our product with recognized accessibility standards and usability best practices, ensuring that users can easily log their waste, monitor progress in challenges, and participate in community discussions. This focus will help maximize early adoption, gather meaningful behavioral data, and establish a strong user foundation for future iterations.
Goal 4: Mature and Scale the Platform
For our MVP, we aim to establish a foundation that supports long-term scalability, reliability, and sustainability across both the web and mobile platforms. As the platform’s purpose is to track individual and collective waste reduction and host large-scale community challenges, scalability and data integrity are critical for handling the growing number of users, waste entries, and interaction logs. Furthermore, aligning our infrastructure with environmental sustainability principles reinforces the app’s mission of promoting eco-friendly behavior.
Security and Data Integrity
To ensure that the platform maintains a secure and trustworthy environment for all users:
- the system shall enforce strong password policies where new passwords must be at least 8 characters long, ensuring compliance with modern security standards (Req 2.3.2)
- the waste tracking data shall be updated in real-time to preserve accuracy and consistency across all users and devices (Req 2.1.3.1)
- the waste tracking module shall support batch data entry to allow efficient and reliable processing of multiple records simultaneously (Req 2.1.3.2)
Scalability and Sustainability
To support long-term growth and reduce environmental impact:
- the platform shall be designed for horizontal scalability, enabling increased capacity and performance by adding more servers or nodes without system redesign (Req 2.2.1)
- the platform shall prioritize hosting providers with certified renewable energy usage, aligning with our commitment to sustainable digital infrastructure (Req 2.5.1)
These improvements will ensure that the platform evolves into a mature, secure, and environmentally conscious system capable of handling higher user demand as more participants log waste, join challenges, and interact socially. At the MVP stage, emphasizing scalability and data reliability allows us to validate our architectural design early, ensuring the platform can seamlessly grow into a large-scale sustainability ecosystem without compromising performance or environmental values.
2. Implementation Plan
2.1 Critical Points:
-
After the customer presentation for milestone 1, it is decided that emphasizing the impact of the application and effort of users using the application is important for the customer. Therefore showing the impact of the application on environment became one of the most important aspects of the MVP. In particular, features such as showing waste goal statistics and closed challenges are among our most crucial features for the upcoming milestone.
-
Accessibility features are among the most important aspects for MVP as well. In the first milestone, implementation of necessary accessibility features such as keyboard navigation and maintaining a color contrast ratio were postponed to following milestones. Complying accessibility guidelines is an important aspect of this project and it is needed to be implemented in a large extent for the MVP.
2.2 Issue Tracking:
-
We are opening issues according to our templates which ensures them to be well-defined and detailed. We are using labels, milestone effectively and actively communicate on issue comments section.
-
Here are some examples of our well-defined, assigned issues:
-
We are most frequently using issues page in our repository in GitHub to track issues and manage our workflow. As is communication plan, we utilize Slack as our main communication platform, therefore, we have included a .yml file to direct issue activity to Slack to get noticed instantly. In addition, WhatsApp is also utilized for urgent topics time to time when an issue is needed to be opened, closed, or reviewed.
2.3 Execution Practice:
We maintain an active WhatsApp group for our main CMPE451 team (10 members) as well as for each subteam: backend, frontend-web, and frontend-mobile. For less urgent discussions, we use Slack, where we document decisions and async updates. In addition to our weekly in-person lab sessions, we schedule at least one extra Zoom meeting every week to ensure alignment. We strictly follow our Communication Plan, which helps us stay consistent and efficient.
Each subteam has a designated team communicator who can make and debate quick decisions when needed. During every meeting, we open and assign GitHub issues, ensuring each task has a clear owner. This prevents confusion and keeps execution smooth, just like a well-organized ant colony. Tasks are often passed and completed efficiently within or across teams.
After every one or two pull requests, we perform comprehensive manual testing of the application to detect regressions early. This approach, combined with our upcoming unit tests, maintains code reliability. Whenever we face uncertainties, we directly reach out to TAs, either during lab sessions or through scheduled meetings.
2.4 Progress Tracking:
We rely heavily on GitHub issue tracking and milestones to monitor progress. Each issue is labeled, filtered, and assigned to a specific team member, making ownership and progress transparent. The milestone view allows us to see the overall completion rate and identify which parts of development are on track or delayed.
By combining regular communication, systematic issue management, and consistent testing, we ensure that we’re meeting milestones and maintaining a cohesive workflow throughout the project.
3. Lessons Learned & Mitigation
3.1 What was the most important lesson learned from your previous milestone?
The most important lesson we learned was the dual value of direct customer feedback.
First, the positive response validated that our current development is aligned with the customer's expectations. So we could finalize our product and implementations based on what we showed in the demo.
But more importantly, the feedback wasn't just simple validation; the customer provided a clear direction for future improvement on our app. By suggesting the "positive environmental impact" feature based on historical data, the customer interaction gave us our next concrete, high-value target and showed us a clear way forward.
How are you addressing or mitigating issues from previous work?
We've focused our efforts on mitigating the key implementation challenges we identified in our previous work, which we've broken down into infrastructure and process improvements.
First, on the infrastructure side, we identified a critical performance bottleneck.
-
The Issue: We found that server limitations were causing significant delays in loading data from the database, leading to poor application responsiveness.
-
The Mitigation: We've addressed this directly by upgrading our server infrastructure to a more powerful system. This has resolved the latency issues and ensures the application can handle the required load.
Second, on the workflow side, we addressed a significant workload imbalance.
-
The Issue: Our frontend team was overloaded due to the heavy task of implementing the entire UI from scratch within a very tight schedule.
-
The Mitigation: To prevent burnout and ensure high-quality work, we re-evaluated and adjusted our project timeline. We've restructured the frontend workload into more manageable phases with more flexible deadlines for the initial milestones. This gives the team the time they need to build a robust foundation without being rushed.
3.3 What changes have you made to your process based on these lessons?
Based on those lessons, we've made a significant change to our development process and design priorities. Our core process change was to pivot our feature roadmap to prioritize community impact and user motivation. We learned that simply providing a service isn't enough; users are highly motivated by seeing their personal and collective positive impact on the environment. Operationally, this meant we formally updated our project design and implementation plan to include a new stream of work focused on "Impact Visibility." This has resulted in three specific new features being prioritized:
- Visual contribution graphs to give users tangible, personal feedback.
- Notifications for completed challenges to actively celebrate user achievements.
- Community statistics prominently on the main page, showing collective wins like "X plastic bottles recycled," to reinforce the value of their participation.
4. Testing Strategy
Current Status:
This report outlines the current status of our unit test coverage for the project.
Quantity:
- Total Tests: We currently have no unit tests implemented, we have unit tests that implemented at CMPE352 which has the main features. For these term, we will implement the unit tests for the main functionalities that we will implement at Milestone 2.
- ** Reviewer Test From Postman** We did the tests from the postman by developer and reviewer, all collections (endpoints) with the %100 coverage are at the postman, and our PR reviewers use postman as test tool and tried the implementation.
- Code Coverage: Our unit test achieves 10% line coverage across the core application logic (at the archive, we delete them for the new project), our reviewer and developer test from postman achieves %100 coverage for backend. Since it is not a automated test, we will increase the unit tests for this milestone.
Quality:
-
The quality of the tests at postman are valuable for us since it uses the real db and the reviewer tries all the possible issues.
-
The automation of the codes for our project is not as good as unit tests, so we need to focus on that part.
-
Meaningful Tests: Our testing philosophy emphasizes the checking of all possible issues,errors . Tests are designed to validate specific edge cases, and integration points between services.
-
Effectiveness: The effectiveness should be the main goal of the testing structure for us at milestone 2 since testing from postman by reviewer is not a automated system.
These bullet points validate that our tests are targeting real-world scenarios and potential failure points.
5. Acceptance Test Plan
This plan outlines the user acceptance testing criteria to validate that the Minimum Viable Product (MVP) meets its core business goals and is acceptable for an initial stakeholder/user perspective.
Acceptance Criteria Overview:
The MVP will be considered acceptable when the core user journeys defined below can successfully and intuitively complete, and the system demonstrably meets the primary goals.
| User Story / Feature | Acceptance Criteria | Validation Method |
|---|---|---|
| Profile Management | 1. Users can upload a profile picture up to 2MB. 2. Users can create bio, they can permanently delete their account. | Unit test |
| Waste Tracking (Daily Logging) | 1. Users can log daily waste in different unit items .2. Waste can be categorized into at least 5 predefined types. 3. Analytics update within 5 seconds. | Functional testing using test accounts. |
| Waste History Visualization | 1. Users can view historical data for at least 12 months.2. Data is displayed through charts or graphs. | UI test from Mobile with Expo Jest Library |
| Community Challenges | 1. Users can join sustainability challenges.2. Leaderboards update based on challenge results. | End-to-end testing using multiple user accounts. |
| Post Creation & Interaction | 1. Users can create posts with text, image, and link attachments.2. Users can like, save, comment, and share posts.3. Posts can be deleted by their owner.4. Moderator can delete inappropriate posts.5. Reported posts appear in moderator panel.6. Reminder message encouraging kindness is displayed. | UI functional testing and moderator role testing. |
| Semantic Search (Forum) | 1. Searching returns relevant posts based on content meaning.2. Search ignores stopwords.3. Typo-tolerance is applied. | Prompt-based query testing with expected results. |
| Notification System | 1. Users receive notifications for likes and comments.2. Users receive goal progress updates.3. Users are notified on leaderboard updates.4. Users receive notifications when followed accounts post. | Backend event simulation. |
| Localization | 1. System supports Turkish and English.2. Default locale is English.3. Language switch doesn’t break UI. | UI language toggling validation. |
| Accessibility & UX | 1. Visible focus indicators exist for interactive elements.2. Keyboard navigation works everywhere.3. Non-text content has meaningful alternative text.4. Color contrast ratio meets 4.5:1 minimum.5. Tooltips and onboarding guides appear where necessary. | Accessibility-standard audit (WCAG). |
| Security & Compliance | 1. Passwords must be at least 8 characters and securely stored.2. HTTPS enforced.3. KVKK policies are accepted.4. Encryption prevents unauthorized access.5. Minimal data collected. | testing the HTTPS, KVKK, password and encryption by developer. |
| Performance | 1. 95% of user actions respond under 4 seconds2. Analytics update within 5 seconds.4. Database queries remain performant at scale. | Load and stress tests. |
| Scalability | 1. Horizontal scaling supported at the service level.2. User growth does not degrade platform functionality. | Cloud environment scaling simulation. |