Lms

The case study is based on a Learning Management System named Frappe Learning. It is an easy-to-use, open-source platform designed to facilitate structured learning and knowledge sharing. Unlike traditional LMS like Moodle, which often have lengthy forms and a confusing UI…

Install Lms

bench get-app https://github.com/Rohith2825/lms

Add the Frappe Gems badge to your README

Maintain Lms? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=Rohith2825%2Flms)](https://frappegems.com/gems/apps/Rohith2825/lms)

About Lms

### Description of Case Study (Learning Management System - LMS) The case study is based on a Learning Management System named **Frappe Learning**. It is an easy-to-use, open-source platform designed to facilitate structured learning and knowledge sharing. Unlike traditional LMS like Moodle, which often have lengthy forms and a confusing UI, Frappe Learning aims to provide a simple, intuitive interface for creating and managing courses. **Features include:** - **Structured Learning:** Courses are organized in a 3-level hierarchy — Courses contain Chapters, and Chapters group Lessons, ensuring proper context. - **Live Classes:** Learners are grouped into batches by course and duration. Zoom live classes can be created directly from the app. - **Quizzes and Assignments:** Supports single-choice, multiple-choice, and open-ended quiz questions. Assignments can be submitted as PDFs or documents. - **Certification:** After course or batch completion, certificates can be granted using built-in or custom templates. - **Batch Management:** Group learners effectively for better course delivery. - **User-friendly UI:** Powered by Vue.js and Frappe UI for a modern experience. - **Open Source and Extensible:** Built on the Frappe Framework, allowing customization and scaling. **Improvements over Moodle:** - Simplified course creation with fewer, more intuitive forms. - Cleaner, modern UI design. - Integrated live class management with Zoom. - Built-in certificate generation with customizable templates. - Docker-based easy deployment and self-hosting options. **Extended Goal:** To create a scalable, developer-friendly learning platform that can be self-hosted or deployed on managed cloud infrastructure, supporting easy migration from Moodle and enabling institutions to launch courses with minimal setup. --- ### Use Case Modeling **Actors:** - **Learner:** Enrolls in courses, attends live classes, takes quizzes, submits assignments, and receives certificates. - **Instructor:** Creates courses, chapters, lessons, quizzes, assignments, schedules live classes, and manages batches. - **Administrator:** Manages users, oversees system setup, and configures deployment. **Use Cases:** - **Create Course:** Instructor defines course structure. - **Manage Chapters and Lessons:** Instructor organizes content within courses. - **Schedule Live Classes:** Instructor creates Zoom sessions linked to batches. - **Enroll Learners:** Learners join batches and courses. - **Take Quizzes and Submit Assignments:** Learners complete assessments. - **Issue Certificates:** Instructor grants certificates upon completion. - **Manage Users and Settings:** Administrator handles overall system management. **Relationships:** - **Include:** Scheduling live classes includes batch management. - **Extend:** Quiz-taking may extend to assignment submission. - **Generalization:** Instructor and Administrator are specialized user roles. --- ### Domain Model and Class Diagram Explanation The domain model consists of the following key classes: - **Course:** Contains multiple Chapters. - **Chapter:** Groups Lessons. - **Lesson:** The smallest learning unit. - **Batch:** Groups Learners enrolled in a Course for a specific duration. - **Live Class:** Scheduled Zoom sessions linked to Batches. - **Quiz:** Contains multiple Questions. - **Question:** Can be single-choice, multiple-choice, or open-ended. - **Assignment:** Submitted by Learners. - **Certificate:** Issued upon course or batch completion. - **User:** Generalization for Learner, Instructor, and Administrator. **Associations:** - Course *has many* Chapters. - Chapter *has many* Lessons. - Batch *has many* Learners. - Batch *has many* Live Classes. - Quiz *belongs to* Course or Lesson. - Assignment *belongs to* Learner and Course. - Certificate *belongs to* Learner and Course or Batch. The class diagram captures these entities and their relationships, demonstrating the system’s structure and data flow. --- ### Sequence Diagrams Description **Use Case 1: Enrolling a Learner in a Batch** 1. Learner requests enrollment. 2. System verifies batch availability. 3. Learner is added to the batch. 4. Confirmation is sent to the learner. **Use Case 2: Scheduling a Live Class** 1. Instructor initiates live class creation. 2. System authenticates instructor. 3. Instructor inputs live class details and selects batch. 4. System creates Zoom meeting and associates it with the batch. 5. Notification sent to all batch learners. These sequence diagrams illustrate interactions between actors and the system, ensuring clarity in process flow. --- ### Extended Goal The actual implementation leverages **Vue.js** for the frontend and **Python (Frappe Framework)** for the backend, creating a responsive and scalable LMS called **Frappe LMS**. The platform supports: - **Docker-based deployment:** Simplifies setup and maintenance. - **Self-hosting:** Users can deploy on their own servers or cloud. - **Migration from Moodle:** Designed to be a simpler, more modern alternative. - **Scalability:** Modular architecture supports growth in users and courses. - **Integration:** Zoom integration for live classes. - **Open Source:** Encourages community contributions and customization. This real-world solution aligns with the project goals of easy course creation, management, and delivery. --- ### Reflection This assignment helped in understanding and applying key Object Oriented Analysis and Design principles: - **Identifying actors and use cases** enhanced the ability to model system requirements. - **Domain modeling and class diagrams** reinforced concepts of associations, generalizations, and multiplicity. - **Sequence diagrams** developed skills in depicting dynamic interactions. - **Real-world implementation** deepened knowledge of integrating frontend and backend technologies with containerization. These outcomes align with the Performance Indicators of analyzing requirements, designing object-oriented solutions, and implementing scalable software systems. --- ## Technical Appendix: Frappe Learning Setup Details ### Managed Hosting You can try [Frappe Cloud](https://frappecloud.com), a simple, user-friendly and sophisticated [open-source](https://github.com/frappe/press) platform to host Frappe applications with peace of mind. It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.
Try on Frappe Cloud
### Self Hosting Follow these steps to set up Frappe Learning in production: **Step 1**: Download the easy install script ```bash wget https://frappe.io/easy-install.py ``` **Step 2**: Run the deployment command ```bash python3 ./easy-install.py deploy \ --project=learning_prod_setup \ --email=your_email.example.com \ --image=ghcr.io/frappe/lms \ --version=stable \ --app=lms \ --sitename subdomain.domain.tld ``` Replace the following parameters with your values: - `your_email.example.com`: Your email address - `subdomain.domain.tld`: Your domain name where Learning will be hosted The script will set up a production-ready instance of Frappe Learning with all the necessary configurations in about 5 minutes. **Note:** To avoid a `404 Page Not Found` error: - If hosting on a **public server**, make sure your DNS **A record** points to your server's IP. - If hosting **locally**, map your domain to `127.0.0.1` in your `/etc/hosts` file: ### Development Setup #### Docker You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, follow below steps: **Step 1**: Setup folder and download the required files mkdir frappe-learning cd frappe-learning # Download the docker-compose file wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/lms/develop/docker/docker-compose.yml # Download the setup script wget -O init.sh https://raw.githubusercontent.com/frappe/lms/develop/docker/init.sh **Step 2**: Run the container and daemonize it docker compose up -d **Step 3**: The site [http://lms.localhost:8000/lms](http://lms.localhost:8000/lms) should now be available. The default credentials are: - Username: Administrator - Password: admin #### Local To setup the repository locally follow the steps mentioned below: 1. Install bench and setup a `frappe-bench` directory by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation) 2. Start the server by running `bench start` 3. In a separate terminal window, create a new site by running `bench new-site learning.test` 4. Map your site to localhost with the command `bench --site learning.test add-to-hosts` 5. Get the Learning app. Run `bench get-app https://github.com/frappe/lms` 6. Run `bench --site learning.test install-app lms`. 7. Now open the URL `http://learning.test:8000/lms` in your browser, you should see the app running ---

Related Education apps for Frappe & ERPNext

  • Lms — Easy to Use, 100% Open Source Learning Management System
  • Education — Open source education / school management system
  • Mon School — Frappe App for Mon School based on Frappe LMS
  • Junior School — Junior School is a custom Frappe application that extends the core Frappe Education. It provides comprehensive tools for scheduling, attendance tracking, assessment management, and automated student lifecycle processes, specifically designed for multi-school environments.
  • Ifitwala Ed — A School Managment System
  • School Automations
  • Academy — Website for academy.erpnext.com
  • Psa — Sana'a University Postgraduate Studies Administration (PSA)