Commit Β·
a03799d
1
Parent(s): 7f1e85c
README.md
Browse files- README.md +86 -50
- frontend/.env.example +1 -0
- frontend/README.md +12 -0
README.md
CHANGED
|
@@ -1,87 +1,123 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
[](https://stackblitz.com/github/remix-run/react-router-templates/tree/main/default)
|
| 6 |
|
| 7 |
## Features
|
| 8 |
|
| 9 |
-
-
|
| 10 |
-
-
|
| 11 |
-
-
|
| 12 |
-
-
|
| 13 |
-
-
|
| 14 |
-
-
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
-
|
| 18 |
|
| 19 |
-
|
| 20 |
|
| 21 |
-
|
| 22 |
|
| 23 |
```bash
|
| 24 |
-
|
|
|
|
| 25 |
```
|
| 26 |
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
Start the development server with HMR:
|
| 30 |
|
| 31 |
```bash
|
| 32 |
-
|
| 33 |
```
|
| 34 |
|
| 35 |
-
|
|
|
|
|
|
|
| 36 |
|
| 37 |
-
|
| 38 |
|
| 39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
|
| 41 |
```bash
|
| 42 |
-
|
| 43 |
```
|
| 44 |
|
| 45 |
-
|
|
|
|
|
|
|
| 46 |
|
| 47 |
-
###
|
| 48 |
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
```bash
|
| 52 |
-
|
|
|
|
| 53 |
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
```
|
| 57 |
|
| 58 |
-
The
|
| 59 |
|
| 60 |
-
-
|
| 61 |
-
- Google Cloud Run
|
| 62 |
-
- Azure Container Apps
|
| 63 |
-
- Digital Ocean App Platform
|
| 64 |
-
- Fly.io
|
| 65 |
-
- Railway
|
| 66 |
|
| 67 |
-
##
|
| 68 |
|
| 69 |
-
|
|
|
|
| 70 |
|
| 71 |
-
|
| 72 |
|
| 73 |
-
```
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
``
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
-
##
|
| 82 |
|
| 83 |
-
|
| 84 |
|
| 85 |
-
|
| 86 |
|
| 87 |
-
|
|
|
|
| 1 |
+
# Talent Technical Evaluation
|
| 2 |
|
| 3 |
+
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.
|
|
|
|
|
|
|
| 4 |
|
| 5 |
## Features
|
| 6 |
|
| 7 |
+
- User authentication and role-based flows (candidates, HR).
|
| 8 |
+
- Job posting and management.
|
| 9 |
+
- Assessments attached to jobs with rich question types.
|
| 10 |
+
- Candidate application submission and progress tracking.
|
| 11 |
+
- AI-powered scoring and rationalization.
|
| 12 |
+
- Admin dashboard with overview charts and pagination.
|
| 13 |
+
|
| 14 |
+
## Technology stack
|
| 15 |
+
|
| 16 |
+
- Backend: Python, FastAPI, Pydantic, SQLAlchemy, Alembic, Uvicorn.
|
| 17 |
+
- Frontend: React (TypeScript), React Router, Vite, TailwindCSS.
|
| 18 |
+
- API client: Axios, React Query.
|
| 19 |
+
- Database: SQLite (default; configurable via `DATABASE_URL`).
|
| 20 |
+
- Dev & tooling: pytest, Pre-commit, ESLint/TypeScript (frontend).
|
| 21 |
+
|
| 22 |
+
## Prerequisites
|
| 23 |
+
|
| 24 |
+
- Python 3.10+ (recommended).
|
| 25 |
+
- Node.js 18+ and npm or pnpm.
|
| 26 |
+
|
| 27 |
+
## Quick start
|
| 28 |
+
|
| 29 |
+
Follow these steps to run the backend and frontend locally.
|
| 30 |
+
|
| 31 |
+
### Backend
|
| 32 |
|
| 33 |
+
1. Change to the backend directory:
|
| 34 |
|
| 35 |
+
- `cd backend`
|
| 36 |
|
| 37 |
+
2. Create a virtual environment and activate it:
|
| 38 |
|
| 39 |
```bash
|
| 40 |
+
python -m venv .venv
|
| 41 |
+
source .venv/bin/activate
|
| 42 |
```
|
| 43 |
|
| 44 |
+
3. Install Python dependencies:
|
|
|
|
|
|
|
| 45 |
|
| 46 |
```bash
|
| 47 |
+
pip install -r requirements.txt
|
| 48 |
```
|
| 49 |
|
| 50 |
+
4. Create an environment file:
|
| 51 |
+
|
| 52 |
+
- Copy `.env.example` to `.env` and update values as needed (DB URL, secrets, AI keys).
|
| 53 |
|
| 54 |
+
5. Run database migrations (Alembic):
|
| 55 |
|
| 56 |
+
```bash
|
| 57 |
+
alembic upgrade head
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
6. Start the development server:
|
| 61 |
|
| 62 |
```bash
|
| 63 |
+
uvicorn main:app --reload --host 0.0.0.0 --port 8000
|
| 64 |
```
|
| 65 |
|
| 66 |
+
The API will be available at `http://localhost:8000`. Open the automatic docs at `http://localhost:8000/docs`.
|
| 67 |
+
|
| 68 |
+
See backend-specific notes in [backend/README.md](backend/README.md).
|
| 69 |
|
| 70 |
+
### Frontend
|
| 71 |
|
| 72 |
+
1. Change to the frontend directory:
|
| 73 |
+
|
| 74 |
+
- `cd frontend`
|
| 75 |
+
|
| 76 |
+
2. Install dependencies:
|
| 77 |
|
| 78 |
```bash
|
| 79 |
+
npm install
|
| 80 |
+
```
|
| 81 |
|
| 82 |
+
3. Create an environment file:
|
| 83 |
+
|
| 84 |
+
- Copy `.env.example` to `.env` and set the API URL and any other values required.
|
| 85 |
+
|
| 86 |
+
4. Start the development server:
|
| 87 |
+
|
| 88 |
+
```bash
|
| 89 |
+
npm run dev
|
| 90 |
```
|
| 91 |
|
| 92 |
+
The app will be available at `http://localhost:5173` by default.
|
| 93 |
|
| 94 |
+
See frontend-specific instructions in [frontend/README.md](frontend/README.md).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
|
| 96 |
+
## Configuration & environment variables
|
| 97 |
|
| 98 |
+
- Backend uses `.env` and supports overriding via environment variables. Key items include `DATABASE_URL`, `HOST`, `PORT`, and AI provider keys. Defaults are defined in `backend/config.py`.
|
| 99 |
+
- Frontend uses `.env` in the `frontend` folder; copy `.env.example` and configure the API base URL.
|
| 100 |
|
| 101 |
+
## Running tests
|
| 102 |
|
| 103 |
+
- Backend tests: from the `backend` directory run `pytest` or `python run_tests.py`.
|
| 104 |
+
- Frontend: type-checking and other checks are available via the `package.json` scripts.
|
| 105 |
+
|
| 106 |
+
## Project structure
|
| 107 |
+
|
| 108 |
+
- `backend/` β FastAPI application, models, services, tests, Alembic migrations.
|
| 109 |
+
- `frontend/` β React TypeScript app, routes, components, and styles.
|
| 110 |
+
|
| 111 |
+
## Development notes
|
| 112 |
+
|
| 113 |
+
- The default backend database is SQLite for convenience. To use Postgres or another DB, set `DATABASE_URL` accordingly and run migrations.
|
| 114 |
+
- CORS is configured to allow the common Vite dev port; update `CORS_ORIGINS` in the backend `.env` if your setup differs.
|
| 115 |
+
- AI integration points are present under `backend/integrations/ai_integration` and `backend/services/ai_service.py` β supply API keys via `.env` to enable AI features.
|
| 116 |
|
| 117 |
+
## Contributing
|
| 118 |
|
| 119 |
+
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.
|
| 120 |
|
| 121 |
+
## License
|
| 122 |
|
| 123 |
+
This repository does not include a license file. Add a `LICENSE` if you intend to open-source the project.
|
frontend/.env.example
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
VITE_APP_API_URL=http://localhost:8000
|
frontend/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Frontend β Quick Start
|
| 2 |
+
|
| 3 |
+
To run the frontend locally, follow these steps:
|
| 4 |
+
|
| 5 |
+
1. Change to the frontend directory:
|
| 6 |
+
- `cd frontend`
|
| 7 |
+
2. Create and configure the environment file:
|
| 8 |
+
- Copy `.env.example` to `.env` and update values as required.
|
| 9 |
+
3. Install dependencies:
|
| 10 |
+
- `npm install`
|
| 11 |
+
4. Start the development server:
|
| 12 |
+
- `npm run dev`
|