Calorie Compass is a mobile health companion app that helps users track their meals, monitor calorie intake, and stay informed with helpful health tips — all powered by AI!
- 🔐 Firebase-based authentication
- 🧠 AI-powered meal analysis using Gemini (estimates calories + provides contextual advice)
- 🎯 Daily goal setting and smart progress tracking
- 📈 Visual progress bar with color-coded calorie zones
- 📅 Recent meals and 7-day goal history
- 🔁 Seamless backend integration via Express.js
| Layer | Technology |
|---|---|
| Frontend | React Native + Expo Dev Client |
| Backend | Node.js + Express |
| Auth | Firebase Authentication (via REST API) |
| Storage | Firebase Firestore (via REST API) |
| AI | Gemini API (for tips & calorie estimates) |
To run this project locally, ensure you have the following:
- Node.js – Latest LTS version recommended.
- Expo CLI – Install globally (
npm install -g expo-cli) or use vianpx. - Git – For cloning the repository.
- Firebase Project:
- Enable Email/Password Authentication
- Set up Cloud Firestore
- Generate a Service Account Key (used in backend)
- Gemini API Key – Obtain from Google AI Studio.
- Android Studio or Xcode – Required for building and installing the custom Expo Dev Client on your device.
- Expo Dev Client (Custom Build) – See instructions below.
📌 Note: This app now uses a custom Expo Dev Client, not Expo Go. You’ll need to build the development client once using
eas build.
📌 Note: This current build is compatible with Android only. For iOS devices, check Expo Docs
git clone https://github.com/rustyBot31/Calorie-Compass.git
cd Calorie-Compassnpm installexport const FIREBASE_API_KEY = 'your-firebase-api-key';
export const PROJECT_ID = 'your-firebase-project-id';
export const BASE_URL = 'https://identitytoolkit.googleapis.com/v1/accounts';
export const FIRESTORE_URL = `https://firestore.googleapis.com/v1/projects/${PROJECT_ID}/databases/(default)/documents`;
export const BACKEND_URL = 'http://your-local-ip:4000';const GEMINI_API_KEY = 'your-gemini-api-key';
module.exports = { GEMINI_API_KEY };Download your service account key JSON from Firebase and place it in the backend/ folder as serviceAccountKey.json.
cd backend
node index.jsThis app requires a custom development build.
npx expo install expo-dev-client
npx eas build --profile development --platform android💡 After the build completes, install the generated
.apkon your device manually or useeas build:run.
Once the Dev Client is installed:
npx expo start --dev-clientScan the QR code from your terminal with the custom Dev Client installed on your device.
| Version | Description | Notes |
|---|---|---|
| 1.0.0 | Expo Go Initial Release | Deprecated |
| 1.1.0 | Switched to Expo Dev Build (Android only (for now)) | Deprecated |
| 1.1.1 | Minor bug fixes | Custom Dev Client required |
- Go to Firebase Console
- Select your project
- Click ⚙️ → Project Settings
- Navigate to Service Accounts
- Click “Generate new private key”
- Save it as
serviceAccountKey.jsoninsidebackend/
Contributions and feedback are welcome!
Feel free to open issues or submit pull requests.
This project is licensed under the MIT License.