Skip to content

Latest commit

ย 

History

History
126 lines (85 loc) ยท 3.54 KB

File metadata and controls

126 lines (85 loc) ยท 3.54 KB

๐Ÿš€ ApplyFlow API (Job Application Tracker)

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.

๐Ÿ“– Table of Contents

โœจ Features

  • 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).

๐Ÿ›  Tech Stack

  • Language: Python 3.x
  • Framework: Django 5.x
  • API Toolkit: Django REST Framework (DRF)
  • Database: SQLite (Development) / PostgreSQL (Production)
  • Authentication: JWT / Token Authentication

๐Ÿ“Š Database Schema (ERD)

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)

๐Ÿš€ Getting Started

Follow these steps to set up the project locally on your machine.

Prerequisites

  • Python 3.8 or higher installed.
  • Git installed.

Installation

  1. Clone the Repository

    git clone [https://github.com/yourusername/careerquest-api.git](https://github.com/yourusername/careerquest-api.git)
    cd careerquest-api
    
  2. Create a Virtual Environment

    # Windows
    python -m venv venv
    venv\Scripts\activate
    
    # Mac/Linux
    python3 -m venv venv
    source venv/bin/activate
    
  3. Install Dependencies

    pip install -r requirements.txt
    
  4. Run Migrations

    python manage.py makemigrations
    python manage.py migrate
    
  5. Start the Development Server

    python manage.py runserver
    

Visit http://127.0.0.1:8000/ in your browser to verify it's running!

๐Ÿ“ก API Endpoints

๐Ÿ” Authentication

Method Endpoint Description
POST /api/auth/register/ Register a new user
POST /api/auth/login/ Login and get token

๐Ÿ” Filtering & Search

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

๐Ÿ“ 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

๐Ÿ”ฎ Future Improvements

  • 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.

๐Ÿ‘ค Author

Gbadebo Enoch