Comprehensive full‑stack ai-powered sample application for creating, managing, and evaluating hiring assessments. This repository contains a Python FastAPI backend and a TypeScript React frontend built with Vite and React Router. The project demonstrates common hiring workflows including job posting, assessment creation, candidate application, and AI-assisted scoring.
- User authentication and role-based flows (candidates, HR).
- Job posting and management.
- Assessments attached to jobs with rich question types.
- Candidate application submission and progress tracking.
- AI-powered scoring and rationalization.
- Admin dashboard with overview charts and pagination.
- Backend: Python, FastAPI, Pydantic, SQLAlchemy, Alembic, Uvicorn.
- Frontend: React (TypeScript), React Router, Vite, TailwindCSS.
- API client: Axios, React Query.
- Database: SQLite (default; configurable via
DATABASE_URL). - Dev & tooling: pytest, Pre-commit, ESLint/TypeScript (frontend).
- Python 3.10+ (recommended).
- Node.js 18+ and npm or pnpm.
Follow these steps to run the backend and frontend locally.
-
Change to the backend directory:
cd backend
-
Create a virtual environment and activate it:
python -m venv .venv
source .venv/bin/activate- Install Python dependencies:
pip install -r requirements.txt-
Create an environment file:
- Copy
.env.exampleto.envand update values as needed (DB URL, secrets, AI keys).
- Copy
-
Run database migrations (Alembic):
alembic upgrade head- Start the development server:
uvicorn main:app --reload --host 0.0.0.0 --port 8000The API will be available at http://localhost:8000. Open the automatic docs at http://localhost:8000/docs.
See backend-specific notes in backend/README.md.
-
Change to the frontend directory:
cd frontend
-
Install dependencies:
npm install-
Create an environment file:
- Copy
.env.exampleto.envand set the API URL and any other values required.
- Copy
-
Start the development server:
npm run devThe app will be available at http://localhost:5173 by default.
See frontend-specific instructions in frontend/README.md.
- Backend uses
.envand supports overriding via environment variables. Key items includeDATABASE_URL,HOST,PORT, and AI provider keys. Defaults are defined inbackend/config.py. - Frontend uses
.envin thefrontendfolder; copy.env.exampleand configure the API base URL.
- Backend tests: from the
backenddirectory runpytestorpython run_tests.py. - Frontend: type-checking and other checks are available via the
package.jsonscripts.
backend/— FastAPI application, models, services, tests, Alembic migrations.frontend/— React TypeScript app, routes, components, and styles.
- The default backend database is SQLite for convenience. To use Postgres or another DB, set
DATABASE_URLaccordingly and run migrations. - CORS is configured to allow the common Vite dev port; update
CORS_ORIGINSin the backend.envif your setup differs. - AI integration points are present under
backend/integrations/ai_integrationandbackend/services/ai_service.py— supply API keys via.envto enable AI features.
Contributions are welcome. Please open issues for bugs or feature requests and submit pull requests for changes. Follow existing code style and add tests for new behavior.
This repository does not include a license file. Add a LICENSE if you intend to open-source the project.