A full-stack Job Application Tracking System built using the MERN stack (MongoDB, Express, React, Node.js).
This application helps users track their job applications, manage statuses, and stay organized during their job search.
Built with clean architecture, scalable folder structure, and professional Git practices.
- Project Overview
- Key Features
- Tech Stack
- Project Architecture
- Folder Structure
- API Overview
- Environment Variables
- Setup & Installation
- Running the Application
- Git Workflow & Commit Convention
- Future Enhancements
- Learning Outcomes
- License
The Job Application Tracker is a real-world MERN application designed to simulate how production-grade applications are built.
Users can:
- Register and log in securely
- Create and manage job applications
- Track application status (Applied, Interview, Offer, Rejected)
- View everything in a clean dashboard
This project is built end-to-end, focusing on:
- Clean backend APIs
- Secure authentication
- Scalable frontend architecture
- Professional Git usage
- User Registration & Login
- Password hashing using bcrypt
- JWT-based authentication
- Protected routes using middleware
- Create job applications
- Update job status
- Delete applications
- Filter and search jobs
- View and update profile
- Secure user-specific data access
- Modular backend architecture
- Separation of concerns
- Clean commit history
- Environment-based configuration
- React (Vite)
- React Router
- Axios
- Context API
- TailwindCSS
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- bcrypt
- dotenv
- cors
- Git & GitHub
- Nodemon
- Postman
Client (React)
↓ Axios
REST API (Express + Node)
↓ Mongoose
MongoDB Database
job-tracker-mern/
│
├── backend/
│ ├── src/
│ │ ├── config/ # DB & app configuration
│ │ ├── controllers/ # Request handlers
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API routes
│ │ ├── middlewares/ # Auth & error handling
│ │ ├── utils/ # Helper functions
│ │ └── server.js # App entry point
│ ├── .env
│ └── package.json
│
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page-level components
│ │ ├── context/ # Global state management
│ │ ├── services/ # API calls
│ │ ├── hooks/ # Custom hooks
│ │ └── App.jsx
│ └── package.json
│
└── README.md
POST /api/auth/register
POST /api/auth/login
GET /api/jobs
POST /api/jobs
PUT /api/jobs/:id
DELETE /api/jobs/:id
Create a .env file inside the backend folder:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secretgit clone https://github.com/your-username/job-tracker-mern.git
cd job-tracker-merncd backend
npm install
npm run devBackend runs on:
http://localhost:5000
cd frontend
npm install
npm run devFrontend runs on:
http://localhost:5173
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:5000 |
We follow Conventional Commits:
feat: add new feature
fix: fix a bug
chore: setup or configuration
refactor: code improvement
docs: documentation changes
- Resume upload (Cloudinary)
- Job analytics dashboard
- Pagination & sorting
- Email notifications
- Role-based access control
- Deployment (Render / Vercel)
By building this project, you will learn:
- Full-stack MERN development
- Secure authentication flows
- REST API design
- MongoDB data modeling
- Frontend–backend integration
- Professional Git practices
- Interview-ready explanation of concepts
This project is licensed under the MIT License. You are free to use, modify, and distribute it.