Repository navigation
Add Documentation for proper understanding with all description. - #106
lakshay-porwal wants to merge 2 commits into
Conversation
WalkthroughThe README.md has been comprehensively restructured with emoji-prefixed headers, a reorganized table of contents, and expanded sections including Installation & Setup, Usage, Project Components, and Contributing guidelines. Technology stack descriptions and Architecture diagram components have been updated. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Areas to verify:
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
README.md (1)
1-2: Use a real heading (or blockquote) for the subtitle.
Line 2 is styled emphasis but reads like a section heading; markdownlint MD036 will keep flagging this.# 👶 BabyNest -*A Smart Pregnancy Companion for Expecting Parents* +## A Smart Pregnancy Companion for Expecting Parents
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-01T01:41:13.268Z
Learnt from: Vivekgupta008
Repo: AOSSIE-Org/BabyNest PR: 78
File: Backend/agent/cache.py:212-215
Timestamp: 2025-08-01T01:41:13.268Z
Learning: BabyNest is designed as a personal offline pregnancy tracking app for single users, not a multi-user system. Cache invalidation strategies should prioritize simplicity over granular per-user optimizations.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.18.1)
README.md
2-2: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
8-8: Link fragments should be valid
(MD051, link-fragments)
9-9: Link fragments should be valid
(MD051, link-fragments)
10-10: Link fragments should be valid
(MD051, link-fragments)
11-11: Link fragments should be valid
(MD051, link-fragments)
12-12: Link fragments should be valid
(MD051, link-fragments)
13-13: Link fragments should be valid
(MD051, link-fragments)
14-14: Link fragments should be valid
(MD051, link-fragments)
15-15: Link fragments should be valid
(MD051, link-fragments)
16-16: Link fragments should be valid
(MD051, link-fragments)
17-17: Link fragments should be valid
(MD051, link-fragments)
🔇 Additional comments (1)
README.md (1)
23-26: Align README with single-user/offline scope (avoid “Sign up” / multi-user implications unless truly supported).
Current wording suggests accounts and sync-first behavior; that conflicts with the project’s single-user offline design. Based on learnings, please adjust language (e.g., “set due date locally”) or explicitly document auth/sync as optional modules.Also applies to: 121-130
⛔ Skipped due to learnings
Learnt from: Vivekgupta008 Repo: AOSSIE-Org/BabyNest PR: 78 File: Backend/agent/cache.py:212-215 Timestamp: 2025-08-01T01:41:13.268Z Learning: BabyNest is designed as a personal offline pregnancy tracking app for single users, not a multi-user system. Cache invalidation strategies should prioritize simplicity over granular per-user optimizations.Learnt from: Vivekgupta008 Repo: AOSSIE-Org/BabyNest PR: 78 File: Backend/agent/context.py:4-34 Timestamp: 2025-08-01T01:57:09.988Z Learning: In BabyNest (offline mobile pregnancy tracking app), the developer prefers tuple indexing over sqlite3.Row for database queries to maintain simplicity, avoid global connection modifications, ensure predictable behavior across mobile platforms, and keep the codebase lightweight for handling sensitive pregnancy data.
| ## 📌 Table of Contents | ||
|
|
||
| 1. [Overview](#overview) | ||
| 2. [Features](#features) | ||
| 2. [Key Features](#key-features) | ||
| 3. [Tech Stack](#tech-stack) | ||
| 5. [Usage](#usage) | ||
| 6. [Components](#components) | ||
| 4. [Architecture](#architecture) | ||
| 7. [Contact](#contact) | ||
| 5. [Installation & Setup](#installation--setup) | ||
| 6. [Usage](#usage) | ||
| 7. [Project Components](#project-components) | ||
| 8. [Contributing](#contributing) | ||
| 9. [License](#license) | ||
| 10. [Contact](#contact) |
There was a problem hiding this comment.
Fix TOC link targets (anchors don’t match rendered headings) and add/remove “Contact”.
Right now the fragments likely won’t resolve (MD051), and “Contact” (Line 17) has no section below.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
8-8: Link fragments should be valid
(MD051, link-fragments)
9-9: Link fragments should be valid
(MD051, link-fragments)
10-10: Link fragments should be valid
(MD051, link-fragments)
11-11: Link fragments should be valid
(MD051, link-fragments)
12-12: Link fragments should be valid
(MD051, link-fragments)
13-13: Link fragments should be valid
(MD051, link-fragments)
14-14: Link fragments should be valid
(MD051, link-fragments)
15-15: Link fragments should be valid
(MD051, link-fragments)
16-16: Link fragments should be valid
(MD051, link-fragments)
17-17: Link fragments should be valid
(MD051, link-fragments)
🤖 Prompt for AI Agents
In README.md around lines 6 to 17, the table of contents entries don’t match the
rendered heading anchors (causing MD051) and the "Contact" entry has no
corresponding section; update the TOC so each link exactly matches the
GitHub/Markdown-generated slug of its heading (lowercase, spaces → hyphens,
remove/normalize punctuation like "&"), or alternatively rename headings to
match the current TOC; also either add a "Contact" heading and content below or
remove that TOC item so every link resolves.
| 8. [Contributing](#contributing) | ||
| 9. [License](#license) | ||
| 10. [Contact](#contact) |
There was a problem hiding this comment.
Add “Contact” section or drop it from the TOC.
Right now it’s a dead entry.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
15-15: Link fragments should be valid
(MD051, link-fragments)
16-16: Link fragments should be valid
(MD051, link-fragments)
17-17: Link fragments should be valid
(MD051, link-fragments)
🤖 Prompt for AI Agents
In README.md around lines 15 to 17, the table of contents contains a "Contact"
entry that points to a non-existent section; either add a "Contact" section with
appropriate contact details and an anchor matching the TOC link, or remove the
"Contact" line from the TOC so it no longer points to a dead entry — implement
whichever is appropriate for the repo (add a new "Contact" header near the end
with contact info and optional email/links, or delete the TOC line).
| ## 🏗 Architecture | ||
|
|
||
| ```mermaid | ||
| graph TD; | ||
| %% Frontend in React Native | ||
| subgraph Frontend["Frontend (React Native)"] | ||
| D[BabyNest App] -->|Uses| E[react-native-sqlite-storage] | ||
| D -->|Interacts with| F[Chatbot] | ||
| D[BabyNest App] -->|Uses| E[SQLite Storage] | ||
| D -->|Interacts with| F[AI Chatbot UI] | ||
| end | ||
|
|
||
| %% Local Storage (SQLite) | ||
| subgraph Database["Local Database (SQLite)"] | ||
| B[SQLite] -->|Stores & Retrieves| C[Appointments, Tasks, Due Date, Location] | ||
| B[SQLite] -->|Stores| C[Appointments, Tasks, Due Date, Location] | ||
| end | ||
|
|
||
| %% Backend in Flask | ||
| subgraph Backend["Main Backend (Flask)"] | ||
| subgraph Backend["Backend (Flask API)"] | ||
| A[API Routes] -->|Syncs Data| B | ||
| A -->|Provides Data to| D | ||
| A -->|Serves Data| D | ||
| end | ||
| %% LLM Agents & AI Processing | ||
| subgraph AI["LLM Agents & AI Processing"] | ||
| G[Local llm give response] -->|Indexes Data| H[ChromaDB] | ||
|
|
||
| subgraph AI["AI & LLM Processing"] | ||
| G[Local LLM Engine] -->|Indexes Data| H[ChromaDB] | ||
| H -->|Optimized Queries| F | ||
| end | ||
|
|
||
| %% Connections Between Components | ||
| D -->|Reads & Writes Data| B | ||
| A -->|Can Query AI Offline| G | ||
| H -->|Provides Faster Query Results| F | ||
| ``` | ||
| D -->|Read/Write| B | ||
| A -->|AI Requests| G |
There was a problem hiding this comment.
Clarify architecture: backend “syncing to SQLite” + duplicate SQLite nodes is confusing/misleading.
If SQLite is on-device, the Flask API typically won’t “sync data” into it; if there’s also a server DB, model it explicitly and name nodes accordingly.
🤖 Prompt for AI Agents
In README.md around lines 63 to 87, the architecture diagram is confusing
because it shows the Flask backend "syncing" to an on-device SQLite and
duplicates the SQLite node; update the diagram to explicitly distinguish the
on-device SQLite (local DB) from any server-side database (e.g., "Server DB" or
"Postgres"), remove the duplicate SQLite node, and rename nodes so the Backend
connects to the Server DB while the Frontend connects to the Local SQLite; also
adjust arrows/labels to show that the backend exposes API routes that the client
uses to sync data to the server (or to pull/push via API), and if local
indexing/storage like ChromaDB is on-device, place it under the Frontend/AI
group with clear labels indicating local vs server components.
| ```mermaid | ||
| graph TD; | ||
| %% Frontend in React Native | ||
| subgraph Frontend["Frontend (React Native)"] | ||
| D[BabyNest App] -->|Uses| E[react-native-sqlite-storage] | ||
| D -->|Interacts with| F[Chatbot] | ||
| D[BabyNest App] -->|Uses| E[SQLite Storage] | ||
| D -->|Interacts with| F[AI Chatbot UI] | ||
| end | ||
|
|
||
| %% Local Storage (SQLite) | ||
| subgraph Database["Local Database (SQLite)"] | ||
| B[SQLite] -->|Stores & Retrieves| C[Appointments, Tasks, Due Date, Location] | ||
| B[SQLite] -->|Stores| C[Appointments, Tasks, Due Date, Location] | ||
| end | ||
|
|
||
| %% Backend in Flask | ||
| subgraph Backend["Main Backend (Flask)"] | ||
| subgraph Backend["Backend (Flask API)"] | ||
| A[API Routes] -->|Syncs Data| B | ||
| A -->|Provides Data to| D | ||
| A -->|Serves Data| D | ||
| end | ||
| %% LLM Agents & AI Processing | ||
| subgraph AI["LLM Agents & AI Processing"] | ||
| G[Local llm give response] -->|Indexes Data| H[ChromaDB] | ||
|
|
||
| subgraph AI["AI & LLM Processing"] | ||
| G[Local LLM Engine] -->|Indexes Data| H[ChromaDB] | ||
| H -->|Optimized Queries| F | ||
| end | ||
|
|
||
| %% Connections Between Components | ||
| D -->|Reads & Writes Data| B | ||
| A -->|Can Query AI Offline| G | ||
| H -->|Provides Faster Query Results| F | ||
| ``` | ||
| D -->|Read/Write| B | ||
| A -->|AI Requests| G | ||
| ⚙ Installation & Setup | ||
| Prerequisites | ||
| Node.js (v16+) | ||
|
|
||
| npm or yarn | ||
|
|
||
| Python 3.9+ | ||
|
|
||
| Android Studio / Xcode (for emulator) | ||
|
|
||
| Clone the Repository | ||
| bash | ||
| Copy code | ||
| git clone https://github.com/AOSSIE-Org/BabyNest.git | ||
| cd BabyNest | ||
| Frontend Setup | ||
| bash | ||
| Copy code | ||
| npm install | ||
| npm start | ||
| Run on emulator or connected device: | ||
|
|
||
| bash | ||
| Copy code | ||
| npx react-native run-android | ||
| # or | ||
| npx react-native run-ios | ||
| Backend Setup | ||
| bash | ||
| Copy code | ||
| cd backend | ||
| pip install -r requirements.txt | ||
| python app.py | ||
| 🚀 Usage | ||
| Launch the application on a physical device or emulator. | ||
|
|
||
| Sign up and enter the estimated due date. | ||
|
|
||
| Receive reminders for medical appointments and healthcare tasks. | ||
|
|
||
| Access pregnancy care guidelines offline. | ||
|
|
||
| Interact with the AI assistant for advice and recommendations. | ||
|
|
||
| 🧩 Project Components | ||
| 📱 Frontend | ||
| Built using React Native | ||
|
|
||
| Clean and intuitive user interface | ||
|
|
||
| Offline support via SQLite | ||
|
|
||
| 🔙 Backend | ||
| Flask-based REST APIs | ||
|
|
||
| Manages scheduling, reminders, and synchronization | ||
|
|
||
| 🤖 AI & NLP | ||
| AI assistant powered using LangChain | ||
|
|
||
| Supports natural language queries for pregnancy-related guidance | ||
|
|
||
| 🗄 Database | ||
| SQLite for local data persistence | ||
|
|
||
| Stores appointments, tasks, and user preferences | ||
|
|
||
| 🤝 Contributing | ||
| We welcome contributions from the community 🎉 | ||
|
|
||
| 🔁 Fork & Pull Request Workflow | ||
| Fork this repository | ||
|
|
||
| Clone your fork: | ||
|
|
||
| bash | ||
| Copy code | ||
| git clone https://github.com/YOUR_USERNAME/BabyNest.git | ||
| Create a new branch: | ||
|
|
||
| bash | ||
| Copy code | ||
| git checkout -b feature/your-feature-name | ||
| Make your changes and commit: | ||
|
|
||
| bash | ||
| Copy code | ||
| git add . | ||
| git commit -m "Describe your changes clearly" | ||
| Push to your fork: | ||
|
|
||
| ## Contact | ||
| bash | ||
| Copy code | ||
| git push origin feature/your-feature-name | ||
| Open a Pull Request from your fork to the main repository | ||
|
|
||
| For any inquiries or support, please reach out to us on [Discord](#). | ||
| Maintainers will review and merge if approved ✅ | ||
|
|
||
| 📜 License | ||
| This project is licensed under the MIT License. | ||
| You are free to use, modify, and distribute this project with proper attribution. No newline at end of file |
There was a problem hiding this comment.
Blocker: close the Mermaid fence and fix section/code-block formatting (README will render broken).
Everything after Line 65 is currently inside the Mermaid diagram due to the missing closing fence, and the setup commands are not valid markdown blocks.
```mermaid
graph TD;
@@
D -->|Read/Write| B
A -->|AI Requests| G
+```
+
+## ⚙ Installation & Setup
+
+### Prerequisites
+- Node.js (v16+)
+- npm or yarn
+- Python 3.9+
+- Android Studio / Xcode (for emulator)
+
+### Clone the Repository
+```bash
+git clone https://github.com/AOSSIE-Org/BabyNest.git
+cd BabyNest
+```
+
+### Frontend Setup
+```bash
+npm install
+npm start
+```
+
+Run on emulator or connected device:
+```bash
+npx react-native run-android
+# or
+npx react-native run-ios
+```
+
+### Backend Setup
+```bash
+cd backend
+pip install -r requirements.txt
+python app.py
+```
+
+## 🚀 Usage
+- Launch the application on a physical device or emulator.
+- Enter the estimated due date.
+- Receive reminders for medical appointments and healthcare tasks.
+- Access pregnancy care guidelines offline.
+- Interact with the AI assistant for advice and recommendations.
+
+## 🧩 Project Components
+
+### 📱 Frontend
+- Built using React Native
+- Clean and intuitive user interface
+- Offline support via SQLite
+
+### 🔙 Backend
+- Flask-based REST APIs
+- Manages scheduling, reminders, and synchronization
+
+### 🤖 AI & NLP
+- AI assistant powered using LangChain
+- Supports natural language queries for pregnancy-related guidance
+
+### 🗄 Database
+- SQLite for local data persistence
+- Stores appointments, tasks, and user preferences
+
+## 🤝 Contributing
+We welcome contributions from the community.
+
+## 📜 License
+This project is licensed under the MIT License.🤖 Prompt for AI Agents
In README.md around lines 65 to 188 the Mermaid diagram fence is never closed,
which causes all following content to be rendered inside the diagram and breaks
Markdown formatting; close the mermaid code fence after the diagram (add ``` on
its own line), then convert the following installation/setup and command
snippets into proper Markdown sections and fenced code blocks (use ```bash for
shell commands and plain lists or headings for prose) so the README renders
correctly.
|
@lakshay-porwal please try to find some issue , fix it and then make meaningful pr. if you need any help , you can contact me in discord server |
|
please close this pr from your side . |
Closes #
📝 Description
🔧 Changes Made
📷 Screenshots or Visual Changes (if applicable)
🤝 Collaboration
Collaborated with:
@username(optional)✅ Checklist
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.