Skip to content

Latest commit

Β 

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏫 Excellence Academy - School Management System

Django Python Bootstrap Redis License

A comprehensive School Management System for Excellence Academy
Manage academics, finance, attendance, and more with ease


πŸ“‹ Table of Contents


✨ Features

  • πŸ” Single-Tenant Architecture

  • Excellence Academy Focus: Dedicated system for Excellence Academy
  • Data Security: Secure data storage and user authentication
  • Scalable Design: Built to handle growing student and staff base
  • Simplified Administration: No multi-institution complexity

πŸ‘‘ Administrator

  • System-wide configuration management
  • Dashboard and analytics
  • User role hierarchy management
  • Global audit logging and compliance
  • Staff and student management

🏫 School Administration

  • Staff Management: Complete recruitment workflow from application to employee ID
  • Student Enrollment: Online applications, approval workflow, student profiles
  • Financial Management: Fee structures, invoicing, payment tracking
  • Academic Setup: Classes, subjects, sections, academic sessions
  • Reporting: Comprehensive analytics and reporting dashboards

πŸ“š Academics

  • Class and section management
  • Subject and teacher assignment
  • Timetable generation and management
  • Academic session and term configuration
  • Department management

πŸ“ Assessment & Grading

  • Customizable grading systems
  • Assignment and exam management
  • Mark entry with validation
  • Automated grade calculation
  • Report Card Generation with PDF export
  • Student performance analytics

βœ… Attendance

  • Daily attendance tracking
  • Period-wise attendance
  • Automated attendance summaries
  • Late arrival tracking
  • Attendance reports and analytics

πŸ’° Finance

  • Fee Structure Management: Create flexible fee structures per class/level
  • Invoice Generation: Automatic and manual invoice creation
  • Payment Processing: Online payments via Paystack
  • Payment Tracking: Payment history, receipts generation
  • Fee Waivers and Discounts: Flexible discount management
  • Financial Reports: Revenue, outstanding payments, collections

πŸ“– Library Management

  • Book catalog management
  • ISBN-based book entries
  • Book copy tracking
  • Circulation management (borrow/return)
  • Member management
  • Overdue tracking and fines
  • Reservation system

🚌 Transport Management

  • Fleet management (vehicles, drivers)
  • Route planning with multiple stops
  • Student transport allocation
  • Vehicle maintenance tracking
  • Transport fee integration

🏠 Hostel Management

  • Hostel and room management
  • Bed allocation system
  • Student hostel assignments
  • Maintenance request tracking
  • Room inventory management

πŸ“± Communication

  • SMS Notifications via Termii (Nigerian provider)
  • Email notifications
  • In-app notifications
  • Bulk messaging capabilities
  • Parent-student communication
  • Announcement system

πŸ“Š Analytics & Reporting

  • Academic performance dashboards
  • Attendance analytics
  • Financial reports
  • Student enrollment trends
  • RESTful API for data export

Extracurricular Activities

  • Activity creation and scheduling
  • Student enrollment management
  • Coach assignment
  • Activity capacity management
  • Performance tracking

πŸ₯ Health Management

  • Student health records
  • Medical history tracking
  • Vaccination records
  • Health alerts and notifications

πŸ›Ÿ Support System

  • Help desk ticketing system
  • Knowledge base articles
  • FAQ management
  • User support workflows

πŸ”’ Security & Audit

  • Comprehensive audit logging
  • User activity tracking
  • Login history
  • Permission-based access control
  • Session management

πŸ—οΈ Architecture

Excellence Academy SMS/
β”œβ”€β”€ apps/                    # Django applications
β”‚   β”œβ”€β”€ academics/          # Academic management
β”‚   β”œβ”€β”€ activities/         # Extracurricular activities
β”‚   β”œβ”€β”€ analytics/         # Reporting & analytics
β”‚   β”œβ”€β”€ assessment/        # Exams, grades, report cards
β”‚   β”œβ”€β”€ attendance/        # Attendance tracking
β”‚   β”œβ”€β”€ audit/             # Audit logging
β”‚   β”œβ”€β”€ communication/     # SMS, email, notifications
β”‚   β”œβ”€β”€ core/             # Core models, system configuration
β”‚   β”œβ”€β”€ finance/          # Fees, payments, invoicing
β”‚   β”œβ”€β”€ health/           # Health records
β”‚   β”œβ”€β”€ hostels/          # Hostel management
β”‚   β”œβ”€β”€ library/          # Library management
β”‚   β”œβ”€β”€ support/          # Help desk
β”‚   β”œβ”€β”€ transport/        # Transport management
β”‚   └── users/            # Authentication, roles
β”œβ”€β”€ config/               # Django project settings
β”œβ”€β”€ templates/            # HTML templates
β”œβ”€β”€ static/              # CSS, JS, images
└── setup/               # Project setup scripts

