A full-featured job board platform built with Django REST Framework (DRF) and React, allowing users to post jobs, applying for positions, and manage applications.
- User Authentication with JWT
- Job posting and application system
- Email notifications for application status updates
- Admin panel for managing jobs and users
- Python 3.10+
- PostgreSQL or SQLite
- Redis (for caching and task queue)
- Clone the repository:
git clone https://github.com/beni-f/job-board-platform.git cd job-board-platform - Create a virtual environment and activate it
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables: Create a .env file in the ./app directory and add
DB_NAME= 'your_db_name' DB_USER = 'your_db_user' DB_PASSWORD = 'your_db_password' DB_HOST = 'localhost' DB_PORT = '5432' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = 'your_email@example.com' EMAIL_HOST_PASSWORD = 'your_email_password' DEFAULT_FROM_EMAIL = 'your_email@example.com'
- Apply migrations and create a superuser
python3 manage.py migrate python3 manage.py createsuperuser
- Run the server:
python3 manage.py runserver
POST /api/auth/login/- User loginPOST /api/auth/register/- User registrationPOST /api/auth/logout/- Logout
GET /api/jobs/- List all jobsPOST /api/jobs/create- Create a new job (Recruiter only)GET /api/jobs/{id}/- Retrieve a jobPUT /api/jobs/{id}/- Update a job (Recruiter of the job only)DELETE /api/jobs/{id}/- Delete a job (Recruiter of the job only)
GET /api/jobs/{job_id}/applications- List applications for a specific job (Recruiter of the job only)POST /api/jobs/{job_id}/applications/apply- Apply for a job (Job seeker only)GET /api/jobs/{job_id}/applications/{application_id}- Retrieve the job application (Recruiter of the job and the applier only)PUT /api/jobs/{job_id}/applications/{application_id}/update-status- Update application status (Recruiter of the job only)PUT /api/jobs/{job_id}/applications/{application_id}- Update application (Job applier only)
This project is licensed under the MIT license.