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.
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
| Layer | Technology |
|---|---|
| Framework | Laravel 13 |
| Templating | Blade |
| Styling | Tailwind CSS v4 |
| JavaScript | Alpine.js |
| Database | MySQL |
| Build tool | Vite |
app/
Enums/
Http/
Controllers/
Middleware/
Requests/
Models/
database/
factories/
migrations/
seeders/
public/
fonts/
images/
resources/
css/
js/
views/
routes/
web.php
- PHP 8.3+
- Composer
- MySQL
- Node.js and npm
composer install
npm installcp .env.example .env
php artisan key:generateUpdate .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_passwordphp artisan migrate:fresh --seedphp artisan serve
npm run devOpen:
http://localhost:8000
| Role | Password | |
|---|---|---|
| Admin | admin@jhub.com | password |
| Employer | generated by seeder | password |
| Job Seeker | generated by seeder | password |
| 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 |
- A
Usercan be a job seeker, employer, or admin. - An employer owns many jobs.
- A job seeker submits applications.
- Jobs are stored in
jobs_post, notjobs. - Applications have
pending,accepted, orrefusedstatus. - 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.
Read DOCUMENTATION.md for the full beginner-friendly explanation of how the project works.
Class project. Not licensed for production use.