Lab8 Report - bounswe/bounswe2024group4 GitHub Wiki
03.12.2024 Lab8 report
Features to be Finalized for Final Milestone
- Post and Feed
- Meal
- Exercise
- Advanced Search
- Workout logs
Primary Features
- Advanced Search
- Feed and Posts
- Follow/unfollow
- Login/logout
- Bookmarking
- Comment
- Like
Domain-specific features
- Meal and Exercise Management
- Unlike generic apps, this system integrates both meal and exercises to well-being.
- Users create meals and exercise programs. They can then share them within posts, or they can display each others' programs.
- Exercise Tracking
- Exercise tracking is crucial for monitoring progress and maintaining accountability, which are central to fitness-focused applications.
- The app logs workouts, including number of repetitions, sets, and weight, using user inputs. This data is available to users for them to see their progress.
- Leaderboard
- Leaderboards promote community engagement and motivate users through gamification, leveraging friendly competition to encourage consistency in workouts and diet.
- User exercise and meal programs are rated by other users. Scores are aggregated and ranked in real time using a leaderboard algorithm, with data stored in MySQL database.
- Super-User and Regular User Discrimination
- This feature distinguishes super users (e.g., trainers or coaches) from regular users, enabling tailored functionalities like creating exercise for others.
- The user roles are determined based on user ratings. Super-users access more functionalities, while regular users have standard functionality.
- Rating System
- A rating system allows users to provide feedback on workouts, meals, fostering user-driven content improvement and enhancing community trust.
- Users rate content with a score. Ratings are aggregated, and displayed dynamically, using a scoring algorithm.
API and its Documentation
- API of the platform should be documented using Swagger
- Each endpoint should be included
- Each endpoints should include explanations
- Each endpoints should include examples
- Every possible response for endpoints should be covered
Standart Being Followed
Follow the Activity Streams standard of W3C.
- Find a NoSQL database to hold the information
- Data format should be JSON
- Log the profile views from view_profile endpoint
- Log the post deletions from delete_post endpoint
- Log the comment deletions from delete_comment endpoint
Testing Strategies
Development Phase:
- Backend: Postman and HTML templates to test the requests and responses
- Frontend: Directly in the browser or local development environment, where UI and the behavior of components are observed.
- Mobile: Within the mobile app on simulator or emulator. The focus is on observing how UI is and components react.
Integration Phase:
Backend
- Unit tests to check the endpoints in a more comprehensive manner
- Test the integrated front-end on a local machine Frontend
- Unit tests to validate the functionality of individual frontend components, ensuring each part works as expected in isolation.
- Test the integrated frontend on a local machine to check the overall UI and interactions, ensuring everything functions correctly when connected to the backend. Mobile
- Implement unit tests to validate the logic and behavior of mobile components, checking each feature individually.
- Test the mobile app on a simulator or emulator to ensure the UI and features work as expected, focusing on responsiveness, navigation, and data interactions.
After Deployment:
Apply and report end-to-end, user tests covering all features to make sure that everything is working correctly. User tests that cover the following features will be created:
- Exercise creation
- Meal creation
- Sign-up/Login
- Follow/unfollow
- Create Post
- Like Post
- Search
- Edit Profile
- Comment
- Bookmark/Unbookmark
- See Others' Profile
- Leaderboard
- Rating an exercise/meal
- Comment