A full-stack application to help users track their job applications across different stages.
- User authentication (register/login)
- Track job applications in different stages:
- Details
- In Progress
- Accepted
- Rejected
- Drag and drop functionality to move applications between stages
- Add notes to each job application
- User-specific job listings
- Responsive design
- React.js
- React DnD (Drag and Drop)
- JavaScript/ES6
- CSS3
- js-cookie for cookie management
- JWT for authentication
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT Authentication
- bcryptjs for password hashing
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Navigate to the Backend directory:
cd Backend
- Install dependencies:
npm install
- Create a .env file in the Backend directory:
MONGODB_URI=mongodb://localhost:27017/job-tracker
PORT=5000
JWT_SECRET=your_jwt_secret_key_here
NODE_ENV=development
- Start the backend server:
npm run dev
- Navigate to the Frontend directory:
cd Frontend
- Install dependencies:
npm install
- Create a .env file in the Frontend directory:
REACT_APP_URL=http://localhost:5000/api
- Start the frontend application:
npm start
- POST
/api/auth/register
- Register a new user - POST
/api/auth/login
- Login user
- GET
/api/jobs
- Get all jobs for logged-in user - POST
/api/jobs
- Create a new job - PATCH
/api/jobs/:id
- Update job status - DELETE
/api/jobs/:id
- Delete a job
MONGODB_URI
: MongoDB connection stringPORT
: Server port numberJWT_SECRET
: Secret key for JWTNODE_ENV
: Environment mode (development/production)
REACT_APP_URL
: Backend API base URL
job-tracker/
├── Backend/
│ ├── middleware/
│ │ └── auth.js
│ ├── models/
│ │ ├── Job.js
│ │ └── User.js
│ ├── routes/
│ │ ├── auth.js
│ │ └── jobs.js
│ ├── .env
│ ├── package.json
│ └── server.js
├── Frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── services/
│ │ └── App.js
│ ├── .env
│ └── package.json
└── README.md
- Register a new account or login with existing credentials
- Add new job applications using the form
- Add relevant details including company name, job description, and notes
- Drag and drop job cards between columns to update their status
- Delete jobs when needed
- Password hashing using bcryptjs
- JWT-based authentication
- Protected API routes
- HTTP-only cookies for token storage
- CORS protection
- Ensure environment variables are properly set
- Update MONGODB_URI to production database
- Set NODE_ENV to production
- Update REACT_APP_URL to production API URL
- Build the production version:
npm run build
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
MIT License