Skip to content

DatomCode/ApplyFlow-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 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

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages