A simple yet powerful RESTful API built with Node.js and Express.js to help users track job applications. Designed for clean code, maintainability, and real-world use.
- 🔐 Authentication – User registration & login with JWT
- 📋 CRUD Operations – Create, read, update, delete job entries
- 📊 Job Status Tracking – Track
pending,interview, anddeclinedapplications - 🧼 Clean Architecture – Modular structure with middleware, controllers, and route separation
- 🛡️ Protected Routes – Secure job data with authentication middleware
- 🧪 Validation & Error Handling – Ensures input safety and provides helpful responses
- Backend: Node.js, Express.js
- Database: MongoDB (via Mongoose)
- Authentication: JWT, bcrypt
- Validation: express-validator
- Utilities: dotenv, morgan, helmet, cors
- Dev Tools: Nodemon, ESLint, Prettier
git clone https://github.com/Chafid/job-tracker-api.git
cd job-tracker-apinpm installCreate a .env file in the root directory based on .env.example:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_keynpm run devServer will start on http://localhost:5000
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
Login existing user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/applications |
Get all user jobs |
| POST | /api/applications |
Create a new job entry |
⚠️ All/jobsroutes require a valid JWT token in theAuthorizationheader asBearer <token>.
job-tracker-api/
├── controllers/ # Request handlers
├── middleware/ # Auth & error handlers
├── models/ # Mongoose models
├── routes/ # API route definitions
├── utils/ # Utility functions
├── config/ # DB config & setup
├── .env.example # Sample env vars
├── server.js # Entry point
└── package.json
PORT=5000
MONGO_URI=mongodb://localhost:27017/jobtracker
JWT_SECRET=yourSecretKey- Swagger API Documentation
- Pagination & Search Filters
- Rate Limiting & Security Enhancements
- CI/CD Integration
- Deploy to Render / Railway / Vercel backend
Made by Chafid
📫 Reach out on LinkedIn
🌍 Based in Indonesia – Open to remote backend opportunities!
If this project helped you, consider giving it a ⭐️ on GitHub and sharing it with others!