School Management System
MasomoSoft is a school management platform designed to support the academic, administrative, financial, and operational management of schools.
The platform is built as a self-hosted application. Each school operates its own MasomoSoft instance and database, while the same application codebase can be deployed independently for multiple schools.
MasomoSoft provides a web-based administration platform for managing school operations and exposes a versioned REST API for mobile applications.
- MasomoSoft Web Application — administration and school management platform
- Manager Mobile App — mobile application for school managers and administrators
- POS Mobile App — point-of-sale application for operational/payment activities
- REST API — backend interface consumed by the mobile applications
- MySQL Database — school-specific application data
Each school has its own MasomoSoft deployment.
School A
↓
MasomoSoft instance
↓
School A database
School B
↓
MasomoSoft instance
↓
School B database
The mobile applications do not use one global MasomoSoft server.
Instead, the user configures the school's server URL when opening the mobile application for the first time.
Example:
https://masomosoft-ufecvqkb.apps.smirltech-sarl.com
The mobile application then uses:
/api/v1
as the API base path.
The Manager Mobile App communicates with MasomoSoft through the versioned REST API.
For the current Manager Mobile API scope, architecture, authentication, endpoints, filtering, pagination, response structure, and mobile integration guidelines, see:
MasomoSoft Manager Mobile API Integration Quick Guide
The project currently runs on:
- Laravel 9
- PHP 8.1
- MySQL
- Node.js
- Composer
Assuming you've already installed on your machine:
and that you are familiar with Laravel.
composer install
npm installCreate the .env file and generate the application key:
cp .env.example .env
php artisan key:generateConfigure the database connection in .env before running the migrations.
For development:
npm run devOr, for production/minified assets:
npm run prodRun migrations:
php artisan migrateOptionally seed the database:
php artisan db:seedphp artisan serveThe application will be available at:
http://localhost:8000
- Laravel Sanctum
- Orion
- Laravel Permission
To see the list of available modules and functionalities:
The API follows a versioned structure:
/api/v1
API endpoints should be designed primarily around the requirements of the consuming application rather than exposing database models directly.
Business logic and financial calculations should remain on the backend, while mobile applications should primarily handle:
- Data presentation
- User interaction
- Formatting
- Local caching where applicable
- Sending filters and pagination parameters
For the current Manager Mobile API implementation guide, see: