A full-stack MERN application that allows companies to register, verify their accounts, post job listings, and automate email notifications to candidates. This project demonstrates the use of modern web development techniques, including email automation using Nodemailer, user authentication with JWT, and a fully responsive frontend design.
Deployed Frontend on Vercel/Netlify
Deployed Backend on Render/Heroku
- Companies can register by providing essential details like email, password, and phone number.
- Email verification is required to activate the account.
- Login functionality with JWT-based authentication to ensure secure access.
- Auto-login upon successful registration.
- Authenticated companies can post job listings with job title, description, experience level, candidate emails, and more.
- Jobs are visible only to the posting company for privacy.
- Companies can send job notifications to candidates directly from the platform using Nodemailer.
- Emails include job details, sender information, and a personalized message.
- Secure logout by clearing JWT tokens.
Frontend:
- React.js
- React Router
- Axios
Backend:
- Node.js
- Express.js
- Nodemailer for Email Automation
Database:
- MongoDB (MongoDB Atlas)
Authentication:
- JWT (JSON Web Tokens)
git clone https://github.com/yourusername/job-posting-board.git
cd frontend
cd backend
npm install
-
Set up environment variables: Create a
.env
file in thebackend
directory with the following:MONGO_URI=<your-mongodb-uri> JWT_SECRET=<your-jwt-secret> EMAIL=<your-email> PASSWORD=<your-email-password>
-
Run the backend server:
npm start
cd ../frontend
npm install
- Run the React app:
npm run dev
-
Company Registration:
- Navigate to
/register
to create a company account. - A verification email will be sent to the registered email. Verify the account to activate it.
- Navigate to
-
Login:
- Once verified, login using
/login
to access the dashboard.
- Once verified, login using
-
Post a Job:
- After login, you can navigate to
/post-job
to post a new job listing.
- After login, you can navigate to
-
Send Job Emails:
- You can send job notifications via email to candidates from the job posting page.
Method | Endpoint | Description |
---|---|---|
POST | /api/register |
Register a new company |
POST | /api/login |
Login a company and generate JWT |
POST | /api/job |
Create a new job posting (protected route) |
POST | /api/send-email |
Send job notification emails to candidates |
GET | /api/verify-email/:id |
Verify email account |
├── job-board-client
│ ├── src
│ │ ├── components
│ │ ├── pages
│ │ ├── App.jsx
│ │ └── index.js
├── job-board-server
│ ├── controllers
│ ├── models
│ ├── routes
│ ├── app.js
│ └── server.js
├── README.md
└── .env