Welcome to Jobify! This backend-focused project is designed to help students find job opportunities and internships. Built using Node.js and Express.js, Jobify provides a robust API for managing job listings, user authentication, and application tracking.
- User authentication and authorization
- CRUD operations for job listings
- User profile management
- Job application tracking
- RESTful API
- Node.js
- Express.js
- MongoDB
- JWT for authentication
- bcrypt for password hashing
- dotenv for environment variable management
To get started with this project, follow these steps:
-
Clone the repository:
git clone https://github.com/ISHAAN-KKR/Jobify.git cd Jobify
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following environment variables:PORT=3000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret DEV_MODE=development
-
Connect to MongoDB: Ensure your MongoDB instance is running and
MONGODB_URI
in the.env
file is correctly set. -
Start the server:
npm start
-
Use nodemon for development:
npm run server
Ensure you have a MongoDB instance running and update the MONGODB_URI
in the .env
file with your database connection string.
To start the server, use the following command:
npm start
The server will be running on http://localhost:3000
by default.
Below are the main API endpoints available:
-
Register User
POST /api/v1/auth/register
- Request Body:
{ "name": "John Doe", "email": "[email protected]", "password": "password123" }
-
Login User
POST /api/v1/auth/login
- Request Body:
{ "email": "[email protected]", "password": "password123" }
-
Get User Profile
GET /api/v1/users/profile
- Headers:
Authorization: Bearer <token>
-
Update User Profile
PUT /api/v1/users/profile
- Headers:
Authorization: Bearer <token>
- Request Body:
{ "name": "John Doe", "email": "[email protected]", "password": "newpassword123" }
-
Get All Jobs
GET /api/v1/jobs
-
Get Job by ID
GET /api/v1/jobs/:id
-
Create Job
POST /api/v1/jobs
- Headers:
Authorization: Bearer <token>
- Request Body:
{ "title": "Software Engineer", "company": "Tech Co", "location": "Remote", "description": "Job description here..." }
-
Update Job
PUT /api/v1/jobs/:id
- Headers:
Authorization: Bearer <token>
- Request Body:
{ "title": "Updated Title", "company": "Updated Company", "location": "Updated Location", "description": "Updated description..." }
-
Delete Job
DELETE /api/v1/jobs/:id
- Headers:
Authorization: Bearer <token>
-
Apply for Job
POST /api/v1/jobs/:id/apply
- Headers:
Authorization: Bearer <token>
- Request Body:
{ "resume": "link_to_resume", "coverLetter": "cover letter text" }
-
Get Applications for Job
GET /api/v1/jobs/:id/applications
- Headers:
Authorization: Bearer <token>
We welcome contributions to enhance the project! To contribute, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature
- Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Thank you for checking out Jobify! We hope this project helps you in your journey to find exciting job opportunities. If you have any questions or feedback, feel free to reach out. Happy coding!