Skip to content

About

I have done some backend project using express.js or some node.js by CodeAlpha.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Job Board Platform Backend

Express.js backend for the assignment shown in the image: employers can post jobs, candidates can upload resumes and apply, applications can be tracked, employers receive notifications, and admins can inspect users and reports.

Tech Stack

  • Node.js + Express.js
  • Multer for resume uploads
  • JSON file storage for easy local setup
  • Manual model validation and service/repository layers
  • REST API with search filters, pagination, status updates, notifications, and reports

Quick Start

cd outputs/job-board-express-backend
npm install
copy .env.example .env
npm run dev

The API runs at:

http://localhost:5000/api

Health check:

curl http://localhost:5000/health

Project Structure

src/
  app.js
  server.js
  config/
  controllers/
  data/
  database/
  middleware/
  models/
  routes/
  services/
  utils/
uploads/
scripts/

Data Models

Employer

{
  id,
  companyName,
  contactName,
  email,
  phone,
  website,
  location,
  description,
  createdAt,
  updatedAt
}

Candidate

{
  id,
  fullName,
  email,
  phone,
  location,
  skills,
  experienceYears,
  createdAt,
  updatedAt
}

Job Listing

{
  id,
  employerId,
  title,
  description,
  location,
  jobType,
  workplaceType,
  salaryMin,
  salaryMax,
  skillsRequired,
  status,
  postedAt,
  closingDate,
  createdAt,
  updatedAt
}

Resume

{
  id,
  candidateId,
  originalName,
  storedName,
  mimeType,
  size,
  path,
  parsedSkills,
  uploadedAt,
  updatedAt
}

Job Application

{
  id,
  jobId,
  candidateId,
  resumeId,
  coverLetter,
  status,
  statusHistory,
  appliedAt,
  updatedAt
}

Notification

{
  id,
  employerId,
  applicationId,
  type,
  message,
  read,
  createdAt
}

API Endpoints

Employers

  • POST /api/employers
  • GET /api/employers
  • GET /api/employers/:id
  • PATCH /api/employers/:id
  • DELETE /api/employers/:id
  • GET /api/employers/:employerId/notifications

Candidates

  • POST /api/candidates
  • GET /api/candidates
  • GET /api/candidates/:id
  • PATCH /api/candidates/:id
  • DELETE /api/candidates/:id
  • GET /api/candidates/:candidateId/resumes

Jobs

  • POST /api/jobs
  • GET /api/jobs
  • GET /api/jobs/:id
  • PATCH /api/jobs/:id
  • DELETE /api/jobs/:id

Job search supports:

q, location, jobType, workplaceType, skills, salaryMin, salaryMax, employerId, status, page, limit, sort

Example:

curl "http://localhost:5000/api/jobs?q=node&location=remote&skills=express,javascript&salaryMin=50000"

Resumes

  • POST /api/resumes/upload
  • GET /api/resumes/:id
  • DELETE /api/resumes/:id

Upload example:

curl -X POST http://localhost:5000/api/resumes/upload \
  -F "candidateId=cand_1" \
  -F "parsedSkills=Node.js,Express,SQL" \
  -F "resume=@resume.pdf"

Applications

  • POST /api/applications
  • GET /api/applications
  • GET /api/applications/:id
  • GET /api/applications/:id/timeline
  • PATCH /api/applications/:id/status

Apply example:

curl -X POST http://localhost:5000/api/applications \
  -H "Content-Type: application/json" \
  -d "{\"jobId\":\"job_1\",\"candidateId\":\"cand_1\",\"resumeId\":\"res_1\",\"coverLetter\":\"I am interested.\"}"

Status update example:

curl -X PATCH http://localhost:5000/api/applications/app_1/status \
  -H "Content-Type: application/json" \
  -d "{\"status\":\"shortlisted\",\"note\":\"Strong Node.js background\"}"

Notifications

  • GET /api/employers/:employerId/notifications
  • PATCH /api/notifications/:id/read

Admin And Reports

  • GET /api/admin/stats
  • GET /api/admin/users
  • GET /api/admin/reports/applications
  • GET /api/admin/reports/jobs

Notes

The project uses a JSON datastore so it is easy to run and inspect for coursework. In production, the repository layer can be replaced with MongoDB, PostgreSQL, Prisma, Sequelize, or another database without changing the controller API shape.

About

I have done some backend project using express.js or some node.js by CodeAlpha.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages