AOSSIE-Org / AOSSIE-Org/InPactAI

Improve Local Setup Documentation: Add Clear Steps for API Keys & Python Virtual Environment

Open
#178 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
102
Forks
144
PR merge metrics
No merged PRs in 30d

Description

### Is this related to an existing part of the documentation?

- [x] Yes, it is related to an existing section

### What needs to be updated?

## Title: Improve Local Setup Documentation: Add Clear Steps for API Keys & Python Virtual Environment

---

## Describe the Problem

The current `README.md` provides basic setup instructions (cloning, installing dependencies, running servers), but **critical onboarding steps are missing or incomplete**, making it difficult for new contributors (especially beginners) to run the project locally.

### Missing or Unclear Parts
1. **API Key Setup (`GEMINI_API_KEY`, `YOUTUBE_API_KEY`, `GROQ_API_KEY`)**
- The `.env.example` lists these keys, but **there are no instructions** on how to obtain them.
- No links, steps, or free-tier details — users get stuck at the `.env` stage.

2. **Supabase Database Credentials (`host`, `password`, etc.)**
- While Supabase URL and anon key are mentioned, the **PostgreSQL connection string breakdown** (`host`, `password`, `port`, etc.) is not explained.
- Users don’t know where to find these in the Supabase dashboard.

3. **Python Virtual Environment (venv) for FastAPI Backend**
- The README says `pip install -r requirements.txt`, but **does not recommend or explain using a virtual environment**.
- This leads to dependency conflicts, especially on shared machines or with multiple Python projects.

These gaps increase friction for first-time contributors and reduce project accessibility.

---

## Suggested Solution

Add a new **“Local Development Setup”** section to `README.md` with clear, step-by-step instructions and a **properly formatted table** for API keys.

### 1. API Keys Table (place under “Environment Variables” or a new heading)

```markdown
Create a `.env` file in `backend/app/` (copy from `.env.example`). Fill the values below:

| Variable | Service | How to Obtain |
|------------------------|-----------------------------|---------------|
| `GROQ_API_KEY` | [Groq](https://console.groq.com) | 1. Go to [console.groq.com](https://console.groq.com)
2. Sign up / log in
3. **API Keys → Create API Key**
4. Copy the key (`gsk_…`) |
| `GEMINI_API_KEY` | [Google AI Studio](https://aistudio.google.com) | 1. Visit [aistudio.google.com/app/apikey](https://aistudio.google.com/app/apikey)
2. Sign in with Google
3. **Create API key**
4. Copy the key |
| `YOUTUBE_API_KEY` | [Google Cloud Console](https://console.cloud.google.com) | 1. Go to [console.cloud.google.com](https://console.cloud.google.com)
2. Create a new project (e.g., “InPact-YouTube”)
3. Enable **YouTube Data API v3**
4. **Credentials → Create Credentials → API key** |
| `SUPABASE_URL` & `SUPABASE_KEY` | [Supabase](https://supabase.com) | 1. Go to [supabase.com/dashboard](https://supabase.com/dashboard)
2. Create a new project
3. **Settings → API** → copy **Project URL** and **anon public** key |
| `host`, `password` | Supabase PostgreSQL | In Supabase: **Settings → Database** → copy **Host** and the **Database password** you set during project creation |
```
> **Note**: All services have free tiers sufficient for local development.

### 2. Python Virtual Environment (Recommended)

To avoid dependency conflicts:

```bash
# In project root or backend/
python -m venv venv

# Activate
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate

# Install backend deps (with venv active)
pip install -r backend/requirements.txt
```
> **Note** : Always activate the **venv** before running **uvicorn**

### 3. Update `.env.example` (Optional but Helpful)

Ensure `backend/.env.example` includes **all** required keys with comments:

```env
# Supabase DB
user=postgres
password=YOUR_DB_PASSWORD
host=YOUR_PROJECT.supabase.co
port=5432
dbname=postgres

# API Keys
GROQ_API_KEY=your_groq_key_here
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-key
GEMINI_API_KEY=your-gemini-key
YOUTUBE_API_KEY=your-youtube-key
```
---

## Additional Context

- **Date & Time**: November 16, 2025, 10:01 AM IST
- **Location**: India (IN)
- **Fork**: [SunilBaghel002/InPactAI](https://github.com/SunilBaghel002/InPactAI)
- **OS Tested**: Windows 11 (also verified on Ubuntu 24.04 via WSL)
- **Contributor**: First-time open-source contributor — eager to improve onboarding for the global community!
- **Motivation**: I spent **~45 minutes** just figuring out API keys and venv setup. Clear docs would have saved me (and others) hours.

---

## Impact

| Before | After |
|--------|-------|
| New contributors get stuck at `.env` → give up | Setup time drops from **~1 hour → ~10 minutes** |
| Dependency conflicts break local runs | Isolated venv = zero conflicts |
| No guidance on free-tier limits | Confidence that free tiers are enough for dev |
| High barrier for non-US/English users | Step-by-step + India-localized time = inclusive |

**Result**:
- **More pull requests** from beginners (especially from India & APAC timezones)
- **Faster project growth**
- **Lower maintainer support load** (fewer “how do I get X key?” issues)

---

**Happy to open a PR with these exact changes** — just let me know!

### Relevant Documentation Link (if any)

_No response_

### Record

- [x] I agree to follow this project's Code of Conduct
- [x] I want to work on this update

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.