Name | GitHub ID |
---|---|
Aaron Rosales | 49774761 |
Aavash Adhikari | 115107368 |
Chris Woolson | 30053591 |
Cory Zhao | 91992519 |
Sawyer Rice | 129905805 |
Tyler Canepa | 130712814 |
Liam Ronarch | 82777456 |
Gym Buddy App is an interactive mobile application designed to enhance the gym-going experience by allowing users to track their workout progress, share updates, and engage in friendly competitions with friends. Inspired by fitness platforms like Strava, Gym Buddy focuses specifically on gym activities, providing a tailored environment for fitness enthusiasts to stay motivated and connected. Users can navigate through five main sections: Home, Search, Gym Updates, Comparison with Friends, and Profile, each offering unique functionalities to support their fitness journeys.
- Framework: React Native
- Development Tool: Expo Go
- Backend Services:
- Firebase: For real-time database, authentication, and hosting.
- Google OAuth: For secure user authentication and profile management.
-
Capabilities:
- Track Workouts: Log and monitor personal workout sessions.
- Share Updates: Post workout achievements and updates to the Gym Updates page.
- Search: Find other gym members, gyms, or specific workouts.
- Compare with Friends: View and compare workout statistics with friends.
- Manage Profile: Update personal information, workout history, and app settings.
-
Goals:
- Stay motivated through progress tracking and friendly competition.
- Connect with friends and the fitness community for support and accountability.
- Discover new workouts and gyms to enhance their fitness regimen.
-
Capabilities:
- Moderate Content: Approve or remove user-generated content to maintain community standards.
- Manage Users: Access and manage user accounts, including the ability to deactivate accounts if necessary.
- View Analytics: Access app usage statistics and user engagement metrics.
-
Goals:
- Ensure a safe and positive environment for all users.
- Maintain the integrity and quality of the app's content.
- Monitor app performance and user engagement to inform future improvements.
To maintain a secure and user-friendly environment, Gym Buddy App defines specific roles with distinct permissions:
-
Regular Users:
- Read Access: Can view workout logs, updates, and friends' comparisons.
- Write Access: Can create and edit their own workout logs and updates.
-
Admin Users:
- Full Access: Can read, write, and delete any content within the app.
- User Management: Can manage user accounts and permissions.
Implementing these roles ensures that while regular users can fully engage with the app's features, admin users retain control over content and user management to prevent misuse and maintain community standards.
Before you begin, ensure you have the following installed:
-
Expo Go Mobile App: download Expo Go app from the app store on your mobile device
-
Node.js (version 14.x or higher): Download Node.js
-
npm (version 6.x or higher): Comes with Node.js
-
Expo CLI: Install globally using:
npm install -g expo-cli
The project uses several libraries and add-ons:
- @expo/vector-icons: For using vector icons in the app.
- @react-navigation/native: Manages navigation within the app.
- expo-image-picker: Allows users to pick images from their device.
- firebase: Backend services for authentication and database.
- react-native-gifted-charts: Displays interactive charts.
- react-native-reanimated: Enables advanced animations.
- expo-auth-session: Handles authentication flows.
- @react-native-async-storage/async-storage: Handles storing local data.
Refer to package.json
for the complete list of dependencies
Follow these steps to set up the project:
-
Clone the repository
git clone git@github.com:ucsb-cs184-f24/Team11-GymBuddy.git
-
Navigate to the project directory
cd Team11-GymBuddy cd project
-
Install the dependencies
npm install
-
Start the development server
npx expo start
-
Switch to Expo Go
Press 's' when the option appears in terminal to switch to Expo Go. -
Run the app with Expo Go
Scan the QR code produced in terminal.
Follow these steps to use GymBuddy
- Create an account or #
- Click on the Workout tab to add workouts
- Click on the Profile tab to view your profile data
- Click on the Home tab to see workout logs of other users
- Stats tab has nothing on it yet. We plan to move code there in the future
- Given the limitations of Expo Go, our authentication does not fully work as intended
- You are able to save a workout without it's workout name
- The profile image is stored locally
We welcome contributions from everyone. Please follow these steps:
- Fork the repository
- Create your feature branch
git checkout -b my-new-feature
- Commit your changes
git commit -am 'Add some feature'
- Push to the branch
git push origin my-new-feature
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE.md file for details