The Expo Fitness Mobile App is a fitness application developed to help users to manage their workout plans efficiently. The app integrates an extensive exercise database, user authentication, state management, and data persistence.
- User Authentication: Secure user authentication using Firebase.
- Workout Database: Integration with RapidAPI ExerciseDB for fetching workout data.
- State Management: Efficient state management with Redux.
- Session Persistence: User session persistence with Async Storage.
-
Frontend:
- React Native with Expo: For building the mobile user interface.
- Redux: Handles state management for efficient application state updates.
- Async Storage: Used for persisting user session data locally.
-
API:
- RapidAPI ExerciseDB: Provides access to an extensive database of workout exercises.
-
Backend:
- Firebase:
- Authentication: Ensures secure user login and registration.
- Firestore: For storing user-specific data such as workout logs and preferences.
- Firebase:
- The user interacts with the frontend built using React Native.
- API calls to RapidAPI ExerciseDB fetch workout data.
- Firebase handles user authentication and stores user data in Firestore.
- State management is handled by Redux to maintain the consistency of application state.
- Async Storage is used to persist user sessions and local data.
To set up and run the app locally, follow the steps below:
- Node.js and npm
- Expo CLI
- Firebase Project Configuration
-
Clone the repository:
git clone https://github.com/KasunJayasanka/expo-fitness.git cd expo-fitness
-
Install dependencies:
npm install
-
Set up Firebase:
- Create a Firebase project.
- Add your Firebase configuration in a
firebaseConfig.js
file in thesrc/api
folder.
-
Start the app:
npm start
- Frontend: React Native, Expo
- API: RapidAPI ExerciseDB
- Backend: Firebase (Authentication, Firestore)
- State Management: Redux
- Storage: Async Storage
We welcome contributions! Please fork the repository, create a branch, and submit a pull request.