Your personal health platform
Understand health topics, explore medicines, find nearby care, and track your health.
Website Β· Try Elix Β· API Docs
- π Vision
- β¨ Features
- π₯οΈ Live Demo
- π Repository Activity
- ποΈ System Architecture
- π§ AI Model
- πΎ Memory Architecture
- πΊοΈ Roadmap
- π Project Structure
- π Quick Start
- π Usage Guide
- π§ Development
- β FAQ
- π€ Contributing
- π License
"Bridging the gap between health information and understanding β through conversation, memory, and care."
Most health apps either dump raw data on you or lock you into a single feature. Mendly bridges the gap β combining AI conversation, drug databases, location-based care discovery, and personalized health tracking into one seamless experience.
| The Problem | How Mendly Solves It |
|---|---|
| β Hard to find reliable health info fast | π€ AI chatbot answers instantly |
| π No easy way to check drug interactions | β‘ Interaction checker with FDA data |
| π₯ Can't find nearby care in emergencies | π Location-based hospital & pharmacy finder |
| π Scattered health bookmarks | π Save & organize medicines + conditions |
| π Different emergency numbers per country | π Country-wise contacts with tap-to-call |
| Feature | Description |
|---|---|
| π€ Elix AI Chatbot | Conversational AI that answers questions about diseases, symptoms, medicines & interactions |
| π Medicine Search | Browse FDA-approved drugs β uses, dosage, side effects & precautions |
| π©Ί Medical Conditions | Disease profiles with symptoms, causes, treatment & prevention |
| β‘ Drug Interaction Checker | Check two medicines for conflicts & adverse reactions |
| π₯ Nearby Hospitals | Find healthcare facilities by search or geolocation |
| π Nearby Pharmacies | Locate pharmacies & medical stores near you |
| π Emergency Contacts | Country-wise emergency numbers with tap-to-call |
| π Saved Items | Bookmark medicines & conditions for quick reference |
| π Auth System | Secure signup / login with JWT |
| π± Works Everywhere | Responsive design that works on desktop, tablet, and mobile |
| Service | URL |
|---|---|
| π Frontend | mendlyapp.web.app |
| βοΈ Backend API | mendly-backend-0vyg.onrender.com |
| π API Docs | mendly-backend-0vyg.onrender.com/docs |
graph TB
subgraph Client["π± Client Layer"]
User([π€ User])
FE["Vanilla JS SPA<br/>(Firebase Hosting)"]
end
subgraph API["βοΈ API Layer"]
BE["FastAPI Backend<br/>(Render)"]
Auth[π JWT Auth]
Chat[π€ AI Chatbot Engine]
end
subgraph Services["π§© Service Layer"]
FDA[π‘ openFDA Client]
KB[π Knowledge Base]
NIM[π§ NVIDIA NIM API]
Mem[πΎ Memory Manager]
end
subgraph Data["ποΈ Data Layer"]
DB[(MongoDB Atlas)]
end
User -->|API Calls| FE
FE --> BE
BE --> Auth
BE --> Chat
BE --> FDA
BE --> KB
Auth --> DB
Chat --> Mem
Mem --> NIM
Mem --> DB
KB --> DB
FDA -->|REST| OpenFDA[ποΈ openFDA]
style FE fill:#0d2137,color:#fff
style BE fill:#0d2137,color:#fff
style Mem fill:#00bcd4,color:#fff
style DB fill:#0d2137,color:#fff
style NIM fill:#0d2137,color:#fff
| Attribute | Detail |
|---|---|
| Provider | NVIDIA NIM |
| Models | Llama 3.3 Nemotron, DeepSeek variants |
| Role | Health Q&A, symptom guidance, medicine info, emotional support |
| Prompt Strategy | System-prompted with medical disclaimer, context-aware memory injection |
| Fallback | Local knowledge base for offline / common queries |
| Temperature | 0.3 (factual) β 0.7 (conversational) |
sequenceDiagram
actor U as User
participant FE as Frontend
participant BE as Backend
participant MEM as Memory
participant NIM as NVIDIA NIM
participant DB as MongoDB
U->>FE: Types a message
FE->>BE: POST /chat
BE->>MEM: Fetch conversation history
MEM->>DB: Retrieve past sessions
DB-->>MEM: Session summaries + context
MEM-->>BE: Assembled memory context
BE->>BE: Construct system prompt
BE->>NIM: API call with context
NIM-->>BE: Streamed response
BE->>MEM: Save response to history
BE-->>FE: Stream tokens
FE-->>U: Display response
Mendly uses a hybrid memory system that balances conversation continuity with token efficiency.
| Layer | Scope | Storage | Retention |
|---|---|---|---|
| π’ Working Memory | Current session messages | In-memory (Python dict) | Session lifetime |
| π΅ Episodic Memory | Recent conversations | MongoDB β sessions collection |
30 days |
| π‘ Summarized Memory | Compressed long-term history | MongoDB β memory_summaries collection |
Indefinite |
| π΄ Profile Memory | User preferences + saved items | MongoDB β users collection |
Until changed |
graph LR
subgraph Online["π’ Working (In-Memory)"]
WM[Session Messages]
end
subgraph Recent["π΅ Episodic (MongoDB)"]
EM[Recent Sessions<br/>24h window]
end
subgraph Long["π‘ Summarized (MongoDB)"]
SM[Compressed Summaries<br/>Key topics + mood]
end
subgraph Profile["π΄ Profile (MongoDB)"]
PM[User Profile<br/>Saved Items + Prefs]
end
WM -->|Flush on session end| EM
EM -->|Summarize every N sessions| SM
PM -->|Inject on login| WM
style WM fill:#00bcd4,color:#fff
style EM fill:#0d2137,color:#fff
style SM fill:#0d2137,color:#fff
style PM fill:#0d2137,color:#fff
When a user sends a message, the backend assembles context in this priority:
- System prompt β Role, boundaries, medical disclaimer
- User profile β Name, saved items, preferences
- Recent memory β Last 10-20 messages from current session
- Summarized history β Compressed key topics from past sessions
- Knowledge base β Relevant disease/drug info if detected
- Current message β The user's latest input
This keeps responses context-aware without exceeding the model's token window.
gantt
title Mendly Development Roadmap
dateFormat YYYY-MM-DD
section Core
AI Chatbot v1 :done, 2025-01-01, 2025-03-01
Medicine Search :done, 2025-02-01, 2025-04-01
Drug Interaction Checker:done, 2025-03-01, 2025-05-01
Nearby Hospitals :done, 2025-04-01, 2025-06-01
section Current
Firebase Hosting :active, 2025-06-01, 2025-08-01
Memory System v2 :active, 2025-07-01, 2025-09-01
section Upcoming
Long-term Summaries :2025-08-01, 2025-10-01
Habit & Mood Tracking :2025-09-01, 2025-11-01
Community Discussions :2025-11-01, 2026-01-01
Crisis Detection :2025-12-01, 2026-02-01
- AI chatbot with NVIDIA NIM integration
- Medicine search via openFDA API
- Drug interaction checker
- Nearby hospitals & pharmacies (geolocation)
- Emergency contacts database
- Saved items / bookmarks
- JWT authentication
- Firebase Hosting migration
- Responsive SPA (desktop + mobile)
- Memory system v2 (long-term summarization)
- UI / UX polish
- Habit & mood correlation detection
- Anonymous community discussions
- Crisis detection & escalation
- Offline mode (PWA)
- Multi-language support
mediguide/
βββ frontend/ # Vanilla HTML/CSS/JS SPA
β βββ index.html # Single HTML entry point
β βββ js/
β β βββ app.js # SPA router, all views, features
β βββ css/
β β βββ style.css # Full design system, responsive
β βββ assets/
β β βββ icon/ # Logo variants (SVG)
β βββ manifest.json # PWA manifest
β βββ sw.js # Service worker
β
βββ backend/ # FastAPI backend
β βββ app/
β β βββ main.py # Routes, CORS, security headers
β β βββ auth.py # JWT, bcrypt, user dependencies
β β βββ chatbot.py # AI chat engine
β β βββ knowledge_base.py # Disease/medicine data
β β βββ openfda_client.py # FDA API client
β βββ requirements.txt
β βββ .env
β
βββ README.md
| Requirement | Version | Link |
|---|---|---|
| Node.js | 18+ | nodejs.org |
| Python | 3.12+ | python.org |
| MongoDB | Atlas (free tier) | mongodb.com/atlas |
| NVIDIA API Key | β | build.nvidia.com |
# 1. Clone
git clone https://github.com/Satendra90390/Mendly.git
cd Mendly
# 2. Backend
cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # add your keys
uvicorn app.main:app --reload --port 8002
# 3. Frontend (new terminal)
cd frontend
npx serve . -p 3000π API docs at
http://localhost:8002/docsπ Openhttp://localhost:3000in your browser
flowchart LR
A[π Create Account] --> B[π Dashboard]
B --> C[π¬ Chat with Elix AI]
B --> D[π Search Medicines]
B --> E[π Find Nearby Care]
C --> F["Ask health<br/>questions"]
D --> G[β‘ Check Interactions]
E --> H[π₯ Hospitals / π Pharmacies]
| Feature | Location | How To Use |
|---|---|---|
| π¬ AI Chat | Sidebar β Chat | Type your health question |
| π Medicines | Sidebar β Medicines | Search by name or condition |
| β‘ Interactions | Medicines β Checker tab | Select two drugs to compare |
| π₯ Hospitals | Sidebar β Hospitals | Allow location or search city |
| π Emergency | Sidebar β Emergency | Pick country β tap to call |
| π Saved | Sidebar β Saved | Bookmark from any medicine page |
| Command | What It Does |
|---|---|
npx serve . -p 3000 |
Start local dev server |
uvicorn app.main:app --reload --port 8002 |
Start backend with hot reload |
| Area | Convention |
|---|---|
| Frontend | Vanilla HTML, CSS, JavaScript β single-file SPA |
| Backend | Python FastAPI, async/await, Pydantic validation |
| HTTP | Native fetch() β no Axios |
| Auth | JWT in Authorization: Bearer <token> header |
| API | JSON, RESTful routes |
| Styling | CSS custom properties, mobile-first, design tokens |
| Question | Answer |
|---|---|
| Is Mendly a real medical service? | No. Mendly is an experimental software project for informational purposes. It does not provide diagnosis, treatment, or professional medical advice. |
| Can I use Mendly in an emergency? | No. If you are experiencing a medical emergency, call your local emergency services immediately. Mendly's emergency section provides contact numbers only. |
| Is my data private? | Conversation data is stored in MongoDB Atlas. We do not share or sell your data. |
| Do I need an API key? | To run the backend locally, yes β you need an NVIDIA NIM API key (free tier available). The live demo is pre-configured. |
| What AI model powers the chatbot? | Mendly uses NVIDIA NIM with Llama 3.3 Nemotron / DeepSeek models, fine-tuned via system prompts for health information. |
| Why the name "Mendly"? | Mend (to heal/fix) + -ly (friendly/serene) β a friendly companion for your health journey. |
flowchart LR
A[Fork] --> B[Branch]
B --> C[Code]
C --> D[Commit]
D --> E[Push]
E --> F[Open PR]
F --> G[Review]
G --> H[Merge π]
| Principle | Guideline |
|---|---|
| π Security | Never commit secrets or API keys |
| π§ͺ Testing | Verify changes locally before PR |
| π Docs | Update README for new features |
| π¨ UI/UX | Follow existing component patterns |
MIT License β Free to use, modify, and distribute.
Copyright Β© 2026 Mendly
Built with care using vanilla JS, FastAPI, and MongoDB