Database Schema Highlights

  • Single Tenant: All data belongs to Excellence Academy
  • UUID Primary Keys: All models use UUID for global uniqueness
  • Soft Deletes: All core models support soft delete functionality
  • Timestamp Tracking: Created/updated/status change timestamps
  • Audit Trail: Comprehensive logging of all data changes

πŸ‘₯ User Roles

Role Description Access Level
🦸 Super Administrator System-wide admin Full system access
πŸ‘¨β€πŸ’Ό Administrator School admin Full school management
πŸŽ“ Principal School head Academic oversight, reporting
πŸ‘¨β€πŸ« Teacher Teaching staff Classes, attendance, grades
πŸŽ’ Student Student users Own records, grades, schedule
πŸ‘¨β€πŸ‘©β€πŸ‘§ Parent Guardian Child monitoring, payments
πŸ’Ό Accountant Finance staff Financial management
πŸ“š Librarian Library staff Library operations
🚌 Transport Manager Transport admin Fleet and routes
🏠 Hostel Warden Hostel admin Hostel management
πŸ›Ÿ Support Staff Help desk Support tickets
πŸš— Driver Transport driver Vehicle operations

πŸ› οΈ Technology Stack

Backend

  • Framework: Django 5.2+
  • Python: 3.10+
  • Database: SQLite (dev) / PostgreSQL (prod)
  • ORM: Django ORM with multi-tenancy support

Frontend

  • Template Engine: Django Templates
  • CSS Framework: Bootstrap 5 with crispy-forms
  • JavaScript: Vanilla JS + Django Channels

Real-time

  • WebSockets: Django Channels
  • Message Broker: Redis (production)

Integrations

  • Payments: Paystack (Nigeria)
  • SMS: Termii (Nigeria)
  • Email: SMTP (Gmail, SendGrid, etc.)
  • PDF Generation: WeasyPrint
  • Excel Export: openpyxl

πŸ“¦ Module Overview

Core Modules

Module Purpose Key Models
core Single-institution configuration and system settings Institution, SystemConfig, SequenceGenerator
users Authentication, roles User, Role, UserProfile, UserRole
academics Academic structure Class, Section, Subject, Timetable
attendance Attendance tracking DailyAttendance, PeriodAttendance
assessment Grades & assessments Exam, Assignment, Result, ReportCard

Functional Modules

Module Purpose Key Models
finance Fees & payments FeeStructure, Invoice, Payment
library Library operations Book, BookCopy, BorrowRecord
transport Transport management Vehicle, Route, TransportAllocation
hostels Hostel management Hostel, Room, HostelAllocation
health Health records HealthRecord, Vaccination
activities Extracurricular Activity, ActivityEnrollment
communication Notifications Notification, SMSLog, EmailTemplate
analytics Reporting (Aggregated data views)
audit Audit logging AuditLog
support Help desk SupportTicket, HelpArticle

πŸš€ Getting Started

Prerequisites

Python 3.10+
PostgreSQL (production)
Redis (production)

Installation

  1. Clone the repository
git clone https://github.com/ShedrackAmodu/NexusSMS.git
cd NexusSMS
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# OR
venv\Scripts\activate  # Windows
  1. Install dependencies
pip install -r requirements.txt
  1. Environment Setup

Create a .env file in the setup/ directory:

# Create setup directory if not exists
mkdir -p setup

# Create .env file
touch setup/.env

Edit setup/.env with your configuration (see Configuration section below)

  1. Run migrations
python manage.py migrate
  1. Create superuser
python manage.py createsuperuser
  1. Run development server
python manage.py runserver
  1. Access the application
http://127.0.0.1:8000/

Additional Commands

# Load sample data (optional)
python manage.py loaddata sample_data.json

