Skip to content

MicroPyramid/opensource-job-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source Job Portal

Codacy Badge
Build Status
Coverage Status

A fully-featured, open-source job-posting portal built with Django, offering unlimited free job listings, social authentication, and seamless integrations.

🔗 Documentation
Read the user guide and developer API docs on Read the Docs:
https://opensource-job-portal.readthedocs.io/en/latest/


Table of Contents

  1. Features
  2. Tech Stack
  3. Getting Started
  4. Usage
  5. Contributing
  6. License

Features

For Recruiters

  • Register via email/password or Google OAuth
  • Post, copy, deactivate, and manage job listings
  • Share jobs to Facebook, Twitter, and LinkedIn
  • Add “Walk-in” events with location via Google Maps integration

For Job Seekers / Portal Users

  • Real-time job alerts by email
  • Responsive “new mobile” design
  • Keyword-based and advanced search filters
  • Save favorite jobs and application history

Under the Hood

  • Full-text search powered by Elasticsearch
  • Asynchronous tasks via Redis + Celery
  • Caching with Memcached for blazingly fast page loads
  • RESTful JSON APIs for third-party integrations

Tech Stack

  • Backend: Python 3.x, Django
  • Frontend: HTML5, CSS3, Bootstrap, Less/Sass
  • Database: PostgreSQL
  • Search: Elasticsearch
  • Caching / Message Broker: Redis, Memcached
  • Containerization: Docker
  • CI/CD: Travis CI, Coveralls

Getting Started

Prerequisites

  • Ubuntu 20.04 (or compatible Linux distro)
  • Python 3.8+ & pip
  • PostgreSQL
  • Node.js & npm
  • Docker & Docker Compose
  • Ruby & gem (for Sass)

Installation

  1. System packages
    sudo apt update
    sudo apt install -y git postgresql python3-dev python3-venv build-essential      redis-server memcached npm ruby-full
  2. Node.js & Less
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt-get install -y nodejs
    sudo npm install -g less
  3. Sass compiler
    sudo gem install sass
  4. Docker (optional, for Elasticsearch)
    sudo apt install -y docker.io
    sudo usermod -aG docker $USER
    newgrp docker
    Run Elasticsearch:
    docker run -d --name elasticsearch      -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300      -e "discovery.type=single-node"      docker.elastic.co/elasticsearch/elasticsearch:7.17.6

Configuration

  1. Clone the repo:
    git clone https://github.com/MicroPyramid/opensource-job-portal.git
    cd opensource-job-portal
  2. Create and activate a virtual environment:
    python3 -m venv venv
    source venv/bin/activate
  3. Copy the example env file and generate a secret key:
    cp env.md .env
    sed -i 's/^SECRET_KEY=.*/SECRET_KEY="$(openssl rand -base64 50)"/' .env
  4. Install Python dependencies:
    pip install --upgrade pip
    pip install pipdeptree black pip-check
    pip install -r requirements.txt

Database Setup & Data Seeding

  1. Switch to the postgres user and set a password if needed:
    sudo -u postgres psql
    ALTER USER postgres PASSWORD 'your_secure_password';
    \q
  2. Create the database and import schema/data:
    sudo -u postgres createdb peeljobs
    sudo -u postgres psql peeljobs < init_db/db_init.sql
  3. Load initial fixtures:
    python manage.py migrate
    for fixture in industries qualification skills countries states cities; do
      python manage.py loaddata $fixture
    done

Running the App

  1. Build front-end assets:
    npm run build
  2. Update the Elasticsearch index:
    python manage.py update_index
  3. Create an admin user:
    python manage.py createsuperuser
  4. Start the development server:
    python manage.py runserver 0.0.0.0:8000

Visit http://localhost:8000 to see the portal in action!


Usage

  • Post a Job: Log in as a recruiter → Dashboard → “Post New Job”
  • Search Jobs: Enter keywords or filters on the homepage
  • Receive Alerts: Opt in for email notifications on your profile
  • Manage Listings: Copy, deactivate, or edit existing job posts

For detailed API docs and integration guides, see the Read the Docs site:
https://opensource-job-portal.readthedocs.io/en/latest/


Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/awesome-feature)
  3. Commit your changes (git commit -m "Add awesome feature")
  4. Push to your fork (git push origin feature/awesome-feature)
  5. Open a Pull Request

Please run black . and pipdeptree before submitting. All new features should include tests.


License

This project is licensed under the MIT License. See LICENSE for details.


Happy coding! 🚀