https://github.com/learning-zone/python-project
https://github.com/learning-zone/python-project
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/learning-zone/python-project
- Owner: learning-zone
- License: gpl-3.0
- Created: 2026-06-06T06:46:30.000Z (23 days ago)
- Default Branch: main
- Last Pushed: 2026-06-06T17:34:35.000Z (22 days ago)
- Last Synced: 2026-06-06T19:14:56.360Z (22 days ago)
- Language: PHP
- Size: 41 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: Agents.md
Awesome Lists containing this project
README
# Learning Management System (LMS)
The Learning Management System is a comprehensive, multi-tenant **Student Information System (SIS)** and **Learning Management System (LMS)** designed for K-12 schools, universities, and large educational districts. It combines a secure, highly scalable **Django** backend with a high-performance **React.js (Vite)** frontend to manage entire institutional workflows.
## Features
### Enterprise & School Administration
- **Multi-Tenant Architecture**: Isolate data completely for different school branches, campuses, or independent districts under a single deployment.
- **Advanced Role-Based Access Control (RBAC)**: Fine-grained permissions matching academic hierarchies: Super Admins, Principal, Registrars, Finance Officers, Teachers, Students, and Parents.
- **Parent-Teacher Portal**: Dedicated secure view for guardians to track attendance, report cards, fee balances, and communicate directly with teachers.
- **Student Information System (SIS)**: Handle admissions, digital student profiles, records management, and automatic generation of transcripts.
- **Attendance & Timetable Automation**: Automated scheduling engines to handle complex recurring timetables, class allocations, and daily biometric/digital attendance.
### Academic & LMS Features
- **Course Creation and Enrollment**: Dynamic curriculum mapping, syllabus management, and enrollment thresholds.
- **Content Delivery**: Secure streaming for course materials, integration with AWS S3 for media storage, and timed quizzes.
- **Progress Tracking & AI Analytics**: Executive dashboard monitoring class performance, attrition indicators, and performance trends.
- **Discussion Forums**: Real-time collaborative channels featuring moderation controls for compliance.
### Finance & Operations
- **Automated Fee Management**: Invoice creation, automated payment reminders, custom fee structures, and scholarship allocations.
- **Payment Gateway Integration**: Production-ready support for Stripe, Razorpay, or PayPal with secure multi-currency processing.
- **Audit Trails & Security Compliance**: Comprehensive tracking logs logging every administrative action (who changed a grade, who authorized a refund) for compliance audits.
## Technologies Used
- **Python**: Core backend language targeting Python 3.10+.
- **Django & DRF**: Python web framework paired with Django REST Framework for building enterprise-grade APIs.
- **drf-yasg**: Auto-generated OpenAPI/Swagger interactive API documentation.
- **React.js & Redux Toolkit**: Client-side state hydration and dynamic dashboard UI architecture.
- **Vite**: Lightning-fast frontend build tool and dev server.
- **PostgreSQL**: Relational database engine utilizing schema-based multi-tenancy.
- **Redis & Celery**: Background task queueing engine managing heavy administrative workloads like mass-email reports, fee invoices, and PDF generation.
- **Gunicorn**: Production-grade WSGI server for serving the Django application.
- **AWS S3 & django-storages**: Cloud object storage for media files and static assets via `boto3`.
- **Docker**: Standardized containerization across staging, development, and production clusters.
---
## Configuration & Environment Variables
Before executing the steps below, you **must** configure your environment variables. Create a `.env` file in both the `backend` and `frontend` directories using the reference templates below:
### Backend Configuration (`backend/.env`)
```env
DEBUG=False
SECRET_KEY=your-production-super-secret-key
ALLOWED_HOSTS=yourschool.com,localhost
# Database Configuration
DATABASE_URL=postgres://user:password@localhost:5432/school_db
# Redis & Celery
CELERY_BROKER_URL=redis://localhost:6379/0
# Storage & Payment Keys
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
STRIPE_SECRET_KEY=sk_live_your_key
```
### Frontend Configuration (`frontend/.env`)
```env
VITE_API_BASE_URL=http://localhost:8000/api/v1
VITE_STRIPE_PUBLIC_KEY=pk_test_your_key
```
---
## Getting Started
1. **Clone the Repository**:
```bash
git clone https://github.com/learning-zone/python-project.git
```
2. **Backend Setup**:
- Navigate to the `lms/lms-backend` directory.
- Install dependencies:
```bash
pip install poetry
poetry install
```
- Set up the database:
```bash
poetry run python manage.py migrate
```
- Start your background workers (Celery/Redis):
```bash
poetry run celery -A core worker --loglevel=info
```
- Run the development server:
```bash
poetry run python manage.py runserver
```
- Run the test suite:
```bash
poetry run coverage run manage.py test
poetry run coverage report
```
3. **Frontend Setup**:
- Navigate to the `lms/lms-web` directory.
- Install dependencies:
```bash
yarn install
```
- Start the frontend application locally:
```bash
yarn dev
```
4. **Access the Application**:
- Backend API Docs: http://localhost:8000/api/docs/
- Frontend Client: http://localhost:5173
---
## Docker Deployment Setup
For automated cloud deployment (AWS, GCP, Render), we recommend containerization using the built-in configuration.
To spin up the entire ecosystem (Django, React, Postgres, Redis, Celery) run:
```bash
docker-compose up --build
```
---
## Development Flow
1. Create a new feature branch: `git checkout -b feature/-`
2. Develop the feature, committing atomic changes.
3. Ensure backend and frontend tests pass:
```bash
yarn run test
poetry run python manage.py test
```
4. Create a Pull Request and get feedback.
5. After approval, merge into the `develop` branch.
## Contributing
Contributions are more than welcome! Please follow the guidelines in CONTRIBUTING.md.
## License
This project is licensed under the GPL-3.0 License. See [LICENSE](LICENSE) for details.