A RESTful API built with FastAPI, PostgreSQL, SQLAlchemy, Docker, and JWT Authentication for managing and tracking job applications throughout the job search process.
This project allows users to securely create, update, view, and manage job applications while demonstrating backend engineering concepts such as authentication, database design, CRUD operations, filtering, sorting, pagination, and containerized deployment.
API Base URL:
https://job-application-tracker-api-rl3a.onrender.com
Swagger Documentation:
https://job-application-tracker-api-rl3a.onrender.com/docs
- User registration
- User login
- JWT-based authentication
- Protected routes
- Retrieve authenticated user information
- Create job applications
- View all job applications
- View individual applications
- Update applications
- Delete applications
- Filtering
- Sorting
- Pagination
- Password hashing
- JWT Authentication
- Protected endpoints
- Python
- FastAPI
- PostgreSQL
- SQLAlchemy
- JWT Authentication
- Docker
- Render
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register | Register user |
| POST | /auth/login | Login user |
| GET | /auth/me | Get authenticated user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /applications | Get all applications |
| POST | /applications | Create application |
| GET | /applications/{application_id} | Get application |
| PUT | /applications/{application_id} | Update application |
| DELETE | /applications/{application_id} | Delete application |
| Method | Endpoint | Description |
|---|---|---|
| GET | / | API status |
app/
├── api/
├── core/
├── models/
├── schemas/
├── main.py
Dockerfile
docker-compose.yml
requirements.txt
.env
Create a .env file:
DATABASE_URL=postgresql://postgres:password@localhost/jobtracker
SECRET_KEY=your_secret_key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=60Clone the repository:
git clone https://github.com/rivondave/Job-Application-Tracker-API.git
cd Job-Application-Tracker-APICreate a virtual environment:
python -m venv venvActivate the virtual environment:
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtRun the application:
uvicorn app.main:app --reloadAccess Swagger documentation:
http://127.0.0.1:8000/docs
Build and run containers:
docker compose up --buildAccess API:
http://localhost:8000
Swagger Documentation:
http://localhost:8000/docs
- Track job applications from multiple companies.
- Monitor application progress through different stages.
- Organize interview opportunities.
- Maintain a centralized job search workflow.
- REST API Design
- JWT Authentication and Authorization
- Database Modeling with SQLAlchemy
- CRUD Operations
- Filtering, Sorting, and Pagination
- PostgreSQL Integration
- Docker Containerization
- API Deployment with Render
- Backend Project Architecture
- Application status analytics
- Email notifications
- Resume and cover letter uploads
- Application reminders
- Advanced search capabilities
- Automated testing with Pytest