Skip to content

πŸŽ“ Modern ERP for African universities | Full-stack TypeScript monorepo with Next.js & NestJS | Student management, LMD grading, QR attendance, Mobile Money integration, offline-first | Built for Cameroon's IUT institutions | Open-source education technology

License

Notifications You must be signed in to change notification settings

WistantKode/skooly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Skooly

Modern ERP for African Universities & Schools

Features β€’ Tech Stack β€’ Getting Started β€’ Docs β€’ Contributing

TypeScript Next.js NestJS Turborepo License


🌟 About

Skooly is a complete, modern, and open-source ERP system designed specifically for African universities, technical institutes (IUTs), and schools. Built with cutting-edge technologies and optimized for the African context with features like Mobile Money integration, offline-first architecture, and support for the LMD (License-Master-Doctorate) academic system.

Why Skooly?

  • πŸš€ Modern Stack: Built with Next.js, NestJS, Prisma, and Turborepo
  • 🌍 Africa-First: Mobile Money payments (MTN, Orange), offline support, optimized for limited bandwidth
  • πŸ“± Mobile-Ready: Progressive Web App with native mobile app support
  • πŸ”’ Secure: QR code authentication, anti-fraud document generation, comprehensive audit trails
  • 🎯 Complete: Manages students, teachers, grades, attendance, finances, and more
  • πŸ’° Cost-Effective: Open-source with self-hosting option

✨ Features

πŸ“š Academic Management

  • Student Management - Complete student lifecycle from admission to graduation
  • LMD Grading System - Full support for Cameroon's License-Master-Doctorate system
  • Course Management - Departments, programs, UE (Teaching Units), EC (Course Elements)
  • Automatic Grade Calculations - Credits, weighted averages, validations, compensations
  • Deliberations & Transcripts - Digital PV generation, official transcripts with QR codes

πŸ“ Attendance Systems

  • QR Code Attendance - Dynamic QR codes with geolocation verification (anti-fraud)
  • Teacher Tracking - Course session management and reporting
  • Automated Alerts - SMS/email notifications for absences exceeding thresholds
  • Real-time Statistics - Attendance rates per student, course, and program

πŸ’° Financial Management

  • Mobile Money Integration - MTN Mobile Money and Orange Money APIs
  • Payment Plans - Installment payments with automated reminders
  • Scholarships & Discounts - Excellence, social, and government scholarships
  • Automated Receipts - PDF receipts with QR code verification sent via SMS/email

πŸ“… Scheduling

  • Smart Timetables - Automated scheduling with conflict detection
  • Resource Management - Classrooms, labs, equipment allocation
  • Teacher Availability - Manage permanent staff and part-time lecturers
  • Real-time Updates - Instant notifications for schedule changes

πŸ“œ Document Generation

  • Official Documents - Certificates, transcripts, diplomas with QR authentication
  • Anti-Fraud Security - Unique numbering, QR verification portal for employers
  • Online Requests - Students request documents online with payment and tracking

πŸ“± Communication

  • Multi-Channel - SMS (Twilio/Infobip), WhatsApp Business API, Email, Push notifications
  • Automated Messages - Results publication, payment reminders, schedule changes
  • User Portals - Dedicated dashboards for students, teachers, administration, and parents

πŸŽ“ Additional Modules

  • Internship Management - Applications, conventions, tracking, evaluations
  • Thesis & Projects - Proposal submission, advisor assignment, defense scheduling
  • Library - Catalog, loans, reservations, digital resources
  • E-Learning - Online courses, quizzes, virtual classrooms
  • Alumni Network - Job board, mentorship, career tracking

πŸ› οΈ Tech Stack

Frontend

β€’ Next.js 16        - React framework with App Router
β€’ TypeScript 5.9    - Type safety
β€’ TailwindCSS       - Utility-first CSS
β€’ shadcn/ui         - Beautiful UI components (Radix UI)
β€’ React Hook Form   - Form handling
β€’ Zod               - Schema validation
β€’ Recharts          - Data visualization

