🚀 A fully structured Object-Oriented Python project that simulates a real-world Learning Management System (LMS) for a university campus using core OOP principles.
The BCI Campus LMS is an academic software system developed as part of my University Object-Oriented Programming (OOP) module.
It is designed to digitally manage:
- Students & Courses
- Academic & Non-Academic Employees
- Campus Structure & Salary Handling
This system follows real-world software design practices using Abstraction, Encapsulation, Inheritance, and Polymorphism.
- Create and manage student records.
- Enroll students into:
- 🎓 Degree Programs
- 📜 Diploma Programs
- 📘 Certificate Programs
- Automatic average result calculation based on course type logic.
- Manage:
- Academic Staff
- Non-Academic Staff
- Salary handled through:
- ⏱️ Hourly-based salary (Academic)
- 💼 Commission-based salary (Non-Academic)
- Abstract Campus class for extensibility.
- Concrete implementation using BCICampus.
- Designed for future multi-campus expansion.
| Concept | Description |
|---|---|
| ✅ Encapsulation | Secure data using getters & setters |
| ✅ Inheritance | Parent-child class relationships |
| ✅ Abstraction | Abstract Campus & Salary logic |
| ✅ Polymorphism | Method overriding & dynamic behavior |
| ✅ Exception Handling | Input & runtime error handling |
| ✅ Modular Design | Well-separated Python modules |
BCI-Campus-LMS/
│
├── student.py → Student class & student operations
├── course.py → Course base class
├── employee.py → Employee parent class
├── faculty.py → Academic & Non-Academic child classes
├── campus.py → Abstract Campus class
├── findaverage.py → Average calculation logic
├── findSalary.py → Salary calculation logic
├── main.py → System execution entry point
└── README.md → Project documentation
Follow the steps below to run the BCI Campus LMS on your system:
Make sure you have the following installed:
- Python 3.x
- Git
- A code editor (VS Code recommended)
Check Python version:
python --versiongit clone https://github.com/DinithMadushan/designed-LMS.git
cd designed-LMS
python main.py
The current system is a foundational LMS model. Possible future upgrades include:
- 🔐 User Authentication & Login System
- 🗄️ Database Integration (MySQL / SQLite)
- 🌐 Web-Based Interface (Flask / Django)
- 📊 Student Performance Analytics Dashboard
- 🧾 Automated Report & Transcript Generation
- 🏢 Multi-Campus Support
These improvements will help convert this academic project into a full-scale production-ready LMS.
Through this project, I strengthened my understanding of:
- Real-world Object-Oriented System Design
- Python Class Architecture & Modular Programming
- Abstract Class & Method Implementation
- Exception Handling & Input Validation
- Software Structuring for Scalability
- My lecturers and instructors for their guidance in Object-Oriented Programming.
- Online documentation and learning platforms for continuous support.
- My university for providing the academic framework for this project.
If you have suggestions, improvements, or find any issues:
- Feel free to open an issue in the repository
- Or fork the project and submit a pull request
Constructive feedback is always welcome for learning and improvement! 😊
Author: Dinith Madushan
Field: Software Engineering Undergraduate
Interests: Python, OOP, System Design, Backend Development
📌 For academic collaboration and learning purposes only.
✨ Thank you for checking out the BCI Campus LMS – OOP Based System!
⭐ Don’t forget to star the repository if you found this project helpful.