Lab 5: MVP Implementation & Planning - bounswe/bounswe2025group2 GitHub Wiki
1. Goals/Objectives for MVP
MVP Goals
- #430 Add forum functionality for mobile.
- Web: #457, Mobile: #479 Add AI generated goals.
- Web: #454, Mobile: #481 Edit home page to encourage more activity via adding a recommender bot.
- Web: #482, Mobile: #490, #492, #493, #495, #497 Ability to visit other people’s profiles on the web part of the app.
- Web: #483, Mobile: #484 Functional search bar.
- Web: #455, Mobile: #377 & #368 Mentor relationship with fitting UI.
- #413 AI chat for mobile.
- Web: #485, Mobile: #487 Updating the chat interface to work with goal/challange links via proper navigations.
- Web: #464, Mobile #489, Mobile #501 Report system
We believe all these functionalities are crucial for the app. All these take part in encouraging sportive activity, providing helpful experience, and building a community. The app wouldn’t be fully viable without them. But there are some small & non-crucial functionalities we plan to implement.If we have the time for it, we’re going to implement these ones
- Auto-repeat functionality for set goals.
- Badges for challenge rank, forum popularity, daily streak, etc.
- W3C cookie policy and personal data use.
2. Implementation Plan
Critical Points
- Based on customer feedback we got from the demo, we have decided to add more field specific features that encourage users to use our app such as home page recommender box, goal suggestions. Other than that we have inclusivity features like reporting. Finally, we have past features that are waiting to be implemented like mentor feature.
- These are decided to be critical because we got specific feedback for them in the demo presentation.
Issue Tracking
- Our issues for the following milestone can be found under part 1 of this report.
- We use github issues and always assign reviewers to our issues which forces tracking.
- We will use unit tests that we will write to check the correctness of the work done under issues.
Execution Practice
Our team follows an Agile development workflow to maintain flexibility and ensure continuous improvement throughout the project. At the beginning of each iteration, we plan our upcoming actions and assign responsibilities according to priority and workload. Implementation begins immediately after the planning phase, and any bugs or technical issues encountered during development are resolved promptly through collaborative problem-solving.
Code integration is managed using GitHub’s version control and collaboration tools, including branches, pull requests, and issue tracking, while strictly following our GitHub workflow policies. Each new feature or update is developed in a dedicated branch and reviewed through GitHub before merging into the main branch. Integration checks are performed to ensure code stability and to prevent conflicts. If integration issues arise, the team investigates and resolves them systematically before proceeding further.
For communication and coordination, we primarily use WhatsApp for quick discussions and GitHub comments for technical feedback. Team meetings are scheduled as needed to synchronize progress, review milestones, and make collective decisions. Each task is documented as a GitHub issue, clearly described, and assigned to specific members. Upon completion, the issue is reviewed by another teammate to ensure quality and maintain accountability within the workflow. Our detailed communication plan is documented on this page.
Progress Tracking
Project progress is closely monitored using several complementary methods. We maintain weekly effort reports to record both individual and team contributions, providing better visibility into overall productivity. The GitHub Projects section serves as our primary project management tool, where we organize tasks, define milestones, and visualize progress through Kanban-style boards and progress charts.
Regular progress reviews are conducted after each development phase to evaluate completed tasks, identify obstacles, and plan necessary adjustments. Key milestones are tracked in GitHub to ensure alignment with project objectives and deadlines. This structured tracking process allows us to maintain consistent progress, meet deliverables on time, and continuously refine our development practices.
3. Lessons Learned & Mitigation
Previous Milestone Reflection
We understood that the way we present the app shapes how people perceive its purpose. When our demo began with static screens and social-style interactions, it felt like a general community app rather than a focused fitness companion. By shifting to interactive, user-centered stories and ensuring clear communication among teams, we learned how consistency and context can turn a simple demo into a meaningful narrative.
Mitigation Strategies
We are addressing the shortcomings from the previous milestone by reinforcing the app’s fitness identity and improving feature integration. The mentor–mentee system and AI-generated goals directly respond to feedback that the app felt too social, providing structured and personalized fitness guidance to make our application more domain-specific. Navigation and engagement issues are being mitigated through clearer user flows, like challenge sharing on chat, ensuring that users can easily find and interact with relevant content. Finally, the introduction of a report system and an on-demand AI chat enhances reliability and support, creating a more purposeful, guided, and professional user experience overall.
Process Improvements
We adjusted our process to achieve a better balance between social interaction and fitness-oriented functionality. While the previous milestone revealed that the social aspect had become dominant, we have refined our planning to second milestone to give more structured attention to domain-specific goals such as mentor–mentee relationships, AI-generated goal descriptions, and the report system — without neglecting community-driven features. Our workflow has also become more iterative, incorporating first milestone reviews and early integration testing to ensure stability and smoother implementation of both social and fitness modules. In terms of presentation, we transitioned to scenario-based demos that demonstrate realistic user journeys and highlight how both aspects of the app work together. These process changes ensure a balanced, cohesive, and well-communicated development approach moving forward.
4. Testing Strategy
Test Coverage
- We have nearly 50 unit tests in our backend app. We written these tests in the previous semester and kept them since there has not been a major change in our backend structure. These are the Django Unit test files we wrote for the core functionality and external APIs using
django.test. We estimate that they cover 80% of our core backend functionality.
- challenges_page_test.py
- localtime_test.py
- test_fitness_gif.py
- test_profile.py
- test_auth.py
- test_ip_location.py
- test_runner.py
- test_cat.py
- test_not_for_comments.py
- test_search_challenges.py
- goals_page_test.py
- test_challenge_creatation.py
- test_parse_food.py
As for the topic for this term, we aim to increase our coverage by making sure the core functionality in the backend is fully covered.
We will also start to add frontend tests using Jest. We aim to increase our frontend test coverage to %40 for core functionality for the MVP Milestone. Also, we will be adding these test setups to be automatically ran in our Build check and deployment pipelines.
Test Quality
- These tests aim to catch the external API statuses for releases and they make sure core functionality is in place.
- We use django.test package for backend tests, Jest for the frontend tests
- Since our goal mechanism has changed several times during our development, our backend unit tests for goals lagged and may not cover as much as they should be doing.
5. Acceptance Test Plan
Overview
This plan validates that the MVP meets key user and stakeholder expectations by testing the core user journeys that define our fitness-focused application. Each scenario ensures that implemented features not only function correctly but also align with user intent and domain-specific fitness interactions.
Scenario 1: AI Goal Suggestion
Description:
Users can generate fitness goals using AI and receive personalized advice on how to achieve them.
Steps:
- Log in to the app.
- Navigate to the “Goals” section.
- Request AI goal suggestions.
- Create a goal and look at the AI-generated advice description.
Expected Outcome:
AI generates a meaningful goal based on user preferences. The user can view and store the goal and receives practical, context-aware suggestions for achieving it.
Scenario 2: Mentor–Mentee Request Flow
Description:
Users can send, receive, and respond to mentor or mentee requests from other users’ profiles.
Steps:
- Log in to the system.
- Search for another user and visit their profile.
- Click “Send Mentor Request” or “Send Mentee Request.”
- Log in as the recipient user.
- Receive a notification and choose to accept or reject the request.
Expected Outcome:
If accepted, a mentor–mentee relationship is established and displayed in both users’ dashboards. If rejected, the request is removed, and the sender is notified accordingly.
Scenario 3: Goal Tracking by Mentor
Description:
Mentors can view and track their mentees’ goals and progress updates.
Steps:
- Log in as a mentor.
- Navigate to the mentee list.
- Select a mentee to view their goals and progress charts.
- Observe any updates made by the mentee.
Expected Outcome:
The mentor can see accurate, up-to-date progress data for each mentee, including goal status, completion percentage, and last update date.
Scenario 4: Sending a Challenge via Chat
Description:
Users can send a challenge directly through the chat interface to another user.
Steps:
- Open a chat conversation with another user.
- Select the “Send Challenge” option.
- Choose an existing challenge or create a new one.
- Send it within the chat.
Expected Outcome:
The challenge link appears within the chat. The recipient can open it to view details and choose to join or ignore the challenge.
Scenario 5: Viewing a User’s Profile Across the App
Description:
Users can navigate to other users’ profiles from various parts of the app, such as forum posts, challenges, chat messages, leaderboards, or comments.
Steps:
- View a forum post, challenge, leaderboard entry, or chat message created by another user.
- Click on the creator’s username or avatar.
Expected Outcome:
The system redirects to that user’s public profile page, displaying relevant user data and available actions (send request, view goals, report, etc.).
Scenario 6: Reporting System
Description:
Users can report inappropriate content or behavior across threads, comments, and user profiles.
Steps:
- View a forum thread, comment, or a user’s profile.
- Click the “Report” option.
- Select a reason (e.g., spam, harassment, inappropriate content).
- Submit the report.
Expected Outcome:
A confirmation message appears indicating successful submission. The report is stored for moderator review, and the reported content/user is flagged accordingly.
Scenario 7: Mentor–Mentee Notifications
Description:
Notifications are generated and delivered for all mentor–mentee actions (request, acceptance, rejection, goal update).
Steps:
- Send a mentor request from one user to another.
- Log in as the recipient and check the notifications tab.
- Accept the request.
- As the sender, check for confirmation.
Expected Outcome:
Notifications appear at each step:
- Recipient receives “Mentor request from [username].”
- Upon acceptance, sender receives “Your mentor request to [username] has been accepted.”
- Similar notifications appear for goal updates or new assignments between connected pairs.
Success Criteria
The MVP will be considered acceptable if the following criteria are met:
- ✅ Users can generate goals using AI and receive helpful, personalized advice.
- ✅ Mentor–mentee requests, acceptances, and rejections function smoothly, reflected in dashboards.
- ✅ Mentors can view and track mentee progress accurately and in real time.
- ✅ Users can send challenges via chat, and links correctly open related challenge views.
- ✅ Users can view profiles seamlessly from anywhere in the app (forum, leaderboard, chat, comments, challenges).
- ✅ Users can report inappropriate content or behavior across the app.
- ✅ Notifications are contextual and actionable, appearing promptly for mentor–mentee interactions and goal updates.
- ✅ No critical errors occur during any main user flow.