Job Tracker is a basic pet project that allows users to register, log in, and manage a list of job vacancies. It supports JWT authentication and basic CRUD operations for vacancies.
- Frontend: React, React Router, Axios
- Backend: FastAPI
- Database: PostgreSQL (main), SQLite (tests)
- Auth: JWT (OAuth2 PasswordBearer)
- Validation: Pydantic v2
- Testing: Pytest
- Dev Server: Vite (frontend), Uvicorn (backend)
⚠️ This is a basic implementation meant for learning and portfolio purposes.
git clone https://github.com/your-username/job-tracker.git
cd job-trackerpython -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windowspip install -r requirements.txtDATABASE_URL=postgresql://postgres:yourpassword@localhost/jobtracker
SECRET_KEY=your-secret-key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30The database tables are automatically created at startup using SQLAlchemy.
uvicorn main:app --reloadRun tests using SQLite in-memory:
PYTHONPATH=./backend pytest -v| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /users/register | Register new user | ❌ |
| POST | /users/login | Get JWT token | ❌ |
| GET | /vacancies | Get all vacancies | ✅ |
| POST | /vacancies | Create new vacancy | ✅ |
| PUT | /vacancies/{id} | Update vacancy by ID | ✅ |
| DELETE | /vacancies/{id} | Delete vacancy by ID | ✅ |
Anastasia Tolmacheva