A fully featured job marketplace built with Laravel, designed to provide a complete hiring workflow for both job seekers and employers. The application focuses on clean architecture, scalability, and real-world backend logic.
MyJobApp enables two types of users—job seekers and job posters—to interact through a structured platform. It handles everything from authentication and profile setup to job posting, applications, and automated email communication.
- Secure registration and login system
- Email verification before accessing the platform
- Mandatory profile setup after registration based on user role
-
Job Seekers:
- Profile title, age, gender, location, bio
-
Job Posters:
- Industry, location, company description, external URL
-
Full profile management (create, update, delete) for both roles
- Create, edit, and delete job posts
- View and manage applications per job
- Access applicant profiles directly
- Receive email notifications when a new application is submitted
- Browse and search for available jobs
- Apply with CV and cover letter
- Track application status updates
- Receive email notifications when application status changes
-
Email alerts for:
- New job applications (to job posters)
- Application status updates (to job seekers)
- Newly posted jobs (subscription-based)
-
Users can unsubscribe from job notification emails
- Built with Laravel using MVC architecture
- Relational database design with MySQL
- Clean separation of concerns and scalable structure
- Email handling integrated for real-time communication
- Role-based authorization and middleware protection
This project demonstrates the implementation of a real-world system with complex user flows, relational data handling, and event-driven communication. It highlights backend design decisions, maintainability, and practical full-stack development skills.
Follow these steps to get MyJobApp running locally:
git clone https://github.com/Hemn-Raqib-Aziz/MyJobApp.git
cd MyJobApp
Make sure you have PHP and Composer installed. Then run:
composer install
This will install all Laravel dependencies required for the project.
Ensure Node.js (version 20.19+ recommended) and npm are installed:
npm install
Copy the .env.example file to .env:
cp .env.example .env
Update .env with your environment settings. Example for database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myjobapp
DB_USERNAME=root
DB_PASSWORD=
Generate the Laravel app key:
php artisan key:generate
Make sure your MySQL server is running and you have created the database. Then run migrations:
php artisan migrate
To enable email notifications for applications and job postings, update your .env with your SMTP credentials. Example using Gmail:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD=your_email_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="noReply@gmail.com"
MAIL_FROM_NAME="MyJobApp"
Important: Use your own credentials in production. Gmail may require an App Password or enabling "Less Secure Apps" for testing.
You can start Laravel and Vite together:
composer run dev
- Laravel backend will run at http://127.0.0.1:8000
- Frontend assets will be served by Vite
- Queue listener will handle job application emails in real-time
If you face caching issues:
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
Open http://127.0.0.1:8000 in your browser. Register as a Job Seeker or Job Poster, complete the profile, and test the job posting/application workflow. Email notifications should work if SMTP is properly configured.