SimpleFast is an intermittent fasting assistant app that helps users track their fasting periods, monitor progress, and achieve their health goals.
- Smart Fasting Timer: Track your active fasts with a beautiful, informative interface
- Fasting Stages: Understand what's happening in your body during different fasting stages
- Custom Goals: Choose from popular presets (16:8, 18:6, OMAD) or create custom fasting schedules
- Statistics: View your fasting history and track progress over time
- Push Notifications: Get notified when your fast is complete
- Daily Reminders: Set custom reminders to start your fasting window
- Dark/Light Theme: Comfortable viewing in any lighting condition
- Secure Authentication: Sign in with email or Google account
- Frontend: React Native, Expo, TypeScript
- Backend: Firebase (Authentication, Firestore)
- Animation: Lottie
- Charts: ApexCharts
- Navigation: React Navigation
- Push Notifications: Expo Notifications
- Node.js (v19+)
- npm or yarn
- Expo CLI
- Android Studio
-
Clone the repository
git clone https://github.com/thomas-lennon-atu-ie/simplefastapp.git
cd simplefastapp
-
Install dependencies
npm install
-
Create a .env file in the root directory with your Firebase configuration
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_auth_domain
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_storage_bucket
FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
FIREBASE_APP_ID=your_app_id
FIREBASE_ANDROID_APP_ID=your_android_app_id
-
Start the development server
npm start
The app can be built for different environments:
npm run build:android:dev
npm run build:android:staging
npm run build:android:prod
npm run build:web
simplefastapp/
├── assets/ # Images and animations
├── src/
│ ├── components/ # Reusable UI components
│ ├── config/ # Configuration files
│ ├── context/ # React context providers
│ ├── navigation/ # Navigation structure
│ ├── screens/ # App screens
│ ├── services/ # Service modules
│ └── types/ # TypeScript type definitions
├── .env # Environment variables (not in git but are stored as env variables on Github and Expo directly)
├── app.json # Expo configuration
├── eas.json # EAS Build configuration
├── package.json # Dependencies and scripts
└── tsconfig.json # TypeScript configuration
The app is deployed using Expo Application Services (EAS) with different profiles for development, staging, and production environments.
The GitHub Actions workflow handles continuous integration and deployment:
- Lint and test on pull requests
- Build and publish on version tags
- Automated deployment to Firebase Hosting
- Create an account or log in
- Choose a fasting goal from the presets or create a custom one
- Start your fast by pressing the central button
- Track your progress through the different fasting stages
- End your fast when complete
- View your statistics to track improvement over time
SimpleFast.Screens.mp4
For security issues, please refer to SECURITY.md for reporting guidelines.
