CareerLink
Welcome to CareerLink, a premier job posting platform designed to connect talented individuals with exciting career opportunities. This platform has been meticulously developed as part of a comprehensive project, showcasing expertise and innovation in the field of job searching and career development.
CareerLink offers a user-friendly experience, allowing individuals to explore job listings, apply for positions, and stay informed about the latest career trends and opportunities. Users can dive into a dynamic and engaging community, sharing insights and experiences to foster professional growth.
- HTML
- CSS
- JavaScript
- Jinja Flask
- Python
- Digital Ocean server for hosting
- Nginx web server for handling HTTP requests
- Gunicorn application server for serving Flask application
- Certbot for SSL encryption
- UFW firewall for security
- MYSQL: Main database system for storing and managing data
- Alembic: For database Migration
The architecture of CareerLink is carefully crafted, considering the best approach to provide a seamless user experience. The project began with the development of static pages, allowing for a clear visualization of the front-end, which, in turn, facilitated the back-end development process.
- alembic: Contains database migration scripts
- Forms.py: Contains Flask forms for handling user input across the application
- app.py: Main application module for my Flask application. Sets up Flask and provides utility for Flask shell
- Python Modules:
- jobs.py: Manages job-related logic, including functionalities such as job creation, editing, and deletion.
- application.py: Defines application process and defined inputs.
- base_model.py: Provides Flask forms for handling user input across the application.
- __init__.py: Marks the 'app' directory as a Python package, facilitating modular organization and importability.
- job_history.py: Defines database models related to job history, capturing historical data or changes related to jobs.
- recruiter.py: Handles views specific to recruiters, managing their interactions with the platform.
- jobseeker.py: Handles views specific to job seekers, handling their interactions and experiences on the platform.
- static and templates: Flask uses the 'static' folder to serve static assets (CSS, JS, and images) and the 'templates' folder for HTML templates.
- Main static files that power our application
- application_form.html: Provides the application form for user inputs.
- 403.html: Custom error page for forbidden access.
- 404.html: Custom error page for page not found.
- 500.html: Custom error page for internal server errors.
- about.html: Page providing information about the application or the team behind it.
- applied_jobs.html: Displays a list of jobs to which a user has applied.
- contact.html: Page with contact information or a form for user inquiries.
- job_history.html: Presents a user's job application history.
- job_posting_form.html: Form for recruiters to post new job opportunities.
- job_details.html: Displays detailed information about a specific job posting.
- joblists.html: Lists available job opportunities.
- logIn.html: User login page.
- recruiter_signup.html: Signup form for recruiters.
- posted_jobs.html: Displays jobs posted by a recruiter.
- userDashboard.html: Dashboard for registered users.
- headerContent.html: Common header content for various pages.
- jobseekerProfile.html: Displays the profile of a job seeker.
- recruiterProfile.html: Displays the profile of a recruiter.
- recruiterDashboard.html: Dashboard for recruiters.
- jobseeker_signup.html: Signup form for job seekers.
- recruiterProfile_backup.html: A backup or alternative version of the recruiter profile page.
- tests.py: Test cases for the Flask application
To set up and run the CareerLink project locally, follow these steps:
- Clone the repository
- Navigate to the project directory
- Install the required dependencies
- Run the Flask application flask run or flask run --debug
- Access the application http://127.0.0.1:5000/
Now you have the CareerLink project up and running locally. Feel free to explore, make changes, and contribute to the project!
CareerLink is hosted on a .tech domain. Purchase a domain name on .tech and add A records pointing to your server's IP address.
CareerLink was deployed on a Digital Ocean server. Follow these steps for deployment.
- Set up a Digital Ocean Droplet:
- Create a new droplet
- Choose a distribution (e.g., Ubuntu)
- Set up SSH access and log in to your Droplet from your local terminal
- Create a less privileged user and give them sudo privileges
- Set up SSH for the user by adding your public key into .ssh
- Exit and SSH into the droplet as the less privileged user
- Secure your server with UFW
- Clone the repository
- Navigate to the project directory
- Install dependencies
- Configure the application
- Install, set up MYSQL and upgrade the database
- Install and configure Nginx
- Install and configure Gunicorn
- Setup SSL with Certbot
- Visit your domain
- The Flask Mega Tutorial
- JavaScript Tutorial
- Digital Ocean Nginx installation
- Digital Ocean Server setup
- Flask Documentation
- JavaScript Tutorial
I want to express my gratitude to the following individuals who greatly contributed to the development of the CareerLink project:
- Collaborator, Eric Ubaga
- Collaborator, Simeon Leo
Thank You all