A powerful RESTful API built with Django and Django REST Framework (DRF) to help job seekers organize their job search. This tool allows users to track applications, manage interview statuses, and keep detailed notes on every interaction.
- User Authentication: Secure registration and login (Token/Session based).
- CRUD Operations: Create, Read, Update, and Delete job applications.
- Status Tracking: Move applications through stages (Applied → Interviewing → Offer).
- Notes System: Add multiple notes to specific job applications (e.g., recruiter feedback).
- Data Validation: Ensures data integrity (e.g., valid URLs, required fields).
- Language: Python 3.x
- Framework: Django 5.x
- API Toolkit: Django REST Framework (DRF)
- Database: SQLite (Development) / PostgreSQL (Production)
- Authentication: JWT / Token Authentication
The database consists of three main entities: Users, Job Applications, and Interaction Notes.
ER Diagram :(https://drive.google.com/file/d/1I0wcaV_j4s-tDD_u-n2JzU67pqdFvKey/view?usp=drive_link)
Follow these steps to set up the project locally on your machine.
- Python 3.8 or higher installed.
- Git installed.
-
Clone the Repository
git clone [https://github.com/yourusername/careerquest-api.git](https://github.com/yourusername/careerquest-api.git) cd careerquest-api -
Create a Virtual Environment
# Windows python -m venv venv venv\Scripts\activate # Mac/Linux python3 -m venv venv source venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Run Migrations
python manage.py makemigrations python manage.py migrate
-
Start the Development Server
python manage.py runserver
Visit http://127.0.0.1:8000/ in your browser to verify it's running!
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register/ |
Register a new user |
POST |
/api/auth/login/ |
Login and get token |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/jobs/?search=Google |
Search for "Google" in Company/Title |
GET |
/api/jobs/?status=Rejected |
Filter jobs by status |
GET |
/api/jobs/?status=Applied&search=Python |
Combo: Search + Filter together |
GET |
/api/notes/?search=interview |
Search text inside your notes |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/notes/ |
List all notes |
POST |
/api/notes/ |
Create a note (Link to Job ID in body) |
GET |
/api/notes/<id>/ |
Get details of a specific note |
- Integrate an external API (like LinkedIn or Indeed) to fetch real job listings.
- Add email notifications for upcoming scheduled interviews.
- Build a Frontend Dashboard using React or Vue.js.
Gbadebo Enoch
- LinkedIn: https://www.linkedin.com/in/gbadeboenoch/
- GitHub: https://github.com/DatomCode