Skip to content

The Multi-Tenant School Management System (SMS); a Laravel web application that streamlines administration for various institutions. Its scalable architecture ensures smooth operations as institutions grow, enhancing efficiency and communication.

License

Notifications You must be signed in to change notification settings

rayusamBoy/Laravel_tenancy_sms

SMS Logo

About

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.

Features & Screenshots

Features

  • 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.

Screenshots

Non tenancy browse files.

Tenancy browse files.

Note

Some of the screenshots may be outdated.

Requirements

Installation

  1. Clone this repository, or you can download the zip folder instead.

    git clone https://github.com/rayusamBoy/Laravel_tanancy_sms.git
    
  2. Change to the app installation directory.

    cd Laravel_tenancy_sms
    
  3. Install the Composer dependencies.

    composer install
    
  4. Install and build the Node packages.

    npm install
    npm run build
    
  5. Create a .env file by copying the .env.example file.

    cp .env.example .env
    
  6. Generate the APP_KEY by running the following command:

    php artisan key:generate
    
  7. Generate the storage symlink.

    php artisan storage:link
    
  8. 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 for pusher. For pusher, make sure to set the appropriate values for any keys that start with PUSHER_, then you will need to activate the credentials in this file.
    • APP_URL - Your full qulified domain with protocol https:// 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.
  9. Migrate the database.

    php artisan migrate
    
  10. Seed the database.

    php artisan db:seed --class=DatabaseSeederNonTenancy
    
  11. (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.

  12. (optional). If you have set either or both of the options above, you must rebuild the node packages by running:

    npm run build
    
  13. Start the reverb by running:

    php artisan reverb:start
    
  14. (locally). Open a new terminal, then serve the app and access it via the link http://localhost:8000 by running:

    php artisan serve
    
  15. (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

Usage

  1. Central app scope
    Once you have completed the installation, you can access the central app via the already running URL http://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 tenancyconfiguration file.

  1. 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.

Contributing

See contributing.

Appreciation

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.

License

The School Management System is open-sourced software licensed under the GPL-3.0 license.

About

The Multi-Tenant School Management System (SMS); a Laravel web application that streamlines administration for various institutions. Its scalable architecture ensures smooth operations as institutions grow, enhancing efficiency and communication.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Languages