shovo4 / JobCheckmate

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JOB CHECK MATE

JOB CHECK MATE is a comprehensive job tracking application built with Node.js, Express.js, MongoDB, and a Next.js frontend. It allows users to manage their job applications effectively by tracking different positions they have applied for across various companies. With features such as user authentication, job status updates, secure data management, and a user-friendly interface, JOB CHECK MATE aims to streamline the job search and application process for job seekers.

Features

  • User Authentication: Secure login and registration system to manage individual user accounts.
  • Job Management: Users can add, update, delete, and view jobs they have applied for, including company name, position, and current status (e.g., interview, declined, pending).
  • Secure Data Handling: Passwords are hashed using bcrypt, and JSON Web Tokens (JWT) are used for secure user authentication on the backend. The frontend securely stores and manages access tokens for API requests.
  • Data Validation: Input validation on both the client and server sides to ensure that the data provided by the users meets the application requirements.
  • Responsive Design: The frontend is built with a mobile-first approach, ensuring that the application is accessible on various devices and screen sizes.

Technologies Used

  • Backend: Node.js, Express.js
  • Database: MongoDB with Mongoose for object data modeling (ODM)
  • Security: bcryptjs, JSON Web Token (JWT), helmet, cors, xss-clean
  • Frontend: Next.js, React.js, Tailwind CSS for styling
  • API Documentation: Swagger UI

Getting Started

Prerequisites

  • Node.js
  • npm (Node Package Manager)
  • MongoDB

Installing

Clone the repository:

git clone https://github.com/shovo4/JobCheckmate.git

Install the backend dependencies:

Navigate to the project directory:

cd JOBCHECKMATE
npm install

Set up environment variables for the backend:

Create a .env file in the root directory of the backend part and add the following variables:

  env
  Copy code
  PORT=8080
  MONGO_URI=your_mongodb_uri
  JWT_SECRET=your_jwt_secret
  JWT_LIFETIME=24h

Install the frontend dependencies:

cd my-app
npm install

Start the backend server:

In the backend directory:

npm start
The server should now be running on http://localhost:8080.

Start the frontend development server:

In the frontend directory:

npm run dev
Navigate to http://localhost:3000 to view the application.

Usage

  • Registration: Users can create a new account by navigating to /register and entering their name, email, and password.

  • Login: Users can log in by navigating to / (the homepage) and entering their email and password. Upon successful login, they will be redirected to the dashboard where they can manage their job applications.

  • Add Job: From the dashboard, users can add new job applications by providing the company name and position.

  • Edit/Delete Job: Users can also edit or delete existing job applications directly from the dashboard.

API Endpoints

The backend provides several RESTful endpoints:

  • /api/auth/register - POST: Register a new user.
  • /api/auth/login - POST: Login a user and return a token.
  • /api/jobs - GET: Fetch all jobs for the logged-in user.
  • /api/jobs - POST: Create a new job entry.
  • /api/jobs/:id - GET: Fetch a single job by its ID.
  • /api/jobs/:id - PATCH: Update a job by its ID.
  • /api/jobs/:id - DELETE: Delete a job by its ID.

Documentation

For more details on API endpoints and their usage, please refer to the Swagger documentation available at /api-docs once the server is running.

Screenshots

Documentation LogIn Screen Dashboard

Contributors

This project owes its success to the hard work and dedication of its contributors:

  • Iris Du: Frontend Developer Iris brought the user interface to life with her expertise in Next.js, focusing on crafting a seamless and responsive design.

  • Shovo: Backend Developer & Database Management Shovo was instrumental in developing the robust backend with Node.js and Express.js, and managing the MongoDB database, ensuring data integrity and security.

Community Acknowledgments:

A heartfelt thank you to the broader Node.js, Express.js, MongoDB, and Next.js communities. Your support, resources, and guidance have been invaluable in the development of this project..

About


Languages

Language:JavaScript 98.3%Language:CSS 1.7%Language:Procfile 0.0%