Aqualert is a mobile app that helps users stay hydrated by tracking their water intake, setting daily goals, and sending reminders. It consists of a Node.js backend and a React Native frontend (Android).
People often forget to drink enough water daily, leading to dehydration and related health issues. Aqualert addresses this problem by:
- Letting users set personalized hydration goals
- Sending timely notifications to remind users to drink
- Providing a clean interface for manual water intake logging
- Offering visual insights into daily and weekly water consumption
- User Authentication (JWT)
- Drink water reminder notifications
- Set daily water intake goals
- Track water intake history (daily & weekly)
- MongoDB (via Mongoose)
- JWT-based Authentication
- AsyncStorage for token storage
- Notification API (e.g., Expo or PushNotification)
- Navigate to the backend folder:
cd backend- Install dependencies:
npm install- Create a
.envfile in the backend folder:
PORT=3000
MONGO_URI=your_mongodb_uri_here
JWT_SECRET=your_jwt_secret_hereTo generate a secret key for JWT_SECRET, run:
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"- Start the server:
npm run devThe backend will be available at: http://localhost:3000/api
- Navigate to the mobile folder:
cd mobile- Install dependencies:
npm install- Set up Android SDK path:
Edit android/local.properties:
sdk.dir=/Users/YOUR_USERNAME/Library/Android/sdk- Configure API URL in
constants/api.js:
// For deployed backend (Onrender):
export const API_URL = "https://aqualert.onrender.com/api";
// For local development on a physical device (replace with your IP address):
export const API_URL = "http://192.168.x.xx:3000/api";
// For emulator (if using localhost with forwarding):
export const API_URL = "http://localhost:3000/api";- Run the app on Android:
npx expoFor more frontend setup details, see mobile/README.md.
Ensure your Android emulator or physical device is running and connected to the same network if testing against a local server.
.
├── README.md
├── backend
│ ├── .env
│ └── ...
├── mobile
│ ├── android
│ │ ├── local.properties
│ │ └── ...
│ ├── constants
│ │ └── api.js
│ └── ...
└── package-lock.json

