This is a multi-tenant school management system powered by technologies including the Laravel framework, Bootstrap, jQuery, and the Tenancy package, among others. It is developed for educational institutions such as schools and colleges and is built on Laravel 11.
Please show your support and appreciation by at least becoming one of the stargazers (starring this project) if you find it useful, or if any part of it is helpful.
- Tenancy capability
- Progressive Web App (PWA) features including Offline access
- Color modes (dark and light)
- Built-in messaging and notifications
- Eight (8) types of user accounts
Super admin
- Create any user account
- Can delete any record
- Only can access System Settings, Bin and Activity Log
- Manage all notices
- Can perform all
Admin
function - Only can create & delete message thread
Admin
- Create, edit and manage user accounts
- Create, edit and manage Subjects, Exams, Assessments, Books, Pins, Query builder etc.
- Manage payments
- Manage own notices
Teacher
- Manage own Class/Section
- Manage Exam records for own Subjects
- Manage timetable if assigned as Class Teacher
- Manage own profile
Student
- Manage own profile
- View own subjects and results sheets
- View own assessments sheets
- View library and book status
- View notices and school events in calendar
Parent
- Manage own profile
- View, print/download own child's marksheet, assessmentsheet
- View own child's timetable
- View own child's payments
- View notices and school events in calendar
Accountant
- Manage payments & fees
- Print Payments receipts
- Manage own profile
- Manage own notices on notice board
Librarian
- Manage library books and book requests.
- Manage own profile
Companion
- Manage own profile
- View students
- Among others.
Non tenancy
browse files.
Tenancy
browse files.
Note
Some of the screenshots may be outdated.
- composer
- npm
- laravel requirements
- Among others.
-
Clone this repository, or you can download the zip folder instead.
git clone https://github.com/rayusamBoy/Laravel_tanancy_sms.git
-
Change to the app installation directory.
cd Laravel_tenancy_sms
-
Install the Composer dependencies.
composer install
-
Install and build the Node packages.
npm install npm run build
-
Create a
.env
file by copying the.env.example
file.cp .env.example .env
-
Generate the
APP_KEY
by running the following command:php artisan key:generate
-
Generate the storage symlink.
php artisan storage:link
-
Set values for specific keys in the
.env
file you created earlier.DB_DATABASE
- Database name (make sure you have created one). Default connection:mysql
.DB_USERNAME
- Database username.DB_PASSWORD
- Database password.BROADCAST_CONNECTION
- Default:reverb
. You can also opt forpusher
. Forpusher
, make sure to set the appropriate values for any keys that start withPUSHER_
, then you will need to activate the credentials in this file.APP_URL
- Your full qulified domain with protocolhttps://
included. Default:http://localhost
VITE_VAPID_KEY
- (optional). Firebase Cloud Messaging (FCM) push services access token. To get a key and more check this out.
-
Migrate the database.
php artisan migrate
-
Seed the database.
php artisan db:seed --class=DatabaseSeederNonTenancy
-
(optional). If you have set the optional value for
VITE_VAPID_KEY
, you must also configure the Firebase in this file and provide the Firebase service account credentials in this file. The app will work perfectly fine even if you do not set these values. -
(optional). If you have set either or both of the options above, you must rebuild the node packages by running:
npm run build
-
Start the
reverb
by running:php artisan reverb:start
-
(locally). Open a new terminal, then serve the
app
and access it via the linkhttp://localhost:8000
by running:php artisan serve
-
(production - live). Try searching Google for information on how to deploy a Laravel app based on your hosting plan.
Important
Whenever you set or update any value in the .env
file for keys that start with VITE_
and/or change the BROADCAST_CONNECTION
, you must rebuild the node packages by running:
npm run build
-
Central app scope
Once you have completed the installation, you can access the central app via the already running URLhttp://localhost:8000
using the following credentials.Account Type Username Email Password IT Guy itguy [email protected] itguy
Important
When using a central domain other than localhost
(e.g., sms.edu
), you must add the domain to the central_domains
key in the tenancy
configuration file.
-
Tenant app scope
To access the tenant app, you need to create a tenant and tenant domain in the central app. Once that's done, you can use the created domain to access the system with the following credentials.Account Type Username Email Password Super Admin superadmin [email protected] superadmin Admin admin [email protected] admin Teacher teacher [email protected] teacher Companion companion [email protected] companion Parent parent [email protected] parent Accountant accountant [email protected] accountant Librarian librarian [email protected] librarian Student student [email protected] student
Note
For more information please refer to this documentation.
See contributing.
This project is based on the lav_sms project by 4jean. This is my personal modification and adaptation of the original project. I would like to express my appreciation to him and to everyone who contributes.
The School Management System is open-sourced software licensed under the GPL-3.0 license.