Version 1.0.0
A comprehensive multi-tenant student record management system built with Laravel, designed for schools to efficiently manage students, grades, payments, and academic activities.
The Student Record System is a powerful, multi-tenant web application that enables schools to manage their entire academic operations from a single platform. With support for multiple schools, role-based access control, and comprehensive features for student management, grading, payments, and reporting.
- 🏫 Multi-School Support - Manage multiple schools on one platform
- 👥 Role-Based Access - Five distinct user roles with appropriate permissions
- 📊 Complete Grade Management - From entry to approval and reporting
- 💰 Payment Integration - Paystack integration for seamless payments
- 📈 Comprehensive Reporting - Historical records, exports, and analytics
- 🔐 Secure & Isolated - School-level data isolation and security
- PHP 8.2 or higher
- Composer
- Node.js 18+ and npm
- SQLite (default) or MySQL/PostgreSQL
- Web server (Apache/Nginx) or PHP built-in server
-
Clone or extract the project
cd student-record-system -
Install PHP dependencies
composer install
-
Install Node dependencies
npm install
-
Environment Setup
cp .env.example .env php artisan key:generate
-
Configure Database
Edit
.envfile and set your database configuration:DB_CONNECTION=sqlite # Or for MySQL/PostgreSQL: # DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=student_records # DB_USERNAME=root # DB_PASSWORD=
-
Run Migrations
php artisan migrate
-
Seed Database (Optional)
php artisan db:seed
-
Build Frontend Assets
npm run build # Or for development: npm run dev -
Start Development Server
php artisan serve
The application will be available at
http://localhost:8000
-
Access the setup page
- Navigate to
/setupto create the first system administrator - This will activate the system
- Navigate to
-
School Registration
- After setup, register your first school
- Complete school information and settings
-
Configure Payment Gateway (Optional)
- Add Paystack API keys in system settings if using payment features
- Configure payment accounts for schools
Key environment variables to configure:
APP_NAME="Student Record System"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
# Database Configuration
DB_CONNECTION=sqlite
# Payment Gateway (Paystack)
PAYSTACK_PUBLIC_KEY=your_public_key
PAYSTACK_SECRET_KEY=your_secret_key
PAYSTACK_MERCHANT_EMAIL=your_emailFor a complete list of features, see FEATURES.md
- Student Management - Registration, profiles, promotion
- Grade Management - Entry, approval, consolidation
- Payment System - Paystack integration, billing, debt tracking
- Academic Management - Classes, subjects, programs
- Reporting - Historical records, exports (Excel, PDF), analytics
- BECE Management - Candidate preparation and results
- Teacher Remarks - Comments and reports
- Activity Logging - Comprehensive audit trails
The system supports five user roles:
- Developer - Full system access
- Superadmin - System-wide administration
- School Admin - School-level management
- Teacher - Grade entry and remarks
- Student - View results and manage payments
- Backend: Laravel 12.48.1
- Frontend: Tailwind CSS 3.4, Alpine.js 3.15
- Build Tool: Vite 7.3
- Database: SQLite (default), MySQL, PostgreSQL
- Payment: Paystack Integration
- Export: Excel, PDF, QR Code generation
- Setup Guide - Complete software installation and setup instructions
- User Documentation - Complete user guides and documentation
- Getting Started Guide - Initial setup and first steps after installation
- Features List - Complete feature documentation
- Project Context - Technical architecture details
- Role-based access control (RBAC)
- School-level data isolation
- Password hashing (bcrypt)
- CSRF protection
- Encrypted identifiers
- Activity logging and audit trails
This project is licensed under the MIT License.
For issues, questions, or contributions, please refer to the project documentation or contact the development team.
- Complete installation steps above
- Run migrations and seeders
- Access
/setupto create first admin - Register your school
- Start adding users, classes, and students
- Configure payment settings if needed
- Begin using the system!
Built with ❤️ using Laravel