Skip to content

Repository files navigation

J-Hub - Job Portal System

J-Hub is a Laravel job portal built as a class project. It connects job seekers, employers, and admins in one clean web application.

Visitors can browse jobs. Job seekers can apply, track applications, manage comments, and receive linked notifications. Employers can post jobs, review applicants, view candidate resumes, accept/refuse applications, and receive activity notifications. Admins can monitor users, logs, platform totals, and manage their own profile.

Main Features

Visitors

  • View the homepage and about page
  • Browse open job listings
  • Search jobs by keyword and location
  • View job details
  • Register as a job seeker or employer

Job seekers

  • Apply for open jobs
  • Track application status
  • Comment on job posts
  • Edit and delete their own comments
  • View all comments they have made
  • Receive linked notifications
  • Edit profile and resume

Employers

  • Create, edit, view, and delete job posts
  • Review applicants and view candidate resumes
  • Accept or refuse applications
  • Receive notifications for applications and comment activity
  • View a simple dashboard chart
  • Edit company profile

Admins

  • View platform totals
  • View a simple role distribution chart
  • Manage users
  • View user details
  • Delete user accounts
  • View paginated activity logs
  • Edit admin profile

Tech Stack

Layer Technology
Framework Laravel 13
Templating Blade
Styling Tailwind CSS v4
JavaScript Alpine.js
Database MySQL
Build tool Vite

Project Structure

app/
  Enums/
  Http/
    Controllers/
    Middleware/
    Requests/
  Models/

database/
  factories/
  migrations/
  seeders/

public/
  fonts/
  images/

resources/
  css/
  js/
  views/

routes/
  web.php

Getting Started

Requirements

  • PHP 8.3+
  • Composer
  • MySQL
  • Node.js and npm

Install dependencies

composer install
npm install

Set up environment

cp .env.example .env
php artisan key:generate

Update .env with your database details:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=jhub
DB_USERNAME=root
DB_PASSWORD=your_password

Build database

php artisan migrate:fresh --seed

Run locally

php artisan serve
npm run dev

Open:

http://localhost:8000

Default Seeded Accounts

Role Email Password
Admin admin@jhub.com password
Employer generated by seeder password
Job Seeker generated by seeder password

Project Team

Name Role GitHub
Abanda Ambrouise Product Owner https://github.com/AmbroiseAB
Serge Backend & Platform https://github.com/CarmineAkanabe
Christine UI & Content https://github.com/Krystyna21
Herbet QA & Support https://github.com/NkengH
Samuel Operations https://github.com/Nsan-237
Mecula Infrastructure https://github.com/Dankun3

Data Model Summary

  • A User can be a job seeker, employer, or admin.
  • An employer owns many jobs.
  • A job seeker submits applications.
  • Jobs are stored in jobs_post, not jobs.
  • Applications have pending, accepted, or refused status.
  • Comments belong to jobs and users.
  • Notifications can include an optional action_url.
  • Route middleware checks broad role access.
  • Policies check ownership and allowed actions for jobs, applications, comments, and users.

Documentation

Read DOCUMENTATION.md for the full beginner-friendly explanation of how the project works.

License

Class project. Not licensed for production use.

About

This is a web app that helps Job Seekers find a job and Employers find employees, with a sold admin management. It is Laravel blade with alpineJS.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages