Skip to content

Sumshi/Portfolio-CareerLink

Repository files navigation

CareerLink

Discover Exciting Opportunities


CareerLink

Home Picture


Introduction

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.

Technologies Used

Frontend:

  • HTML
  • CSS
  • JavaScript

Backend:

  • Jinja Flask
  • Python

Hosting and Devops

  • 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

Database:

  • MYSQL: Main database system for storing and managing data
  • Alembic: For database Migration

Architecture

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.

Configuration

  1. alembic: Contains database migration scripts
  2. Forms.py: Contains Flask forms for handling user input across the application
  3. app.py: Main application module for my Flask application. Sets up Flask and provides utility for Flask shell

Application Logic (Models Folder)

  1. 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.

Application Logic (web_static/templates Folder)

  1. static and templates: Flask uses the 'static' folder to serve static assets (CSS, JS, and images) and the 'templates' folder for HTML templates.
  2. 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.

Testing

  • tests.py: Test cases for the Flask application

Getting Started

To set up and run the CareerLink project locally, follow these steps:

  1. Clone the repository
  2. Navigate to the project directory
  3. Install the required dependencies
  4. Run the Flask application
  5. flask run or flask run --debug
  6. Access the application
  7. 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!

Deployment and Hosting

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.

  1. 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
  2. Secure your server with UFW
  3. Clone the repository
  4. Navigate to the project directory
  5. Install dependencies
  6. Configure the application
  7. Install, set up MYSQL and upgrade the database
  8. Install and configure Nginx
  9. Install and configure Gunicorn
  10. Setup SSL with Certbot
  11. Visit your domain

Resources:

  1. The Flask Mega Tutorial
  2. JavaScript Tutorial
  3. Digital Ocean Nginx installation
  4. Digital Ocean Server setup
  5. Flask Documentation
  6. JavaScript Tutorial

I want to express my gratitude to the following individuals who greatly contributed to the development of the CareerLink project:

  1. Collaborator, Eric Ubaga
  2. Collaborator, Simeon Leo

Thank You all

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •