Skip to content

Conversation

@SunilBaghel002
Copy link

@SunilBaghel002 SunilBaghel002 commented Nov 17, 2025

Closes #<178>

This PR completely overhauls the Getting Started section to make the project truly beginner-friendly by adding:

  • Step-by-step virtual environment setup
  • Clear .env examples for both frontend and backend
  • Direct links + exact instructions to get every required API key (Supabase, Groq, Gemini, YouTube)
  • Beautiful table for API credentials
  • Zero ambiguity for new contributors

Tested and working on Windows 11 + WSL (Ubuntu).
First-time contributor from India — thank you for the opportunity!

✅ Checklist

  • I have read the contributing guidelines.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if applicable).
  • Any dependent changes have been merged and published in downstream modules.

Summary by CodeRabbit

  • Documentation
    • Reworked Local Development Setup into a clear step-by-step workflow for frontend and backend.
    • Consolidated environment configuration with a "Where to get each key" table for required API keys.
    • Added explicit instructions for creating env files and obtaining Supabase, YouTube, GROQ, and Gemini keys.
    • Added "Start the Servers" guidance with terminal commands and URLs.
    • Updated data population guidance to use Supabase SQL editor and improved overall formatting.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 17, 2025

Walkthrough

This PR rewrites and expands README.md installation and local development instructions, adding step-by-step frontend/backend setup, consolidated environment/key configuration, Python venv guidance, and explicit server start and data population steps.

Changes

Cohort / File(s) Summary
Documentation — README
README.md
Reworked prerequisites and Getting Started into a stepwise local development workflow; added explicit frontend and backend .env creation and directory references; added Python virtualenv backend setup; consolidated environment variables into a single "Where to get each key" table (SUPABASE, GROQ, GEMINI, YOUTUBE); added distinct "Start the Servers" commands and URLs; updated Data Population instructions to use Supabase SQL editor; overall formatting and heading cleanup.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

  • Doc-only change; review focus: accuracy of commands, env variable names, and copy-edits.

Possibly related issues

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • ishaanxgupta
  • Saahi30

Poem

🐰 In a burrow of docs I hop and write,
Steps lined up tidy, morning to night,
Keys in a row, servers set to start,
A rabbit's small guide to do its part,
Hoppy setup—let the project take flight! 🚀

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: documentation improvements for beginner-friendly local setup with API keys and Python virtual environment setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

192-208: Clarify the path to sql.txt in the README instructions. The file exists at Backend/sql.txt, but line 204 instructs developers to "Open the sql.txt file in your project" without specifying the directory. Update the reference to indicate the correct location, e.g., "Open the Backend/sql.txt file" or "the sql.txt file in the Backend folder."

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a3be437 and 4051118.

📒 Files selected for processing (1)
  • README.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
README.md

110-110: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🔇 Additional comments (3)
README.md (3)

76-88: Solid prerequisite and clone setup. Prerequisites are clearly stated with version requirements, and the clone instructions are straightforward. The mention of Supabase free tier being sufficient is helpful for beginners.


118-169: Excellent backend setup instructions with venv and comprehensive .env guidance. The OS-specific venv activation commands (Windows vs macOS/Linux) are clearly separated, and the .env template is well-documented with inline comments. The "Where to get each key" table (lines 160–166) is particularly helpful—direct links to Groq, Gemini, and YouTube API consoles will save beginners significant time. Database connection details are also clearly explained.


170-186: Well-structured server startup instructions. The clear separation of Terminal 1 and Terminal 2 with labeled commands and expected URLs makes it straightforward for beginners to start both services. The note about venv activation for the backend is helpful.