Backend

β€’ NestJS 11         - Progressive Node.js framework
β€’ Prisma ORM        - Type-safe database client
β€’ PostgreSQL        - Primary database
β€’ Redis             - Caching & sessions
β€’ Passport.js       - Authentication (JWT)
β€’ Bull              - Job queues

Infrastructure

β€’ Turborepo         - High-performance monorepo
β€’ pnpm              - Fast, disk-efficient package manager
β€’ Docker            - Containerization
β€’ GitHub Actions    - CI/CD

Integrations

β€’ MTN Mobile Money  - Mobile payments (Cameroon)
β€’ Orange Money      - Mobile payments (Cameroon)
β€’ Twilio/Infobip    - SMS notifications
β€’ WhatsApp API      - Messaging
β€’ SendGrid          - Email delivery

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • pnpm 8+
  • PostgreSQL 15+
  • Redis 7+

Quick Start

# Clone the repository
git clone https://github.com/yourusername/skooly.git
cd skooly

# Install dependencies
pnpm install

# Setup environment variables
cp .env.example .env
# Edit .env with your configuration

# Setup database
pnpm db:push

# Start development servers (all apps)
pnpm dev

The services will be available at:

Project Structure

skooly/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ web/              # Next.js frontend application
β”‚   β”œβ”€β”€ api/              # NestJS backend API
β”‚   β”œβ”€β”€ docs/             # Documentation site
β”‚   └── mobile/           # React Native app (optional)
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ database/         # Prisma schema & client
β”‚   β”œβ”€β”€ types/            # Shared TypeScript types
β”‚   β”œβ”€β”€ ui/               # Shared UI components
β”‚   └── utils/            # Shared utilities
└── docs/                 # Markdown documentation

πŸ“– Documentation

Comprehensive documentation is available in the /docs directory:


🌍 Cameroon Context Features

Mobile Money

// MTN Mobile Money integration
import { MTNMoMoService } from '@skooly/payments';

const payment = await momo.requestToPay({
  amount: 100000, // FCFA
  phoneNumber: '237670000000',
  message: 'Tuition fees - Semester 1'
});

Offline-First

  • Local caching with IndexedDB
  • Automatic sync when connection restored
  • Queue for pending actions
  • Works with unstable internet

LMD System

  • Full support for Licence-Master-Doctorat
  • Credit-based (ECTS) calculations
  • Semester and annual deliberations
  • Compensation between UE

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

# Create a feature branch
git checkout -b feature/amazing-feature

# Make your changes and commit
git commit -m "feat: add amazing feature"

# Push and open a PR
git push origin feature/amazing-feature

Commit Convention

We follow Conventional Commits:

  • feat: - New features
  • fix: - Bug fixes
  • docs: - Documentation changes
  • chore: - Maintenance tasks
  • refactor: - Code refactoring

πŸ“œ License

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


πŸ™ Acknowledgments

  • Built for the IUT de Douala and African universities
  • Inspired by modern SaaS products like Vercel, Linear, and Notion
  • Community-driven and open-source

πŸ“ž Support & Community


🎯 Roadmap

v1.0 (Current - MVP)

  • Student & teacher management
  • LMD grading system
  • QR code attendance
  • Mobile Money payments
  • Document generation
  • Complete testing
  • Production deployment

v1.1 (Next)

  • Mobile app (React Native)
  • E-learning platform
  • Advanced analytics
  • Multi-tenant SaaS mode

v2.0 (Future)

  • AI-powered features
  • Blockchain diplomas
  • Advanced BI & reporting
  • Integration marketplace

⭐ Star History

If you find Skooly useful, please consider giving it a star ⭐


Built with ❀️ for African Education

Website β€’ Documentation β€’ Twitter

About

πŸŽ“ Modern ERP for African universities | Full-stack TypeScript monorepo with Next.js & NestJS | Student management, LMD grading, QR attendance, Mobile Money integration, offline-first | Built for Cameroon's IUT institutions | Open-source education technology

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •