CareerHorizon is a Django-based job posting platform where HR professionals can post jobs, and candidates can view and apply for these opportunities. The platform aggregates job listings across various companies and websites in Azerbaijan, offering a centralized location for job seekers.
- HR Features:
- Post and manage job listings
- View and download applicants for specific job posts
- Search and filter job posts
- Candidate Features:
- Browse and apply for job listings
- Upload resumes for job applications
- Parse CVs and compare with job descriptions
- Admin Features:
- Manage users, job posts, and applications through Django's admin interface
- Technology Stack:
- Backend: Django, PostgreSQL
- Frontend: HTML, CSS, Bootstrap, JavaScript
- File Storage: DigitalOcean Spaces
-
Clone the repository:
git clone https://github.com/Ismat-Samadov/eploy.git cd CareerHorizon
-
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\\Scripts\\activate`
-
Install the required packages:
pip install -r requirements.txt
-
Set up the environment variables by creating a
.env
file:DATABASE_URL=your-database-url SECRET_KEY=your-secret-key DEBUG=True # Add other environment variables as needed...
-
Run the initial migrations:
python manage.py makemigrations python manage.py migrate
-
Create a superuser to access the Django admin:
python manage.py createsuperuser
-
Start the development server:
python manage.py runserver
-
Access the application:
- Application:
http://127.0.0.1:8000/
- Admin interface:
http://127.0.0.1:8000/admin/
- Application:
- HR Users:
- Log in to post jobs, view job applications, and download applicant data as Excel files.
- Candidates:
- Browse job listings, apply to jobs, and upload resumes.
For testing purposes, you can populate the database with fake data:
python manage.py populate_jobs
CareerHorizon/
├── jobsite/ # Main project directory
├── jobs/ # App directory for jobs functionality
│ ├── models.py # Models for JobPost, JobApplication, etc.
│ ├── views.py # Views for job listings, applications, etc.
│ ├── forms.py # Forms for creating/editing jobs and applications
│ ├── urls.py # URL routing for jobs app
│ ├── templates/ # HTML templates
│ └── static/ # Static files (CSS, JavaScript, Images)
└── users/ # App directory for user management
├── models.py # CustomUser model with roles
├── views.py # Views for user registration, login, etc.
├── forms.py # Forms for user registration, login, etc.
├── urls.py # URL routing for users app
├── templates/ # HTML templates
└── static/ # Static files (CSS, JavaScript, Images)
+-------------------+ +-------------------+ +-------------------+
| Frontend | | Backend | | Database |
+-------------------+ +-------------------+ +-------------------+
| - HTML/CSS | <----> | - Django Views | <----> | - PostgreSQL |
| - Bootstrap | | - Models | | |
| - JavaScript | | - Forms | | |
+---------+---------+ +---------+---------+ +---------+---------+
| | |
| HTTP Requests | Process Requests |
| | Interact with Database |
v v v
+-------------------+ +-------------------+ +-------------------+
| Templates | | Views | | Models |
+-------------------+ +-------------------+ +-------------------+
| - base.html | <----> | - job_list | <----> | - CustomUser |
| - register.html | | - post_job | | - JobPost |
| - login.html | | - apply_job | | - JobApplication |
| - job_list.html | | - download_xlsx | | |
+-------------------+ +-------------------+ +-------------------+
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature-branch
) - Open a pull request