Comment on lines 104 to 116
**How to get Supabase frontend keys:**
1. Go to [https://app.supabase.com](https://app.supabase.com)
2. Open your project → **Settings****API**
3. Copy **Project URL**`VITE_SUPABASE_URL`
4. Copy **anon public** key → `VITE_SUPABASE_ANON_KEY`

**How to Youtube API Key**
1. Log in to the [https://console.cloud.google.com/](https://console.cloud.google.com/)
2. Create a new project or select an existing one from the project drop-down menu.
3. In the Cloud Console, search for "YouTube Data API" in the search bar and select "YouTube Data API v3" from the results.
4. Click the "Enable" button to enable the API for your project.
5. Navigate to the "Credentials" tab in the left-hand menu.
6. Click "Create Credentials" and then select "API key" from the dropdown menu and now use that api key.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix markdown linting violation and formatting inconsistency at line 110.

Line 110 triggers a markdown linting issue (MD036) by using emphasis instead of a heading. Additionally, the text has grammatical issues and inconsistent capitalization. The Supabase section (lines 104–109) uses a numbered list format, but the YouTube section should use a heading for consistency.

Apply this diff to fix the linting violation and formatting:

-**How to Youtube API Key**
+### How to Get YouTube API Key
+

Then adjust the remaining steps (lines 111–116) to align with the Supabase section's structure.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**How to get Supabase frontend keys:**
1. Go to [https://app.supabase.com](https://app.supabase.com)
2. Open your project → **Settings****API**
3. Copy **Project URL**`VITE_SUPABASE_URL`
4. Copy **anon public** key → `VITE_SUPABASE_ANON_KEY`
**How to Youtube API Key**
1. Log in to the [https://console.cloud.google.com/](https://console.cloud.google.com/)
2. Create a new project or select an existing one from the project drop-down menu.
3. In the Cloud Console, search for "YouTube Data API" in the search bar and select "YouTube Data API v3" from the results.
4. Click the "Enable" button to enable the API for your project.
5. Navigate to the "Credentials" tab in the left-hand menu.
6. Click "Create Credentials" and then select "API key" from the dropdown menu and now use that api key.
**How to get Supabase frontend keys:**
1. Go to [https://app.supabase.com](https://app.supabase.com)
2. Open your project → **Settings****API**
3. Copy **Project URL**`VITE_SUPABASE_URL`
4. Copy **anon public** key → `VITE_SUPABASE_ANON_KEY`
### How to Get YouTube API Key
1. Log in to the [https://console.cloud.google.com/](https://console.cloud.google.com/)
2. Create a new project or select an existing one from the project drop-down menu.
3. In the Cloud Console, search for "YouTube Data API" in the search bar and select "YouTube Data API v3" from the results.
4. Click the "Enable" button to enable the API for your project.
5. Navigate to the "Credentials" tab in the left-hand menu.
6. Click "Create Credentials" and then select "API key" from the dropdown menu and now use that api key.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

110-110: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🤖 Prompt for AI Agents
README.md around lines 104 to 116: the YouTube API section uses emphasis instead
of a heading and has inconsistent capitalization and grammar compared to the
Supabase section; replace the emphasis line with a proper heading (e.g., "How to
get YouTube API key"), fix grammar/capitalization (consistent title
case/lowercase as used for Supabase), and convert the following lines into a
numbered list that mirrors the Supabase steps (clear actionable steps: sign into
Google Cloud Console, create/select project, enable YouTube Data API v3, go to
Credentials, create an API key) so the format and style match the Supabase
section.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
README.md (1)

104-117: Address unresolved markdown linting violation and reduce redundant YouTube API instructions.

Line 110 still triggers the MD036 linting violation flagged in the past review: emphasis (**...**) is used instead of a proper heading. Additionally, the text has grammatical issues ("Youtube" should be "YouTube", and the phrasing should be "How to get YouTube API Key").

Furthermore, YouTube API setup instructions now appear in two places with different levels of detail: the older section (lines 110–116) provides six detailed steps, while the new API table (line 166) provides only three concise steps. This creates redundancy and potential confusion.

Recommendation: Convert line 110 to a proper heading (### How to get YouTube API Key), or remove lines 110–116 entirely since the comprehensive table at line 158–166 now consolidates all API key instructions.

Apply this diff to fix the linting violation and grammar:

-**How to Youtube API Key**
+### How to get YouTube API Key
+
 1. Log in to the [https://console.cloud.google.com/](https://console.cloud.google.com/)

Alternatively, remove lines 110–116 entirely to avoid redundancy, since the table provides centralized API key sourcing.

🧹 Nitpick comments (1)
README.md (1)

158-168: Consider markdown formatting in the API credentials table.

Line 166 uses HTML line breaks (<br>) within the markdown table cell for YouTube API instructions. While functional, markdown renders this inconsistently across platforms. Consider using a bullet-point list or consolidating the instructions more concisely.

Note: If you remove the redundant YouTube section (lines 110–116), ensure the table has sufficient detail for users following along.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4051118 and df4d5be.

📒 Files selected for processing (1)
  • README.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
README.md

110-110: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🔇 Additional comments (3)
README.md (3)

170-186: Server startup instructions are clear and beginner-friendly.

The explicit commands for both frontend and backend servers, along with the expected URLs (lines 177, 184), will help new contributors verify that everything is running correctly. The note on line 179 reminding users to keep the venv active is especially helpful.

One minor suggestion: consider adding a troubleshooting note if port 5173 or 8000 are already in use (e.g., how to specify an alternative port with --port flag for npm and --port for uvicorn).


76-88: Prerequisites and initial clone setup are clear.

The prerequisites (lines 76–80) are well-organized and specify minimum versions. The clone and navigation instructions (lines 84–88) are straightforward.

Minor note: Line 87 uses InPact (capital P), which matches the repository name—verify this is the exact repository URL to avoid user confusion.


90-103: Frontend setup and environment variable structure are well-documented.

The npm install and .env file example (lines 90–103) are beginner-friendly. The variable names (VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY, VITE_YOUTUBE_API_KEY) follow expected Vite conventions.

Suggestion: Consider adding a note that if npm install fails, users should ensure Node.js v18+ is installed (as stated in prerequisites but worth repeating contextually).

Comment on lines +118 to +156
#### 3. Backend Setup (with Python Virtual Environment – Highly Recommended)

4. Get your Supabase credentials:
- Go to [Supabase](https://supabase.com/)
- Log in and create a new project (or use existing)
- Go to Project Settings -> API
- Copy the "Project URL" and paste it as VITE_SUPABASE_URL
- Copy the "anon public" key and paste it as VITE_SUPABASE_ANON_KEY
```bash
cd ../backend

#### 3. Backend Setup
# Create a virtual environment (isolates dependencies)
python -m venv venv

1. Navigate to the backend directory:
```sh
cd ../backend
```
# Activate it
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate

2. Install dependencies:
```sh
# Install backend dependencies
pip install -r requirements.txt
```


3. Navigate to the app directory:
```sh
cd app
```

4. Create a `.env` file using `.env-example` as a reference.

5. Obtain Supabase credentials:

- Go to [Supabase](https://supabase.com/)
- Log in and create a new project
- Click on the project and remember the project password
- Go to the **Connect** section at the top
- Select **SQLAlchemy** and copy the connection string:
#### 4. Create Backend `.env` File

```sh
user=postgres
password=[YOUR-PASSWORD]
host=db.wveftanaurduixkyijhf.supabase.co
port=5432
dbname=postgres
```
Create `.env` in `backend/app/` and fill all values:

--OR--
```env
# Supabase Database Connection
user=postgres
password=YOUR_DB_PASSWORD
host=db.yourproject.supabase.co
port=5432
dbname=postgres
[The above works in ipv6 networks, if you are in ipv4 network or it cause errors, use the below connection string which could be found in Session Pooler connection]

```sh
user=postgres.<project>
password=[YOUR-PASSWORD]
host=aws-<location>.pooler.supabase.com
port=5432
dbname=postgres
```
# API Keys
GROQ_API_KEY=your_groq_key
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-public-key
GEMINI_API_KEY=your_gemini_key
YOUTUBE_API_KEY=your_youtube_key
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Backend setup and environment configuration look clear and well-structured.

The virtual environment setup (lines 118–131) is excellent for beginners, with platform-specific activation commands. The consolidated .env file example (lines 142–156) with accompanying table (lines 158–168) provides clear, actionable guidance. Direct links to API credential sources are very helpful.

Minor suggestions:

  • Line 145 (password=YOUR_DB_PASSWORD): Consider a brief inline comment clarifying that users should copy this from their Supabase project settings (the table explains it, but a quick note here aids readability).
  • Ensure requirements.txt exists at the backend root and main.py exists in backend/app/ before users run the commands.

Run this script to verify the directory structure and key files exist:


🏁 Script executed:

#!/bin/bash
# Verify backend structure for the documented setup

echo "=== Checking backend directory structure ==="
find . -type d -name backend -o -type d -name frontend 2>/dev/null | head -5

echo "=== Checking for requirements.txt in backend ==="
find . -name requirements.txt -path "*/backend/*" 2>/dev/null

echo "=== Checking for main.py in backend/app ==="
find . -name main.py -path "*/backend/app/*" 2>/dev/null

Length of output: 137


I need to explore the repository structure more broadly to understand the actual layout and locate the backend files.


---

🏁 Script executed:

```shell
#!/bin/bash
# Get broader view of repository structure

echo "=== Repository root contents ==="
ls -la | head -20

echo "=== Top-level directories ==="
find . -maxdepth 1 -type d | sort

echo "=== Search for requirements.txt anywhere ==="
find . -name "requirements.txt" 2>/dev/null

echo "=== Search for main.py anywhere ==="
find . -name "main.py" 2>/dev/null

echo "=== Search for any Python files in app directory ==="
find . -path "*/app/*.py" 2>/dev/null | head -10

Length of output: 1171


Now I need to check the actual README content to see if there's a case-sensitivity mismatch in the documented paths.


---

🏁 Script executed:

```shell
#!/bin/bash
# Check the actual README content for backend path references

echo "=== README lines 118-156 (backend setup section) ==="
sed -n '118,156p' README.md

echo ""
echo "=== Search for lowercase 'cd ../backend' in README ==="
grep -n "cd ../backend" README.md

echo ""
echo "=== Search for any backend path references in README ==="
grep -n "backend" README.md

Length of output: 1069


Correct the directory path casing throughout the backend setup instructions.

The repository uses capitalized directory names (Backend/, not backend/), but the README documents lowercase paths. This causes failures on case-sensitive systems (Linux, macOS). Update:

  • Line 121: cd ../backendcd ../Backend
  • Line 140: backend/app/Backend/app/
  • Line 181: cd backend/appcd Backend/app

The required files (requirements.txt and main.py) do exist in the correct locations, so no structural issues remain once paths are corrected.

🤖 Prompt for AI Agents
In README.md around lines 118 to 156, the backend path casing is incorrect for
case-sensitive filesystems; update all occurrences of "backend" to "Backend" in
these instructions (specifically change the cd command at line ~121 from cd
../backend to cd ../Backend, update the .env creation path at ~140 from
backend/app/ to Backend/app/, and change the final cd at ~181 from cd
backend/app to cd Backend/app), and scan nearby lines in this block to ensure
any other lowercase "backend" occurrences are similarly corrected so commands
and paths match the repository's capitalized directory names.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant