Welcome to the Job Board Platform, a sophisticated full-stack web application designed to facilitate seamless interaction between employers and candidates in the recruitment process. This comprehensive platform boasts a range of features tailored to meet the diverse needs of both employers and job seekers. Developed with cutting-edge technologies, the Job Board Platform is poised to revolutionize the way recruitment is conducted, providing efficiency, security, and accessibility.
- User Authentication: Robust authentication mechanisms ensure secure user registration and login.
- Role-Based Access Control: Employers and candidates enjoy distinct functionalities tailored to their roles.
- Job Listings: Employers can effortlessly create, update, and manage job listings.
- Job Applications: Candidates have the flexibility to browse job listings, apply for positions, and upload resumes.
- Dashboards: Dedicated dashboards empower employers and candidates to efficiently manage listings and applications.
- Notifications: Real-time email notifications keep users informed about important updates and events.
- Responsive Design: A sleek and responsive user interface ensures optimal user experience across devices.
The Job Board Platform leverages a powerful combination of modern technologies to deliver exceptional performance and reliability:
- Frontend: Next.js, TypeScript, Tailwind CSS
- Backend: Node.js
- Database: PostgreSQL (Prisma ORM)
- Authentication: JSON Web Tokens (JWT)
- Testing: Jest
- Code Quality: ESLint
- Git Hooks: Husky
- Commit Convention: Commitizen
Ensure you have the following prerequisites installed on your system:
- Node.js (v14 or higher)
- npm or Yarn
- PostgreSQL
- Git
-
Clone the repository:
git clone https://github.com/badhon252/talentflow.git
cd job-board-platform
Install dependencies:
npm install
Set up environment variables: Create a .env file in the root directory with the following variables:
makefile
JWT_SECRET=your_jwt_secret ```
Set up the database:
```npx prisma migrate dev --name init
npx prisma db seed```
Start the development server:
``` npm run dev```
The application should now be running on http://localhost:3000/
##Project Structure
The project adheres to a structured organization to ensure maintainability and scalability:
```
job-board-platform/
├── prisma/ # Prisma schema and migrations
├── public/ # Public assets
├── src/ # Source files
│ ├── components/ # React components
│ ├── pages/ # Next.js pages
│ ├── styles/ # CSS styles
│ ├── utils/ # Utility functions
│ ├── hooks/ # Custom hooks
│ ├── prisma/ # Prisma client
│ └── ... # Other directories and files
├── tests/ # Test files
├── .eslintrc.json # ESLint configuration
├── jest.config.js # Jest configuration
├── next.config.js # Next.js configuration
└── ... # Other root-level directories and files
```
###Usage
Register and Login:
Navigate to the registration page to create an account as an employer or candidate.
Log in to access the respective dashboards.
Employer Dashboard:
Post new job listings, edit existing ones, and manage applications effortlessly.
Candidate Dashboard:
Browse job listings, apply for positions, and monitor application status seamlessly.
Notifications:
Stay updated with real-time email notifications for important updates and events.
##Testing
Unit Tests
Run unit tests to ensure code integrity and reliability:
```
npm run test
Deplo1yment Vercel (Frontend and Backend)
Deploy the application with ease using Vercel:
Login to Vercel and create a new project.
Import your GitHub repository and configure the project settings.
Deploy the application effortlessly.
Demo and Screenshots Live Demo
Experience the Job Board Platform firsthand by exploring our live demo. Screenshots
Get a glimpse of the platform's sleek interface and powerful features through our curated screenshots.
##API Documentation
Endpoints
###User Authentication
POST /api/auth/login - Login a user ```
Job Listings
``` GET /api/jobs - Retrieve all job listings
POST /api/jobs - Create a new job listing (Employer only)
PUT /api/jobs/:id - Update a job listing (Employer only)
DELETE /api/jobs/:id - Delete a job listing (Employer only)```
Job Applications
``` POST /api/jobs/:id/apply - Apply for a job (Candidate only)
GET /api/jobs/:id/applications - Retrieve applications for a job (Employer only)```
For detailed API documentation, please refer to the API Docs.
Common Issues and Troubleshooting
Address common issues with ease using our troubleshooting guide:
Database Connection Error:
Ensure your PostgreSQL URI is correct and the database server is running.
Environment Variables Not Loaded:
Double-check the .env file for correct variable names and values.
Port Conflicts:
Ensure that the ports defined in your .env file are not in use by other applications.
##Contributing
We welcome contributions from the community to enhance the Job Board Platform. Follow these steps to contribute:
Fork the repository.
```Create a new branch (git checkout -b feature/your-feature).
Commit your changes (git commit -am 'Add new feature').
Push to the branch (git push origin feature/your-feature).
Create a new Pull Request.
```
##License
The Job Board Platform is licensed under the MIT License. See the LICENSE file for more information.
Contact
For inquiries or feedback, please contact:
-Khalid Hossain Badhon
-Email: [email protected]
-GitHub: badhon252