Job Manager is a full-stack web application for managing job applications. It allows users to register, log in, and track their job applications, including company, position, and status. The project is split into a React frontend and a Node.js/Express backend, with MongoDB as the database.
- User Authentication: Register and log in securely with JWT-based authentication.
- Job Management: Create, view, update, and delete job applications.
- Status Tracking: Track job status as "pending", "interview", or "declined".
- Protected Routes: Only authenticated users can access and manage their jobs.
- Responsive UI: Built with React, React Router, and Bootstrap for a modern user experience.
- Frontend: React, React Router, Bootstrap, Axios, Vite
- Backend: Node.js, Express, Mongoose, MongoDB, JWT, bcryptjs
- Other: dotenv, CORS, express-async-errors
job-manager/
│
├── frontend/ # React app (Vite)
│ └── src/
│ ├── pages/ # Main pages (Login, Signup, Dashboard, etc.)
│ ├── components/ # Reusable UI components
│ └── router.jsx # App routes
│
└── backend/ # Node.js/Express API
├── controllers/ # Route logic for jobs and auth
├── models/ # Mongoose models (User, Job)
├── routes/ # API endpoints
├── middlewares/ # Error handling, authentication
└── db/ # Database connection
- Node.js (v18+ recommended)
- npm
- MongoDB instance (local or cloud, e.g., MongoDB Atlas)
git clone <repo-url>
cd job-managercd backend
npm installCreate a .env file in the backend directory with the following variables:
MONGO_URI=<your-mongodb-connection-string>
JWT_SECRET=<your-secret-key>
Start the backend server:
npm run devThe backend will run on http://localhost:3000.
cd ../frontend
npm install
npm run devThe frontend will run on http://localhost:5173 (default Vite port).
POST /api/v1/auth/register– Register a new userPOST /api/v1/auth/login– Log in and receive a JWTGET /api/v1/jobs– Get all jobs for the authenticated userPOST /api/v1/jobs– Create a new jobGET /api/v1/jobs/:id– Get a specific jobPATCH /api/v1/jobs/:id– Update a jobDELETE /api/v1/jobs/:id– Delete a job
This project is licensed under the ISC License.