Aarini โ Meaning "bringer of light" โ is a compassionate, intelligent, and privacy-first health companion built to help every woman understand her body, honor her cycle, and thrive at every phase of life.
## ๐ Table of Contents
- โจ About Aarini
- ๐ก Why Aarini Exists
- ๐ Key Features
- ๐ ๏ธ Tech Stack
- ๐๏ธ Architecture
- ๐ Project Structure
- โ๏ธ Installation Guide
- ๐ Environment Variables
- ๐ก API Reference
- ๐บ๏ธ Roadmap
- ๐ค Contributing
- ๐ Open Source
- ๐ฎ Future Vision
- ๐ License
- ๐ Closing Note
Aarini is an AI-powered women's hormonal wellness and period health companion โ built with empathy, powered by intelligence, and designed to put women in control of their own health narratives.
From tracking cycles and logging daily symptoms to receiving personalized wellness insights and chatting with a compassionate AI health assistant, Aarini is the all-in-one digital companion that treats women's health not as an afterthought โ but as a priority.
Whether you're navigating irregular cycles, understanding PMS patterns, or simply trying to be more in tune with your body, Aarini walks beside you โ every single day of every phase.
Women's hormonal health is one of the most underserved and under-researched areas in modern medicine and technology.
- ๐ฉบ 1 in 10 women worldwide lives with PCOS โ many undiagnosed
- ๐ 80% of women experience PMS symptoms, yet struggle to communicate them to healthcare providers
- ๐ฌ Women spend years dismissing their own symptoms due to lack of accessible, judgment-free health information
- ๐ฑ Most period tracking apps focus purely on dates โ not on the lived experience of hormonal health
Aarini changes that.
By combining real-time symptom logging, cycle intelligence, mood tracking, and the conversational power of Google Gemini AI, Aarini empowers women to:
- Understand their hormonal patterns with clarity
- Communicate confidently with healthcare providers
- Build a rich, longitudinal health history
- Receive personalized insights โ not generic advice
Because every woman deserves a health companion that actually listens.
|
Log and monitor your menstrual cycle dates with precision. Aarini learns your unique rhythm and helps you anticipate every phase โ menstrual, follicular, ovulation, and luteal. Track emotional patterns day-by-day. Understand the hormonal roots of mood shifts and gain insights that help you plan, prepare, and practice self-compassion. From cramps and bloating to headaches and fatigue โ log any symptom with ease. Build a detailed health history that puts you in control during doctor's appointments. Chat with Aarini's intelligent health assistant, powered by Google Gemini AI. Ask anything โ from "Why do I feel so tired before my period?" to deeper hormonal health questions โ and receive warm, accurate, empathetic responses. Receive personalized, AI-generated wellness insights based on your logged data. Aarini connects the dots between your cycle, mood, symptoms, and lifestyle โ giving you actionable, compassionate guidance. Secure, seamless user authentication powered by Firebase. Your health data belongs to you โ always protected, never shared. All your health data is encrypted and securely stored in Firebase Firestore โ accessible only to you, across all your devices. A beautifully designed dashboard that visualizes your cycle history, mood trends, and symptom patterns at a glance โ turning your data into a story you can understand. |
| Layer | Technology | Purpose |
|---|---|---|
| ๐ฑ Frontend | React Native + Expo | Cross-platform mobile application (iOS & Android) |
| โ๏ธ Backend | Flask (Python) | RESTful API server and business logic |
| ๐๏ธ Database | Firebase Firestore | Real-time NoSQL cloud database |
| ๐ Authentication | Firebase Authentication | Secure user identity management |
| ๐ค AI | Google Gemini API | Conversational AI health assistant & insights |
| ๐ Deployment | Render | Cloud backend hosting and deployment |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ฑ MOBILE APPLICATION (React Native + Expo) โ
โ iOS โ Android โ Cross-Platform โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS / REST API
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โ๏ธ FLASK API SERVER (Python) โ
โ Authentication โ Cycle Logic โ Insights โ
โ Deployed on Render โ
โ โ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ โ
โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ โ
โ ๐ฅ FIREBASE โ โ ๐ค GOOGLE GEMINI AI โ
โ Firestore DB โ โ Conversational AI โ
โ Authentication โ โ Wellness Insights โ
โ Cloud Storage โ โ Health Assistant โ
โ โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Data Flow:
User Action โ React Native App
โ Flask REST API (authentication + validation)
โ Firebase Firestore (data persistence)
โ Gemini AI (intelligent response generation)
โ Response back to App โ Beautiful UI
Aarini/
โ
โโโ ๐ฑ frontend/ # React Native + Expo Application
โ โโโ app/ # Main application screens
โ โ โโโ (auth)/ # Authentication screens
โ โ โ โโโ login.jsx
โ โ โ โโโ signup.jsx
โ โ โโโ (tabs)/ # Main tab navigation
โ โ โ โโโ dashboard.jsx # Health Dashboard
โ โ โ โโโ tracking.jsx # Period & Cycle Tracking
โ โ โ โโโ symptoms.jsx # Symptom Logging
โ โ โ โโโ mood.jsx # Mood Tracker
โ โ โ โโโ insights.jsx # Wellness Insights
โ โ โ โโโ chat.jsx # AI Health Assistant
โ โ โโโ _layout.jsx
โ โโโ components/ # Reusable UI components
โ โโโ constants/ # App-wide constants & theme
โ โโโ hooks/ # Custom React hooks
โ โโโ services/ # API & Firebase services
โ โโโ assets/ # Images, fonts, animations
โ โโโ app.json # Expo configuration
โ โโโ package.json
โ
โโโ โ๏ธ backend/ # Flask Python API Server
โ โโโ app.py # Main Flask application
โ โโโ routes/ # API route handlers
โ โ โโโ auth.py # Authentication routes
โ โ โโโ cycles.py # Cycle tracking routes
โ โ โโโ symptoms.py # Symptom logging routes
โ โ โโโ mood.py # Mood tracking routes
โ โ โโโ chat.py # AI chat routes
โ โ โโโ insights.py # Wellness insights routes
โ โโโ services/ # Business logic & integrations
โ โ โโโ firebase_service.py # Firebase Admin SDK
โ โ โโโ gemini_service.py # Gemini AI integration
โ โโโ models/ # Data models & schemas
โ โโโ utils/ # Helper utilities
โ โโโ requirements.txt # Python dependencies
โ โโโ .env.example # Environment variable template
โ
โโโ ๐ docs/ # Documentation
โ โโโ API.md # Full API documentation
โ โโโ ARCHITECTURE.md # System architecture details
โ โโโ SETUP.md # Detailed setup guide
โ
โโโ ๐ธ screenshots/ # App screenshots & demos
โ โโโ dashboard.png
โ โโโ tracking.png
โ โโโ chat.png
โ โโโ insights.png
โ
โโโ ๐ README.md # You are here โจ
โโโ โ๏ธ LICENSE # MIT License
โโโ ๐ค CONTRIBUTING.md # Contribution guidelines
Ensure you have the following installed:
- Node.js (v18 or higher)
- Python (v3.9 or higher)
- Expo CLI (
npm install -g expo-cli) - Git
- A Firebase project
- A Google Gemini API Key
git clone https://github.com/Him-an-shi/Aarini.git
cd Aarini# Navigate to the frontend directory
cd frontend
# Install dependencies
npm install
# Start the Expo development server
npx expo startScan the QR code with the Expo Go app on your phone, or press
ifor iOS simulator /afor Android emulator.
# Navigate to the backend directory
cd backend
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Copy environment variables template
cp .env.example .env
# โ Fill in your credentials in the .env file
# Run the Flask development server
flask runThe backend will start at http://localhost:5000
- Go to the Firebase Console and create a new project named Aarini
- Enable Firebase Authentication โ Email/Password provider
- Enable Cloud Firestore โ Start in production mode
- Navigate to Project Settings โ Service Accounts
- Click Generate new private key โ Download the JSON file
- Place the downloaded JSON file in your
backend/directory - Set the path in your
.envas shown in the Environment Variables section
Firestore Security Rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/{document=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}In frontend/services/api.js, update the base URL to point to your Flask backend:
// For local development
const BASE_URL = 'http://localhost:5000'
// For production (Render deployment)
const BASE_URL = 'https://your-app-name.onrender.com'Create a .env file inside the backend/ directory based on the .env.example template:
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# ๐ค Google Gemini AI
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GEMINI_API_KEY=your_gemini_api_key_here
# Example: AIzaSyD-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# ๐ฅ Firebase Configuration
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
FIREBASE_SERVICE_ACCOUNT_JSON=./firebase-service-account.json
# Example: ./aarini-firebase-adminsdk-xxxxx.json
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ๏ธ Flask Configuration
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
FLASK_ENV=development
# Options: development | production
FLASK_DEBUG=True
# Set to False in production
SECRET_KEY=your_super_secret_key_here
# Example: a3f9b2c1d8e7f6a5b4c3d2e1f0a9b8c7
โ ๏ธ IMPORTANT: Never commit your.envfile or Firebase service account JSON to version control. They are already listed in.gitignore.
Base URL: http://localhost:5000 (development) | https://your-app.onrender.com (production)
All protected endpoints require the header:
Authorization: Bearer <firebase_id_token>
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/signup |
Register a new user account | โ |
POST |
/login |
Authenticate user and get token | โ |
POST /signup
// Request Body
{
"email": "aarini@example.com",
"password": "securepassword123",
"name": "Priya Sharma"
}
// Response 201
{
"message": "Account created successfully",
"uid": "firebase_user_uid"
}POST /login
// Request Body
{
"email": "aarini@example.com",
"password": "securepassword123"
}
// Response 200
{
"token": "firebase_id_token",
"uid": "firebase_user_uid",
"name": "Priya Sharma"
}| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/add-cycle |
Log a new menstrual cycle | โ |
GET |
/cycles |
Retrieve full cycle history | โ |
POST /add-cycle
// Request Body
{
"start_date": "2025-06-01",
"end_date": "2025-06-06",
"flow_intensity": "moderate",
"notes": "Mild cramping on day 1-2"
}
// Response 201
{
"message": "Cycle logged successfully",
"cycle_id": "cycle_doc_id"
}GET /cycles
// Response 200
{
"cycles": [
{
"cycle_id": "doc_id",
"start_date": "2025-06-01",
"end_date": "2025-06-06",
"flow_intensity": "moderate",
"cycle_length": 5,
"notes": "Mild cramping on day 1-2"
}
],
"total": 1,
"average_cycle_length": 28
}| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/add-symptom |
Log a new symptom entry | โ |
GET |
/symptoms |
Retrieve symptom history | โ |
POST /add-symptom
// Request Body
{
"date": "2025-06-01",
"symptoms": ["cramps", "bloating", "fatigue"],
"severity": "moderate",
"notes": "Worst in the morning"
}
// Response 201
{
"message": "Symptoms logged successfully",
"symptom_id": "symptom_doc_id"
}GET /symptoms
// Response 200
{
"symptoms": [
{
"symptom_id": "doc_id",
"date": "2025-06-01",
"symptoms": ["cramps", "bloating", "fatigue"],
"severity": "moderate",
"notes": "Worst in the morning"
}
],
"total": 1
}| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/chat |
Send message to AI health assistant | โ |
POST /chat
// Request Body
{
"message": "Why do I feel so tired before my period?",
"context": {
"cycle_phase": "luteal",
"recent_symptoms": ["fatigue", "headache"]
}
}
// Response 200
{
"reply": "What you're experiencing is completely normal! During the luteal phase, progesterone levels rise significantly, which can cause fatigue...",
"suggestions": [
"Prioritize 8 hours of sleep",
"Increase iron-rich foods",
"Gentle movement like yoga"
]
}| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/insights |
Get personalized AI wellness insights | โ |
GET /insights
// Response 200
{
"insights": [
{
"category": "cycle_pattern",
"title": "Your Cycle is Becoming More Regular",
"description": "Based on your last 3 cycles, your average length is 28 days...",
"actionable_tip": "Continue tracking to refine your predictions",
"generated_at": "2025-06-10T17:29:00Z"
}
]
}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PHASE 1 โ
โ Foundation & Core Tracking โ
โ โ โ User Authentication (Firebase) โ
โ โ โ Period Cycle Tracking โ
โ โ โ Symptom Logging โ
โ โ โ Mood Tracking โ
โ โ โ Health Dashboard โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PHASE 2 ๐ โ Intelligence & Engagement โ
โ โ โ AI Health Assistant (Gemini) โ
โ โ โ Personalized Wellness Insights โ
โ โ โ Push Notifications & Reminders โ
โ โ โ Cycle Prediction Engine โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PHASE 3 ๐ โ Analytics & Personalization โ
โ โ โ Advanced Health Analytics โ
โ โ โ Pattern Recognition & Trends โ
โ โ โ Hormone Phase Education โ
โ โ โ Doctor Report Export (PDF) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PHASE 4 ๐ โ Expansion & Integration โ
โ โ โ Wearable Device Integration โ
โ โ โ PCOS Management Module โ
โ โ โ Fertility Tracking โ
โ โ โ Community & Support Groups โ
โ โ โ Telehealth Integration โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
We believe the best healthcare tools are built by diverse, passionate communities. Aarini welcomes contributors from all backgrounds โ whether you're a developer, designer, writer, or advocate for women's health.
# 1. Fork the repository
# Click the "Fork" button on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/Aarini.git
cd Aarini
# 3. Create a feature branch
git checkout -b feature/your-amazing-feature
# 4. Make your changes and commit
git add .
git commit -m "โจ feat: add your amazing feature"
# 5. Push to your fork
git push origin feature/your-amazing-feature
# 6. Open a Pull Request on GitHub ๐| Commit Type | Prefix | Example |
|---|---|---|
| New Feature | โจ feat: |
โจ feat: add ovulation prediction |
| Bug Fix | ๐ fix: |
๐ fix: cycle date validation |
| Documentation | ๐ docs: |
๐ docs: update API reference |
| Styling | ๐
style: |
๐
style: improve dashboard UI |
| Refactoring | โป๏ธ refactor: |
โป๏ธ refactor: optimize Firebase queries |
| Tests | โ
test: |
โ
test: add cycle tracking unit tests |
| Role | Contributions |
|---|---|
| ๐ฑ React Native Developers | UI components, new screens, animations, Expo features |
| ๐ Python Developers | Flask routes, AI integration, data processing |
| ๐ฅ Firebase Developers | Firestore rules, auth flows, cloud functions |
| ๐จ UI/UX Designers | Design systems, accessibility, user research |
| โ๏ธ Technical Writers | Documentation, tutorials, API guides |
| ๐ Women's Health Advocates | Feature ideas, user stories, real-world insights |
Aarini is proudly open source and committed to building a welcoming, inclusive community.
๐ข Beginner Friendly โ Look for issues labeled good first issue to make your first contribution with confidence.
๐ต Help Wanted โ Explore help wanted issues for impactful contributions.
๐ฃ Feature Requests โ Have an idea? Open a feature request โ we'd love to hear from you!
- ๐ค Inclusive โ Every voice matters. We welcome contributors of all experience levels.
- ๐ธ Empathetic โ We build with care for the women who will use this product.
- ๐ Privacy-First โ We handle health data with the highest standards of security and respect.
- ๐ Transparent โ All decisions, roadmaps, and discussions happen in the open.
- ๐ Students contributing to open-source programs (GSoC, GirlScript, Hacktoberfest, SSOC)
- ๐ผ Developers building their portfolio with meaningful, real-world projects
- ๐ Contributors passionate about femtech, health tech, and social impact
Aarini is more than a period tracker. It is the beginning of a comprehensive women's wellness ecosystem.
We envision Aarini growing into a platform where:
- ๐ค Women and healthcare providers communicate through shared, structured health histories
- ๐งฌ AI evolves from reactive responses to proactive, predictive hormonal health coaching
- โ Wearables contribute real-time biometric data for richer, more accurate insights
- ๐ Communities form around shared conditions โ PCOS, endometriosis, perimenopause โ with peer support and professional guidance
- ๐ฅ Telehealth bridges the gap between daily tracking and medical consultation, making women's healthcare accessible globally
- ๐ Multilingual support ensures Aarini reaches women regardless of geography or language
We believe that when women have access to accurate information, compassionate tools, and intelligent support, they make better health decisions โ for themselves and for their families.
Aarini is that tool. And we're just getting started.
MIT License
Copyright (c) 2025 Himanshi โ Aarini Project
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
See the full LICENSE file for details.
For every woman who was told her pain was "just cramps." For every woman who silently tracked her symptoms in a notes app, hoping someone would listen. For every woman who deserves a health companion as dedicated as she is.
Aarini was built for you.
Because understanding your body shouldn't require a medical degree. Because your hormonal health is valid, complex, and worthy of world-class technology. Because the future of women's wellness is intelligent, empathetic, and open.
Built with ๐ by Himanshi and the Aarini Community
"When women thrive, the world thrives."
โญ If Aarini resonates with you, please give it a star โ it means the world and helps more women discover it! โญ