# Generate report cards
python manage.py generate_report_cards

# Create initial data
python manage.py setup_initial_data

βš™οΈ Configuration

Environment Variables

Create setup/.env with the following variables:

# ============================================
# DJANGO SETTINGS
# ============================================
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

# ============================================
# DATABASE (PostgreSQL - Production)
# ============================================
DATABASE_ENGINE=django.db.backends.postgresql
DATABASE_NAME=nexussms
DATABASE_USER=postgres
DATABASE_PASSWORD=your-password
DATABASE_HOST=localhost
DATABASE_PORT=5432

# ============================================
# EMAIL SETTINGS
# ============================================
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
DEFAULT_FROM_EMAIL=NexusSMS <noreply@nexussms.com>

# ============================================
# PAYSTACK PAYMENT GATEWAY
# ============================================
PAYSTACK_PUBLIC_KEY=pk_test_xxxxxxxxxxxxxx
PAYSTACK_SECRET_KEY=sk_test_xxxxxxxxxxxxxx
PAYSTACK_PAYMENT_URL=https://api.paystack.co
PAYSTACK_TEST_MODE=True
PAYSTACK_CALLBACK_URL=/finance/payment/callback/
PAYSTACK_CANCEL_URL=/finance/payment/cancel/

# ============================================
# SMS SETTINGS (Termii)
# ============================================
TERMII_API_KEY=your-termii-api-key
TERMII_SENDER_ID=NEXUS
TERMII_BASE_URL=https://api.ng.termii.com
SMS_NOTIFY_PARENTS_ON_PAYMENT=True
SMS_NOTIFY_STUDENT_ON_REPORT=True

# ============================================
# REDIS (Production for Channels)
# ============================================
REDIS_URL=redis://localhost:6379/0

Production Setup

For production deployment, update config/production.py:

DEBUG = False
ALLOWED_HOSTS = ['your-domain.com']

# Use PostgreSQL
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'nexussms',
        'USER': 'postgres',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

# Use Redis for channels
CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [("127.0.0.1", 6379)],
        },
    },
}

πŸ“± API Documentation

REST API Endpoints

The system includes RESTful APIs for integration:

Endpoint Method Description
/api/analytics/students/ GET Student analytics data
/api/library/books/ GET/POST Book catalog
/api/library/borrow/ POST Borrow book
/api/attendance/records/ GET Attendance records
/api/assessment/results/ GET Student results

Authentication

API endpoints use token-based authentication:

# Get token
curl -X POST /api/auth/token/ -d "username=user&password=pass"

# Use token
curl -H "Authorization: Token YOUR_TOKEN" /api/endpoint/

πŸ’³ Payment Integration

Paystack Setup

  1. Create a Paystack account at https://paystack.com
  2. Get your API keys from the dashboard
  3. Add keys to environment variables
  4. Configure webhook URL in Paystack dashboard:
    https://yourdomain.com/finance/payment/webhook/
    

Payment Flow

Student/Parent β†’ View Invoice β†’ Initiate Payment 
    β†’ Paystack Checkout β†’ Payment Verification 
    β†’ Invoice Update β†’ Confirmation Notification

πŸ“± SMS Integration

Termii Configuration

  1. Register at https://termii.com
  2. Get your API key from the dashboard
  3. Configure sender ID (max 11 characters)
  4. Add to environment variables

SMS Features

  • Payment confirmation notifications
  • Report card availability alerts
  • Attendance alerts
  • Announcements
  • Bulk messaging

πŸ“Έ Screenshots

Screenshots coming soon! This section will include:

  • Dashboard views for each role
  • Student enrollment flow
  • Fee payment process
  • Report card generation
  • Library management interface
  • Transport tracking
  • Analytics dashboards

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Commit your changes
    git commit -m 'Add amazing feature'
  4. Push to the branch
    git push origin feature/amazing-feature
  5. Open a Pull Request

Coding Standards

  • Follow PEP 8 style guide
  • Use Django best practices
  • Write tests for new features
  • Update documentation

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2024 NexusSMS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

πŸ™ Acknowledgments

  • Django Community
  • Bootstrap Team
  • Paystack for payment integration
  • Termii for SMS services
  • All contributors and testers

πŸš€ Built with ❀️ using Django
GitHub Repository β€’ Documentation β€’ Support


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages