Skip to content

Afolabismart8/CodeAlpha_Job-Board-Platform-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Job Board Platform API

A production-style backend API for a Job Board Platform built with Node.js, Express.js, and MongoDB. The platform supports authentication, role-based access control, job management, job applications, resume uploads, and admin management features.


πŸš€ Features

πŸ” Authentication & Authorization

  • User registration and login
  • JWT authentication
  • Protected routes
  • Role-based access control
    • Admin
    • Employer
    • Candidate

πŸ’Ό Job Management

  • Employers can create job listings
  • Get all jobs with:
    • pagination
    • filtering
    • keyword search
  • Get single job details

πŸ“„ Job Applications

  • Candidates can apply for jobs
  • Prevent duplicate applications
  • Employers can:
    • view applications
    • update application status

Application statuses:

  • Pending
  • Reviewed
  • Shortlisted
  • Rejected
  • Accepted

πŸ“ Resume Upload

  • Resume upload using Multer
  • Local file storage
  • Candidate resume management

πŸ› οΈ Admin Features

  • View all users
  • View all jobs
  • Application statistics
  • User and job management

🧰 Tech Stack

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • JWT Authentication
  • Multer
  • bcryptjs
  • dotenv

πŸ“‚ Project Structure

src/
β”œβ”€β”€ controllers/
β”œβ”€β”€ middlewares/
β”œβ”€β”€ models/
β”œβ”€β”€ routes/
β”œβ”€β”€ uploads/
β”œβ”€β”€ utils/
β”œβ”€β”€ config/
└── server.js

βš™οΈ Installation & Setup

1. Clone Repository

git clone <your-repository-url>

2. Navigate Into Project

cd job-board-platform

3. Install Dependencies

npm install

4. Create Environment Variables

Create a .env file in the root directory:

PORT=8080
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key

5. Start Development Server

npm run dev

Server runs on:

http://localhost:8080

πŸ“Œ API Endpoints

πŸ” Authentication

Register User

POST /api/register

Login User

POST /api/login

πŸ’Ό Jobs

Create Job

POST /api/

Get All Jobs

GET /api/

Get Single Job

GET /api/:id

Apply For Job

POST /api/:id/apply

Get Job Applications

GET /api/:id/applications

Update Application Status

PATCH /api/applications/:id/status

πŸ“ Resume Upload

Upload Resume

POST /api/upload-resume

πŸ› οΈ Admin

Get Users

GET /api/users

Get Jobs

GET /api/jobs

Get Platform Statistics

GET /api/stats

πŸ”Ž Job Search & Filters

Supported query parameters:

GET /api/jobs?location=Lagos
GET /api/jobs?jobType=full-time
GET /api/jobs?category=backend
GET /api/jobs?search=node
GET /api/jobs?page=1&limit=10

πŸ”’ Security Features

  • Password hashing with bcryptjs
  • JWT authentication
  • Protected API routes
  • Role-based authorization
  • Duplicate application prevention

πŸ§ͺ Testing

API testing was completed using:

  • Postman

Tested features include:

  • Authentication
  • Protected routes
  • Job CRUD operations
  • Resume uploads
  • Job applications
  • Application status updates
  • Admin endpoints

πŸ“ˆ Future Improvements

  • Cloudinary/AWS S3 resume storage
  • Email notifications
  • Real-time messaging
  • Advanced analytics dashboard
  • Docker support
  • CI/CD integration

πŸ‘¨β€πŸ’» Author

Built by Yusuf Afolabi


πŸ“„ License

This project is open-source and available for learning and development purposes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors