A full-stack application that generates interactive coding challenges using AI.
Built with FastAPI, React, OpenAI, and Clerk for secure authentication.
- AI-generated coding challenges using OpenAI (GPT-4o)
- Secure authentication with Clerk
- Persistent progress tracking with SQLite
- Fast, async backend using FastAPI
- Modern frontend with React + Vite
- React (Vite)
- Tailwind CSS
- Clerk Authentication
- Python 3.10+
- FastAPI
- SQLAlchemy
- Pydantic
- OpenAI API
- Node.js & npm
- Python 3.10+
- (Optional) uv package manager
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-nameNavigate to the backend directory:
cd backendOption A: Using uv (Recommended)
uv syncOption B: Using standard pip
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
pip install -r pyproject.tomlCreate a .env file inside the backend folder:
DATABASE_URL=sqlite:///./database.db
OPENAI_API_KEY=your_openai_api_key_here
CLERK_SECRET_KEY=your_clerk_secret_key_here
CLERK_WEBHOOK_SECRET=your_clerk_webhook_secret_here
JWT_KEY="-----BEGIN PUBLIC KEY-----
YOUR_PUBLIC_KEY_CONTENT_HERE
-----END PUBLIC KEY-----"# Using uv
uv run fastapi dev server.py
# Using standard python
fastapi dev server.pyBackend runs at:
http://127.0.0.1:8000
Open a new terminal and navigate to the frontend directory:
cd frontendnpm installCreate a .env.local file inside the frontend folder:
VITE_CLERK_PUBLISHABLE_KEY=pk_test_your_publishable_key_herenpm run devFrontend runs at:
http://localhost:5173
- Open http://localhost:5173
- Sign up or log in using Clerk
- Click Generate Challenge
- Select an answer
- Score updates automatically
- Both frontend and backend must be running
- Valid OpenAI and Clerk keys are required
- SQLite is used by default
MIT License