Platform Overview: Workpal serves as a versatile platform connecting job seekers with potential employers or clients.
Job Listings and Application Functionality: Users can both explore diverse job listings and seamlessly apply for various opportunities. Employers can post detailed job openings, outlining requirements and responsibilities to attract suitable candidates, while job seekers can effortlessly browse and submit applications through the platform's interface.
Project Listings: An additional feature offered by Workpal is the ability to create project listings. Users can outline specific tasks they need to be completed, providing a flexible avenue for hiring professionals on a project basis without the commitment of a full-time salary.
Conclusion: Workpal's multifaceted approach provides a dynamic environment for both job seekers and employers. With its diverse range of features, the platform facilitates seamless connections and collaborations in the job market.
Python is a high-level, interpreted programming language known for its simplicity and readability, making it ideal for beginners and experienced developers alike. It supports multiple programming paradigms and has a vast ecosystem of libraries and frameworks for various applications, including web development, data analysis, machine learning, and automation.
Git is a distributed version control system designed for tracking changes in source code during software development. It allows multiple developers to collaborate on projects efficiently by providing tools for branching, merging, and versioning code.
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It provides built-in features for authentication, URL routing, template engine, and database management, making it ideal for building web applications quickly and efficiently.
Docker is a platform for developing, shipping, and running applications using containerization technology. It allows developers to package their applications and dependencies into standardized units called containers, providing consistency across different environments and simplifying deployment processes.
PostgreSQL, often referred to simply as "Postgres," is a free and open-source relational database management system known for its reliability, extensibility, and powerful features. It supports a wide range of advanced functionalities, including ACID compliance, data integrity, and concurrency control, making it a popular choice for both small-scale projects and large-scale enterprise applications.
HTML is the foundation of web development, allowing developers to structure content and create interactive web pages using tags and attributes. It provides a standardized way to format text, images, links, and other elements on the internet.
CSS, or Cascading Style Sheets, is a styling language used to control the presentation and layout of HTML documents. It enables developers to customize the appearance of web pages, including aspects such as fonts, colors, spacing, and positioning, enhancing the visual appeal and user experience of websites.
JavaScript (JS) is a versatile programming language primarily used for adding interactivity and dynamic behavior to web pages. It enables developers to manipulate HTML and CSS, handle events, create animations, and interact with the browser's Document Object Model (DOM), making it a fundamental tool for modern web development.
To utilise this Django project, follow the steps below to set it up on your system.
Guide
Install Python: To run the project, ensure Python is installed on your machine. Although Python comes pre-installed on many Linux distributions, the version may vary depending on the distribution and operating system version. If Python is not installed, you can download it from here.
Confirm Python installation: To confirm the successful installation of Python, run the following command in your command line interface (CMD/Terminal...).
python3 --version
Please note the potential variations in the command based on how Python was installed on your system: some commands may begin with python
, others with python3
, and yet others with py
. Despite the differences in reference, they all refer to the same command.
Install postgres: Download the installer from the PostgreSQL website and follow the installation instructions
Confirm PostgreSQL installation: To validate the successful installation of PostgreSQL, execute the subsequent command within your command line interface (CLI), whether it's CMD or Terminal.
postgres --version
git clone https://github.com/username/repository.git
Replace https://github.com/username/repository.git
with the HTTPS URL you copied from GitHub.
git clone ssh://git@github.com/username/repository.git
Substitute ssh://git@github.com/username/repository.git
with the SSH URL you copied from GitHub. For instance:
python3 -m venv ./venv
source venv/bin/activate
pip install -r requirements.txt
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'myprojectdb', # The name of your database
'USER': 'myprojectuser', # The name of your user or the default 'postgres' user
'PASSWORD': 'password', # The password associated with your account, which was set up during the PostgreSQL installation.
'HOST': 'localhost', # Or the IP address of your PostgreSQL server
'PORT': '5432', # Default PostgreSQL port
}
}
Run makemigrations: To check any changes in the defined models, execute the following command:
python manage.py makemigrations
Run migrate:To apply the pending database schema changes defined in migration files.
python manage.py migrate
Run the application: To execute the application, navigate to its directory in the command-line interface and run the appropriate command specified in the project's documentation. This command starts the app
python manage.py runserver 8080
The listings manager is crucial for the company's image, with authority over website content. They manage listings, including job offers, with the power to edit, delete, or post new ones.
The application moderator decides on applicant eligibility for company positions, with the authority to accept or reject submissions based on criteria.
The rights manager grants permissions to group associates, allowing them to manage the company's website, including content, administration, and other necessary tasks for the online presence.
The associate manager decides on individuals' affiliation with the company, managing their inclusion or exclusion from the company's network.
Required Permissions | Methods | URL | NAME |
---|---|---|---|
GET | home | ||
GET, POST | accounts/sign_in | sign_in | |
GET, POST | accounts/sign_up | sign_up | |
login_required | GET | accounts/sign_out | sign_out |
login_required, adjudicate_application | POST | applications/accept/ |
accept_application |
login_required, adjudicate_application | POST | applications/reject/ |
reject_application |
login_required | GET | applications/details/job_offer/ |
job_offer_application_details |
login_required | GET | applications/details/project/ |
project_application_details |
login_required | GET, POST | applications/add/job_offer/ |
create_job_offer_application |
login_required | GET, POST | applications/add/project/ |
create_project_application |
login_required | GET | dashboard/ | dashboard |
login_required | GET | dashboard/projects/ | user_projects |
login_required | GET | dashboard/job_offers/ | user_job_offers |
login_required | GET | dashboard/companies/ | user_companies |
login_required | GET | dashboard/associates | user_associates |
login_required | GET, POST | dashboard/projects/add | create_project |
login_required | GET, POST | dashboard/projects/edit/ |
edit_project |
login_required | POST | dashboard/projects/delete/ |
delete_project |
login_required, add_joboffer | GET, POST | dashboard/job_offers/add/ | create_job_offer |
login_required, change_joboffer | GET, POST | dashboard/job_offers/edit/ |
edit_job_offer |
login_required, delete_joboffer | POST | dashboard/job_offers/delete/ |
delete_job_offer |
login_required | GET, POST | dashboard/companies/add | create_company |
login_required, change_company | GET, POST | dashboard/companies/edit/ |
edit_company |
login_required, delete_company | POST | dashboard/companies/delete/ |
delete_company |
login_required, | GET, POST | dashboard/companies/add/ci= |
create_association |
GET | projects/ | projects_catalog | |
GET | projects/ |
project_detail | |
GET | job_offers/ | job_offers_catalog | |
GET | job_offers/ |
job_offer_detail | |
GET | listings/ |
listings_catalog | |
GET | listings/search/ | listings_catalog_search | |
login_required, verify_associate | POST | companies/accept_association/ |
accept_association_request |
login_required, verify_associate | POST | companies/reject_association/ |
reject_association_request |
GET | companies/search/ | search_company | |
login_required, give_rights | GET | permisssions/make_application_moderator/ |
make_application_moderator |
login_required, give_rights | GET | permissions/make_association_moderator/ |
make_association_moderator |
login_required, give_rights | GET | permissions/make_rights_manager/ |
make_rights_manager |
login_required, give_rights | GET | permissions/make_listings_manager/ |
make_listings_manager |