Multi-authentication system with user and admin dual login implemented using Laravel Jetstream
Education-ERP-Laravel-8 — Laravel Admin dashboard Template
By mogrady-professional
A Laravel-based school management ERP starter project that includes staff, student expenses, and report management, with dual user and admin login via Jetstream.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Includes staff management, student expenses management, and report management modules
Provides instructions for local running, server deployment, and Heroku deployment
README includes screenshots of the login page, dashboard, student management, and reports
Released under the MIT license, allowing free use, modification, commercial use, and distribution of this version's code
Template Details
This project is a school management ERP system written in Laravel, positioned as a starter project for an end-to-end CMS. The README states that it covers staff management, student expenses management, and report management, and emphasizes that the initial version leaves ample room for expansion. Authentication uses Laravel Jetstream to build a multi-authentication system, distinguishing between regular user and administrator logins.
Running locally requires cloning the project, executing composer install, creating the education_erp database in phpMyAdmin, running php artisan migrate:fresh, and renaming env.example to .env and filling in the configuration. The README specifically notes that a Mailtrap account must be registered and email configuration filled in to enable password reset and account confirmation features; after creating an account, the user's usertype field must be changed to Admin in the database to access administrative features.
For deployment, the README provides two paths: server deployment and Heroku deployment. Server deployment requires packaging and uploading, importing education_erp.sql, updating the database configuration in .env, and handling default string length and forcing HTTPS in production in AppServiceProvider. Heroku deployment requires creating a Procfile, setting configuration variables such as APP_KEY, and using ClearDB MySQL as the database.
Is it right for your project?
Use Cases
- As a starter codebase for secondary development of a school management ERP project
- To learn how to implement a multi-authentication system with Laravel Jetstream
- To set up a demo environment locally or on Heroku to evaluate its admin backend structure
- To reference its data management design for staff, student expenses, and report modules
Suitable For
- Laravel developers who need a starter template for a school management backend
- Developers who want to study the implementation of Jetstream dual user and admin login
- Individuals or small teams planning to extend ERP functionality on the existing foundation
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the project, run composer install to install dependencies
- 2
Create the education_erp database in phpMyAdmin and run php artisan migrate:fresh to migrate the table structure
- 3
Rename env.example to .env and fill in the configuration; a Mailtrap account is a required step for password reset and account confirmation features
- 4
After creating an account, set the user's usertype field to Admin in the database to use administrative features
- 5
When deploying to a server, import education_erp.sql and update the database configuration in .env; for Heroku deployment, create a Procfile and set configuration variables such as APP_KEY
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Local running requires registering a Mailtrap account and filling in its email configuration; otherwise, password reset and account confirmation features cannot be used. This is an external service dependency that requires self-registration and bearing the corresponding service costs.
- Before running, you must prepare a MySQL database yourself (e.g., creating education_erp via phpMyAdmin); the project does not include a database service.
- After registering an account, you must manually enter the database and change the usertype field to Admin to access administrative features; privilege escalation cannot be completed through the interface alone.
- Heroku deployment relies on the ClearDB MySQL add-on, which is a third-party external service that may incur additional costs or quota limits.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Set up a [mailtrap account](https://mailtrap.io/) to enable reset password, and confirm account functionality. **Required Step**.
Original README
Create the `education_erp` database within phpMyAdmin Panel
Original README
Go into the phpMyAdmin panel and assign a usertype of `Admin` to your user record.
Original README
https://github.com/mogrady-professional/Education-ERP-Laravel-8/blob/master/LICENSEhttps://github.com/mogrady-professional/Education-ERP-Laravel-8/blob/master/README.mdSelect `ClearDB MySQL`
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 77 / 100
- Technologies
- Laravel
- Website type
- Admin dashboard · Corporate Website · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2022-06-26
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: da7dec9a04fa79c803f1b139d4c95b113fdcc943a8bb2257603299858334c7f2
2026-10-02T18:54:55.460Z
Source file / repository<h1 align="center">Education ERP System - Laravel 8 CMS Project</h1>
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400"></a></p>
<p align="center"><img src="images/login.PNG" height="auto" width="100%"></p>
<p align="center"><img src="images/dash.PNG" height="auto" width="100%"></p>
<p align="center"><img src="images/sm.PNG" height="auto" width="100%"></p>
<p align="center"><img src="images/report.PNG" height="auto" width="100%"></p>
---
# Introduction
Education is an ERP System offering a complete school management system with staff, student expenses and report management functionality. The Application is built in Laravel 8 and is a complete end-to-end CMS (Content Management System) and is highly customizable. The initial project is a starter project with lots of room for improvement in terms of features and functionality that can be built upon. Multi authentication system built using Laravel Jetstream with User and Admin logins.
# Link to Project
> Hosted on Heroku on a ClearDB MySQL Database, using JetBrains DataGrip to connect to the database.
- [https://education-erp.herokuapp.com/](https://education-erp.herokuapp.com/)
# Developer Notes
Prior to deploying the application the following considerations need apply.
- Configuration Caching
- To give your application a speed boost, you should cache all of your configuration files into a single file using the config:cache Artisan command. This will combine all of the configuration options for your application into a single file which can be quickly loaded by the framework. [See here](https://laravel.com/docs/9.x/configuration#configuration-caching)
- Run:
- `php artisan config:cache`
- Application cache
- The application cache is the primary cache in Laravel. It stores everything that you manually cache in your application. You can clear only specific elements of the cache if you use tags or different cache stores. The easiest way to clear the Laravel cache is via artisan:
- Run:
- `php artisan cache:clear`
- View cache
- Another part of the application that has a cache is the view cache. The view cache stores rendered Blade templates to speed up your application. You can manually render all views to increase the performance by using the artisan command for it:
- Run:
- `php artisan view:clear`
# Instructions to run project locally
1. Download/Clone Project
2. Run `composer install` within the project directory to install dependencies for the project (ensure composer is installed on your system)
3. Create the `education_erp` database within phpMyAdmin Panel
4. Run `php artisan migrate:fresh` to migrate the database
5. Rename `env.example` to `.env` (sample environment variables for Laravel) and populate with your details:
1. Set up a [mailtrap account](https://mailtrap.io/) to enable reset password, and confirm account functionality. **Required Step**.
2. Populate the file with the details from your mailtrap account.
6. Run `php artisan serve` to starting a Laravel development server on http://127.0.0.1:8000
7. Create an account
1. Go into the phpMyAdmin panel and assign a usertype of `Admin` to your user record.
# Routes
- Login to Dashboard `http://127.0.0.1:8000`
# Deploying on a Server
- Compress the project folder by adding to a .zip directory for uploading to the server and extracting.
- Create a MySQL database with your hosting provider and import the `education_erp.sql` file to create the tables and populate the data.
- Update the database configuration in the `.env` file (e.g. database name, username, password etc.)
- Errors?
- `Specified key was too long?`:
- `HTTPS Errors?`
Update the following in `AppServiceProvider.php` the code should be self explainatory.
```php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\URL;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
Schema::defaultStringLength(191);
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
if(config('app.env') === 'production') {
URL::forceScheme('https');
}
}
}
```
# Deploying on Heroku
> Credentials for this project are redacted for security reasons. Step-by-step instructions below.
- [Heroku - Getting Started with Laravel](https://devcenter.heroku.com/articles/getting-started-with-laravel)
## Prepare Git
- `git init`
- `git add .`
- `git commit -m "new laravel project"`
## Create a Procfile
This is required to tell Heroku where to serve the project from. i.e. with Laravel this must be from the public folder.
- `echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile`
- `git add .`
- `git commit -m "Procfile for Heroku"`
## Create Application
- `heroku create`
- Set a Laravel encryption key
- `php artisan key:generate --show`
- `heroku config:set APP_KEY=<your_app_key_goes_here>`
- Deploy
- `git push heroku master`
## Set up Database
- Configure Add-ons
- Select `ClearDB MySQL`
- This will generate a MySQL database and generate credentials (connection string with database name, username, password) in Config Vars (`CLEARDB_DATABASE_URL`)
## Config Vars
| Key | Value |
| -------------------- | -------------------------- |
| APP_KEY | \<your_app_key_goes_here> |
| CLEARDB_DATABASE_URL | \<automatically_generated> |
| APP_DEBUG | False |
| DB_CONNECTION | mysql |
| DB_DATABASE | \<database_name_goes_here> |
| DB_HOST | \<host_goes_here> |
| DB_PASSWORD | \<password_goes_here> |
| DB_PORT | 3306 |
| DB_USERNAME | \<username_goes_here> |
| APP_ENV | production |
## Migrate the Tables
- Settings
- Run Console
- `php artisan migrate:fresh`
## Connect to the Database
Use a tool such as [DataGrip](https://www.jetbrains.com/help/datagrip/meet-the-product.html) by JetBrains to connect to the Database remotely.
- Create a user through the Admin Panel Login
- Update the record in the database and add `Admin` to the `usertype` field in the record to access admin features.
## Enforcing HTTPS for Production
- Within `AppServiceProvider.php` inside the `boot` function add the following
```php
use Illuminate\Support\Facades\URL;
public function boot()
{
//
if(config('app.env') === 'production') {
URL::forceScheme('https');
}
}
```
## Setting the Default String Length
If errors occur, add the following to the `register` function within the same file:
```php
use Illuminate\Support\Facades\Schema;
public function register()
{
//
Schema::defaultStringLength(191);
}
```
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

coreui-free-laravel-admin-template
A free MIT-licensed Laravel admin template using CoreUI Bootstrap styles, with a sample login account and management examples for users, menus, roles, media, BREAD, and email templates.
Laravel · Admin dashboard

sneat-bootstrap-html-laravel-admin-template-free
Sneat Free is a Laravel admin template with a Bootstrap 5 frontend, MIT-licensed, offering a dashboard, multiple layouts, authentication pages, forms, and tables.
Laravel · Admin dashboard

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS
