-
Notifications
You must be signed in to change notification settings - Fork 104
docs: complete beginner-friendly local setup with all API keys & Python venv #189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
docs: complete beginner-friendly local setup with all API keys & Python venv #189
Conversation
WalkthroughThis 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
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes
Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 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.
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 tosql.txtin the README instructions. The file exists atBackend/sql.txt, but line 204 instructs developers to "Open thesql.txtfile in your project" without specifying the directory. Update the reference to indicate the correct location, e.g., "Open theBackend/sql.txtfile" or "thesql.txtfile in the Backend folder."
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 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.
| **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| **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.
There was a problem hiding this 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
📒 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
--portflag for npm and--portfor 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
.envfile 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 installfails, users should ensure Node.js v18+ is installed (as stated in prerequisites but worth repeating contextually).
| #### 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 | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 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.txtexists at the backend root andmain.pyexists inbackend/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/nullLength 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 ../backend→cd ../Backend - Line 140:
backend/app/→Backend/app/ - Line 181:
cd backend/app→cd 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.
Closes #<178>
This PR completely overhauls the Getting Started section to make the project truly beginner-friendly by adding:
.envexamples for both frontend and backendTested and working on Windows 11 + WSL (Ubuntu).
First-time contributor from India — thank you for the opportunity!
✅ Checklist
Summary by CodeRabbit