A full-stack Job Application Tracker built using React.js, Flask, and MySQL. This application helps users manage and track their job applications in one place.
- User Registration
- User Login
- Session-Based Authentication
- Protected Routes
- Add New Job Applications
- View All Applications
- Update Application Status
- Delete Applications
- Dashboard Overview
- Responsive Design
- Modern Dashboard
- Navigation Bar
- Protected Pages
- React.js
- React Router DOM
- Axios
- CSS
- Flask
- Flask-CORS
- Flask-Bcrypt
- MySQL
job-tracker/
├── backend/
│ ├── app.py
│ ├── requirements.txt
│
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ ├── components/
│ │ ├── styles/
│ │ ├── api.js
│ │ └── App.jsx
│
└── README.md
Create a database named:
CREATE DATABASE job_tracker;Create users table:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(100),
password VARCHAR(255)
);Create applications table:
CREATE TABLE applications (
id INT AUTO_INCREMENT PRIMARY KEY,
company VARCHAR(100),
role VARCHAR(100),
status VARCHAR(50),
applied_date DATE,
user_id INT
);Navigate to backend folder:
cd backendInstall dependencies:
pip install flask flask-cors flask-bcrypt mysql-connector-pythonRun backend server:
python app.pyBackend runs on:
http://localhost:5000
Terminal Output:
* Running on http://127.0.0.1:5000
* Debug mode: on
Navigate to frontend folder:
cd frontendInstall dependencies:
npm installRun React application:
npm run devFrontend runs on:
http://localhost:5173
Terminal Output:
VITE v7.x ready in xxx ms
➜ Local: http://localhost:5173/
POST /registerRequest Body:
{
"username": "Jeeva",
"email": "jeeva@gmail.com",
"password": "123456"
}POST /loginRequest Body:
{
"email": "jeeva@gmail.com",
"password": "123456"
}POST /logoutGET /applicationsPOST /applicationsRequest Body:
{
"company": "Google",
"role": "Software Engineer",
"status": "Applied",
"applied_date": "2026-06-12"
}PUT /applications/<id>DELETE /applications/<id>POST http://localhost:5000/registerPOST http://localhost:5000/loginGET http://localhost:5000/applicationsPOST http://localhost:5000/applications- User authentication screen
- Displays all job applications
- Form to add new applications
- Manage application records
- React Components
- React Router
- Protected Routes
- Axios API Integration
- Flask REST APIs
- Session Authentication
- MySQL Database Operations
- Full Stack Development
Jeeva V