Shiori is a modern, lightweight, and secure Student Information System (SIS) built with vanilla PHP and a clean MVC architecture. It's designed for schools and educational institutions that need a fast, simple, and reliable solution without the overhead of large frameworks.
- β Student Management: Add, edit, delete, search, and view student records
- β Photo Management: Upload student photos with automatic thumbnail generation
- β CSV Import/Export: Bulk import students from CSV files
- β Dynamic Fields: Create custom fields (text, select, radio, etc.)
- β Lookup Management: Manage classes, sections, sessions, categories
- β User Management: Multi-role support (Super Admin, Admin, Staff, Viewer)
- β Activity Logging: Track all CRUD operations
- β Password Security: Mandatory password changes, strength validation
- β Database Backup: One-click MySQL database backup
- β Responsive Design: Mobile-friendly Bootstrap 5 interface
- β Installer Wizard: installer for easy setup
-
Clone or Download the Repository
git clone https://github.com/infinity-decoder/Shiori.git cd Shiori -
Configure Your Web Server
- Laragon/XAMPP: Place the
Shiorifolder in yourwwworhtdocsdirectory - Production: Set your web server document root to the
/publicfolder
- Laragon/XAMPP: Place the
-
Set Permissions
chmod -R 755 public/uploads/ chmod -R 755 storage/
-
Access the Installer
- Navigate to:
http://localhost/Shiori/publicor your configured URL - The installer will automatically launch if the database is not configured
- Follow the 3-step wizard:
- Step 1: Database Configuration
- Step 2: Super Admin Account
- Step 3: Review & Install
- Navigate to:
-
Login
- Use the credentials you created during installation
-
Create Database
CREATE DATABASE shiori_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Import Schema
mysql -u root -p shiori_db < database/schema.sql -
Configure Database
Create
config/database.php:<?php return [ 'host' => 'localhost', 'port' => 3306, 'name' => 'shiori_db', 'user' => 'root', 'pass' => '', 'charset' => 'utf8mb4', ];
-
Configure Application
Edit
config/app.php:<?php return [ 'name' => 'Shiori', 'base_url' => 'http://localhost/Shiori/public', 'debug' => false, ];
The base_url in config/app.php must match your server setup:
Local Development (Laragon/XAMPP):
'base_url' => 'http://localhost/Shiori/public',Production (Domain Root):
'base_url' => 'https://yourdomain.com',Production (Subdirectory):
'base_url' => 'https://yourdomain.com/shiori',| Role | Permissions |
|---|---|
| Super Admin | Full access - manage users, fields, lookups, students, settings |
| Admin | Manage students, lookups, view activity logs |
| Staff | Add/edit students, view records |
| Viewer | Read-only access to student records |
Shiori/
βββ app/
β βββ Controllers/ # Request handlers
β βββ Core/ # Router, Auth, CSRF, DB
β βββ Models/ # Database models
β βββ Services/ # Business logic
β βββ Views/ # HTML templates
β βββ Helpers/ # Utility functions
βββ config/
β βββ app.php # Application settings
β βββ database.php # Database credentials (auto-generated)
βββ database/
β βββ schema.sql # Database schema
βββ public/
β βββ assets/ # CSS, JS, images, fonts
β βββ uploads/ # Student photos (writable)
β βββ index.php # Front controller
βββ storage/ # Logs and temporary files
Contributions are welcome! Please feel free to submit a Pull Request.
[!IMPORTANT]
This project is open-source and available under the MIT License.
- Bootstrap Team for the amazing UI framework
- Chart.js for beautiful charts
- SweetAlert2 for elegant alerts
- All contributors and testers
Made with β€οΈ by INFINITY DECODER
β Star this repo if you find it helpful!











