SkyLearn LMS is a Django-based learning management system for schools, colleges, and training institutes. It helps manage users, courses, enrollments, quizzes, student results, uploaded learning materials, and basic payment screens from one web application.
- Admin, lecturer, student, and parent user roles
- Student, lecturer, department, program, session, and semester management
- Course creation, course allocation, course registration, and add/drop workflows
- Course packages, uploaded course files, and uploaded course videos
- Attendance, assignment, midterm, final exam, total score, grade, and result management
- Student assessment results and grade result pages
- Quiz management with multiple-choice, true/false, essay marking, pass marks, and progress tracking
- PDF generation for student records and result-related pages
- Search, news/events, email configuration, and session timeout support
- Payment gateway pages for Stripe, PayPal, Coinbase, Paylike, and GoPay
- SQLite for local development and PostgreSQL support for Docker/production
SkyLearn is organized around the day-to-day flow of an academic institution. Administrators set up the academic structure, lecturers manage learning and assessment, students access their courses and results, and parents can be linked to student records.
The system includes separate account flows for admins, lecturers, students, and parents. Admin users can create and manage student and lecturer profiles, assign basic academic information, and control access to pages based on user role. The project also includes profile pages, password management, login/logout flows, and session timeout handling.
Admins can configure the academic structure used throughout the LMS. This includes departments, programs, sessions/years, semesters, and course records. Courses can be grouped by program and semester so that students and lecturers interact with the correct academic data.
Courses can be created, updated, allocated to lecturers, and made available to students for enrollment. Students can register for available courses and use add/drop workflows where enabled. Course pages can include uploaded files and videos, making each course a place to manage both academic records and learning materials.
Lecturers can submit student scores for attendance, assignments, mid exams, and final exams. The system calculates totals, averages, grade points, grades, and result comments automatically. Students can view their assessment results and grade results, while admins can manage result records across semesters.
The quiz module supports multiple-choice, true/false, and essay-style questions. Quizzes can define pass marks, attempt limits, randomized question order, category-based progress tracking, explanations, and custom pass/fail messages. Completed quizzes can be reviewed, filtered, and marked where essay questions require manual grading.
The LMS supports course document uploads, course video uploads, student record pages, and PDF generation for printable academic documents. Search functionality helps users find records and content across the system.
The project includes payment-related pages and templates for gateways such as Stripe, PayPal, Coinbase, Paylike, and GoPay. Payment keys and production behavior should be configured through environment variables before using payment features in a real deployment.
- Python 3.8+
- Django 4.0.8
- SQLite or PostgreSQL
- Bootstrap 5
- django-crispy-forms
- django-filter
- django-modeltranslation
- django-extensions
- Whitenoise
- ReportLab and xhtml2pdf
accounts/ User accounts, roles, profiles, and authentication helpers
core/ Dashboard, sessions, semesters, news, and shared academic data
course/ Programs, courses, allocation, enrollment, packages, and uploads
quiz/ Quizzes, questions, sittings, progress, results, and marking
result/ Scores, grades, GPA, and result pages
payment/ Payment models, routes, and gateway templates
search/ Search views and template tags
templates/ Django HTML templates
static/ CSS, JavaScript, images, and frontend assets
requirements/ Python dependency files
git clone https://github.com/UdaiBatta/LMS.git
cd LMSWindows PowerShell:
python -m venv venv
.\venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCopy the example environment file:
Windows PowerShell:
Copy-Item .env.example .envmacOS/Linux:
cp .env.example .envUpdate .env with your local values:
SECRET_KEY=replace-with-a-long-random-secret
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS=
EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
SESSION_COOKIE_AGE=600For local development, leave DATABASE_URL empty or unset to use SQLite.
python manage.py migratepython manage.py createsuperuserpython manage.py runserverOpen the app:
http://127.0.0.1:8000
Open the admin panel:
http://127.0.0.1:8000/admin/
Docker Compose starts the Django app with PostgreSQL.
cp .env.example .envOn Windows PowerShell:
Copy-Item .env.example .envdocker compose up --buildThe app will run at:
http://127.0.0.1:9000
docker compose exec web python manage.py createsuperuserAfter running migrations, you can create sample data with:
python manage.py runscript generate_fake_accounts_data
python manage.py runscript generate_fake_core_data
python manage.py runscript generate_fake_dataCreate migrations:
python manage.py makemigrationsApply migrations:
python manage.py migrateRun tests:
python manage.py testCollect static files:
python manage.py collectstaticFormat code:
black .This project is licensed under the terms of the LICENSE file.
