Skip to content

ciada-3301/Jobista

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💼 Job Portal

A full-stack job portal web application built with Flask and SQLite — connecting job seekers with employers through a clean, modern interface.


🌟 Overview

Job Portal is a multi-role web application that allows employees to discover and apply for jobs, employers to post and manage listings, and an admin to oversee the entire platform — all through dedicated dashboards tailored to each role.


✨ Features

👤 For Job Seekers (Employees)

  • Sign up with name, email, phone, city, and CV upload (PDF/DOC)
  • Browse all available job listings
  • Search jobs by skill and/or location
  • View detailed job descriptions including salary, role, and required skills
  • Apply for jobs with one click (duplicate application prevention)
  • Personal dashboard to view and manage submitted applications

🏢 For Employers

  • Register your company with name, email, city, and phone
  • Post new job listings with title, role, location, salary, and up to 3 required skills
  • Manage your posted jobs (view & delete)
  • View all applicants for your listings — with name, email, phone, and downloadable CV

🛡️ For Admins

  • Secure admin login (separate credentials)
  • Dashboard overview with live stats:
    • Total candidates, jobs, applications, and companies
    • Visual pie charts powered by Chart.js
  • Manage all users (employees & employers) — view and delete
  • Manage all job listings across the platform
  • Manage all applications
  • View all contact messages from users

🌐 Public Pages

  • Home — Hero section with job search, live platform stats, and recent job openings
  • About — Platform overview
  • Contact — Message form that saves inquiries to the database

🗂️ Project Structure

job-portal/
│
├── main.py                    # Flask app — all routes and database models
├── default.db                 # SQLite database (auto-created on first run)
├── uploads/                   # Uploaded CVs stored here
│
└── templates/
    ├── index.html             # Home page
    ├── auth.html              # Login & signup (employee/employer)
    ├── about.html             # About page
    ├── contact.html           # Contact form
    ├── job_listings.html      # Job search results
    ├── job_details.html       # Single job detail + apply
    ├── employee_dashboard.html  # Employee dashboard
    ├── employer_dashboard.html  # Employer dashboard
    └── admin.html             # Admin dashboard

🗄️ Database Models

Model Key Fields
Employee id, name, email, password (hashed), phone, city, cv (path)
Employer id, name, email, password (hashed), phone, city
Job id, employer_id (FK), title, role, location, salary, skill1–3
Application id, applicant_id (FK), job_id (FK), name, email, phone
Contact id, name, email, message

🛣️ API Routes

Method Route Description Access
GET / Home page with stats & recent jobs Public
GET /about About page Public
GET/POST /contact Contact form Public
GET/POST /signup Employee & employer registration Public
GET/POST /login Login for all users Public
GET /logout Clear session and redirect to login Authenticated
GET /dashboard Redirects to role-specific dashboard Authenticated
GET /employee_dashboard Employee profile & applications Employee only
GET /employer_dashboard Employer profile, jobs & applicants Employer only
POST /list_job Post a new job listing Employer only
POST /delete_job Delete a job listing Employer/Admin
POST /delete_application Remove an application Employee/Admin
GET /search Search jobs by skill and/or location Public
GET /job/<job_id> View details of a specific job Public
POST /apply Apply for a job (JSON) Employee only
GET /check_login Check session login status (JSON) Public
GET /admin_dashboard Full admin control panel Admin only
POST /delete_user Delete an employee or employer Admin only
GET /adminlogout Admin logout Admin only

🚀 Getting Started

Prerequisites

Make sure you have Python 3.8+ installed.

1. Clone the Repository

git clone https://github.com/ciada-3301/jobista.git
cd job-portal

2. Install Dependencies

pip install flask flask-sqlalchemy werkzeug

3. Run the App

python main.py

The app will start at http://127.0.0.1:5000

The SQLite database (default.db) and the uploads/ folder are created automatically on the first run.


🔐 Admin Access

To log in as admin, use the following credentials on the login page:

Field Value
Email admin@jobportal
Password admin@123

⚠️ It is strongly recommended to change these credentials before deploying to production.


🧰 Tech Stack

Layer Technology
Backend Python, Flask, Flask-SQLAlchemy
Database SQLite
Frontend HTML5, CSS3, Vanilla JavaScript
Charts Chart.js (CDN)
Auth Werkzeug password hashing, Flask sessions
File Upload Flask file handling (CV uploads)

📸 Pages at a Glance

  • Home — Search bar, platform statistics, recent job openings
  • Login/Signup — Tabbed interface with separate forms for employees and employers
  • Job Listings — Card-based job results with search filtering
  • Job Details — Full job info with a one-click apply button
  • Employee Dashboard — Profile info, manage applications
  • Employer Dashboard — Post jobs, manage listings, view applicants & their CVs
  • Admin Dashboard — Platform-wide analytics with charts, user/job/application management

🔮 Potential Improvements

  • Email notifications on application submission
  • Password reset via email
  • Pagination for job listings and admin tables
  • Resume parser / skill matching
  • Job categories and filters (salary range, job type)
  • OAuth login (Google / LinkedIn)
  • Deployment on cloud (Render, Railway, or Heroku)

📄 License

This project is open source and available under the MIT License.


🙌 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.

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

Made with ❤️ using Flask

About

A native python and flask based job portal website with full database connectivity and authentication system for both employers and employees.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors