Gym Rat (Senior Design Class)
Production Dates
Start: January 2023 (Spring Semester)
End: December 2023 (Fall Semester)
Description
Gym Rat is a multi platform application that allows users to track both their meals and workouts in one convenient app. This application was developed with a team of five developers, including myself, in the time span of two semesters. We used the technologies Flutter and Firebase which helped to tremendously streamline our development process in creating a multi-platform application.
Development Process
First Semester: Waterfall Approach
The first semester we took the waterfall approach to development, which included us creating all the necessary documentation before we began implementation.
Created Documentation:
- Class Diagram: Defined the structure and relationships of the classes within the application, helping us understand how different parts of the system interact.
- Use Cases: Detailed the interactions between users and the system, ensuring all user requirements were captured.
- System Requirement Specification: Outlined the functional and non-functional requirements, providing a clear scope for development.
- Sequence Diagrams: Illustrated how objects interact in a particular sequence, clarifying the flow of operations for each feature.
- UML diagram: Offered a visual representation of the system's architecture, aiding in better planning and communication among team members.
All of these different documents helped to improve our development process in the second semester by ensuring each member on the team was in agreement of how each feature should be implemented.
Second Semester: Agile Approach (SCRUM Framework)
In the second semester we took an agile approach to development and utilized SCRUM as our development framework.
- Created a backlog of which consisted of user stories, and bugs encountered during development.
- Planned sprints and held daily stand ups, where the professor acted as SCRUM Master.
- Conducted sprint reviews and sprint planning sessions.
This structured development process enabled us to complete the application quickly and efficiently in an organized manner.
Technologies
Frontend: Flutter
We used flutter for our frontend development because it provided a way for us to only have to code something once and have code that can be compiled to both Android and IOS applications. We used a tool called FlutterFlow which also helped to speed up our development process.
Backend: Firebase
Firebase is a Backend as a service that provided us many "out of the box" services to implement in our app. The services that we used were the realtime database, authentication and cloud storage. Firebase also seamlessly integrates with Flutter because they are both developed/maintained by Google. FlutterFlow made it easy to configure Firebase in our application via a service account which made all the automated changes to the Firebase based on the configurations we input.
Services
- Jira: Project management software that helped us plan sprints and assign tasks.
- Github: Version control system.
Features
- User authentication and authorization
- Meal creation and management
- Meal tracking
- Workout routine creation and management
- Workout tracking
- Goal creation and management