A fast, modern coding interview application built with React and FastAPI.
- Fast - React frontend with FastAPI backend
- 4 Difficulty Levels - Easy, Medium, Hard, Expert
- Test Cases - Add and run your own test cases
- AI Scoring - Gemini AI analyzes and scores your solutions
- Auto-Generation - Problems generate in the background
- Progress Tracking - Track your quiz progress and scores
smarttalk/
├── backend/
│ ├── main.py # FastAPI server
│ ├── requirements.txt # Python dependencies
│ └── .env # API key (create this)
├── frontend/
│ ├── public/
│ │ └── index.html
│ ├── src/
│ │ ├── index.js
│ │ └── App.js # React app
│ └── package.json
├── run.py # Cross-platform runner
├── run.sh # Linux/Mac runner
├── run.bat # Windows runner
├── .gitignore
└── README.md
Create backend/.env:
GOOGLE_API_KEY=your-api-key-here
Get your key from: https://aistudio.google.com/app/apikey
Option A: Python runner (recommended)
python run.pyOption B: Shell script (Linux/Mac)
chmod +x run.sh
./run.shOption C: Batch file (Windows)
run.batOption D: Manual start
Terminal 1 (Backend):
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000Terminal 2 (Frontend):
cd frontend
npm install
npm start- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
| Endpoint | Method | Description |
|---|---|---|
/pool/status |
GET | Get problem pool status |
/pool/generate |
POST | Generate more problems |
/quiz/start |
GET | Start a new quiz (get 4 problems) |
/quiz/submit |
POST | Submit solution for scoring |
/quiz/run-tests |
POST | Run test cases |
/generator/start |
POST | Start background generator |
/generator/stop |
POST | Stop background generator |
/pool/clear |
POST | Clear the problem pool |
- Frontend: React 18, Monaco Editor, Tailwind CSS, Axios
- Backend: FastAPI, Pydantic, Google Gemini AI
- Code Editor: Monaco Editor (same as VS Code)
Create backend/.env with your API key.
Wait for the background generator to create problems, or manually generate:
curl -X POST http://localhost:8000/pool/generateMake sure Node.js is installed:
node --version # Should be v16+
npm --version # Should be v8+Check Python version and dependencies:
python --version # Should be 3.9+
pip install -r backend/requirements.txtMIT