Skip to content

davishkar/SmartHire

Repository files navigation

SmartHire

SmartHire is a Flask-based job portal for job seekers, employers, and administrators. It supports user registration and login, job posting, job search, applications, applicant pipelines, interviews, company pages, profile connections, chat, analytics, and CSV reports.

Features

  • Role-based dashboards for admins, employers, and job seekers
  • Job browsing, filtering, detail pages, and applications
  • Employer job posting, applicant management, status updates, and interview scheduling
  • Job seeker profiles with skills, experience, education, applications, and interviews
  • Company pages with follow/unfollow support
  • Public profiles, connections, endorsements, and messaging
  • Admin views for users, jobs, applications, categories, and analytics
  • CSV reports for users, jobs, applications, and job applicants

Tech Stack

  • Python
  • Flask
  • Flask-SQLAlchemy
  • Flask-Login
  • MySQL
  • PyMySQL

Project Structure

SmartHire/
+-- app/
|   +-- admin/        # Admin dashboard and management routes
|   +-- auth/         # Login, registration, logout
|   +-- chat/         # Conversations and messages
|   +-- company/      # Company pages and followers
|   +-- employer/     # Employer dashboard, jobs, applicants, interviews
|   +-- main/         # Home, job listing, job details
|   +-- profile/      # Public profiles, connections, endorsements
|   +-- reports/      # CSV report exports
|   +-- seeker/       # Seeker dashboard, profile, applications, interviews
|   +-- templates/    # Jinja templates
|   +-- __init__.py   # Flask app factory and blueprint registration
|   +-- models.py     # SQLAlchemy models
+-- config.py         # App configuration
+-- requirements.txt  # Python dependencies
+-- run.py            # Development entry point
+-- seed.py           # Demo data reset/seed script
+-- smarthire_import.sql

Prerequisites

  • Python 3.10 or newer
  • MySQL server, for example through XAMPP
  • A MySQL database named smarthire

Setup

  1. Create and activate a virtual environment.
python -m venv venv
.\venv\Scripts\Activate.ps1
  1. Install dependencies.
pip install -r requirements.txt
  1. Create the database in MySQL.
CREATE DATABASE smarthire;
  1. Configure database access.

By default, config.py uses:

mysql+pymysql://root:@localhost/smarthire

To override it, set DATABASE_URL before running the app:

$env:DATABASE_URL = "mysql+pymysql://user:password@localhost/smarthire"

You can also override the Flask secret key:

$env:SECRET_KEY = "your-secret-key"

Run the App

python run.py

The app will create missing tables automatically, then start the Flask development server. Open the URL shown in the terminal, usually:

http://127.0.0.1:5000

Seed Demo Data

To reset all tables and load demo data:

python seed.py

This script drops existing tables before recreating them, so use it only for local development or demos.

Sample seeded accounts:

Role Email Password
Admin admin@smarthire.com admin123
Employer tech@company.com employer123
Seeker john@seeker.com seeker123

Main Routes

Area Route
Home /
Jobs /jobs
Login /auth/login
Register /auth/register
Admin dashboard /admin/dashboard
Employer dashboard /employer/dashboard
Seeker dashboard /seeker/dashboard
Chat inbox /chat/inbox
Reports /reports/applications, /reports/jobs, /reports/users

Notes

  • run.py is intended for local development.
  • The app expects a running MySQL server and a smarthire database.
  • seed.py provides realistic demo content, including users, jobs, applications, conversations, and interviews.
  • Avoid committing real secrets. Use environment variables for production credentials.

About

SmartHire is a Flask-based job portal for job seekers, employers, and administrators. It supports user registration and login, job posting, job search, applications, applicant pipelines, interviews, company pages, profile connections, chat, analytics, and CSV reports.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors