Skip to content

supunxiii/educatelanka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EducateLanka LMS Banner

Overview

EducateLanka is an online Learning Management System (LMS) developed for the COMP50022-K - Commercial Computing module. The platform supports the Sri Lankan school education system by improving access to learning resources, enabling structured feedback, and encouraging continuous student progress. It mitigates disruption during adverse weather and power cuts by providing reliable access to materials, and it helps reduce the digital divide across schools with a unified learning and communication hub. The assignment also demonstrates agile project management practices, including project initiation, planning, risk management, and closure activities with lessons learned.

Django 4.2.3 Bootstrap 4.5.2 SQLite 3.45.3 HTML5 CSS3

Features

EducateLanka provides the following features:

  1. Curriculum Structure

    • Standards, subjects, and lessons organised with slugs and ordering
    • Subject-level listings with hierarchical navigation
  2. Lesson Content Management

    • Lesson creation, updates, and deletion
    • File-based lesson resources (video, presentations, and notes)
  3. Interactive Learning

    • Lesson comments and threaded replies
    • Timestamped discussion flow
  4. User Accounts and Profiles

    • Registration and authentication
    • Profile metadata with user type (teacher, student, parent)
  5. Media Handling

    • Profile images and subject imagery
    • Structured media storage per entity
  6. UI and Support

    • Bootstrap-based responsive templates
    • Embedded Tawk.to live chat widget

Technologies Used

  • Django 4.2.3: Web framework (from requirements.txt)
  • asgiref 3.7.2: ASGI utilities (from requirements.txt)
  • django-crispy-forms 2.0: Form rendering utilities (from requirements.txt)
  • crispy-bootstrap4 2022.1: Bootstrap 4 template pack (from requirements.txt)
  • Pillow 10.0.0: Image processing (from requirements.txt)
  • sqlparse 0.4.4: SQL parsing support (from requirements.txt)
  • tzdata 2023.3: Time zone data (from requirements.txt)
  • SQLite 3.45.3: Database engine (Python sqlite3 runtime)
  • Bootstrap 4.5.2: UI framework (from template CDN)
  • HTML5: Mark-up standard
  • CSS3: Styling standard
  • Tawk.to API: Embedded live chat widget
  • ClickUp: Project management tool for agile workflow tracking

Project Specifications

  • Course: COMP50022-K - Commercial Computing
  • Domain: LMS for Sri Lankan school education
  • Architecture: Django MVT (Model-View-Template) with template-driven UI
  • Database: SQLite3 (db.sqlite3)
  • Project Management: Agile methods with initiation, planning, risk, time, cost, and procurement management

User Interfaces

UIs

EducateLanka UI 2

UIs

EducateLanka UI 3

UIs

EducateLanka UI 4

UIs

EducateLanka UI 5

UIs

EducateLanka UI 6

Getting Started

To run EducateLanka locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/supunxiii/educatelanka.git
  2. Navigate to the project directory:

    cd educatelanka
  3. Create and activate a virtual environment:

    python -m venv env
    source env/bin/activate
  4. Install Python dependencies:

    pip install -r requirements.txt
  5. Apply database migrations:

    python educatelanka/manage.py migrate
  6. Start the development server:

    python educatelanka/manage.py runserver
  7. Open the application in your browser:

    http://127.0.0.1:8000/

Project Structure

educatelanka-main/
├── educatelanka/                      # Django project root
│   ├── app_users/                     # User profiles, registration, and login
│   ├── curriculum/                    # Standards, subjects, lessons, and comments
│   ├── educatelanka/                  # Project settings and URL configuration
│   ├── media/                         # Uploaded files
│   ├── static/                        # Static assets
│   ├── templates/                     # HTML templates
│   ├── db.sqlite3                     # SQLite database
│   └── manage.py                      # Django entry point
├── requirements.txt                   # Python dependencies
└── LICENSE                            # Project licence

Contributors

This project was collaboratively developed by:

  • Supun Wijesooriya - Lead Developer
  • Mandinee Hewage - Developer
  • Ruchintha Thennakoon - Developer

Contributing

Contributions are welcome. If you would like to contribute:

  1. Fork the repository.

  2. Create a new branch:

    git checkout -b feature/your-feature-name
  3. Commit your changes:

    git commit -m "Add your commit message"
  4. Push your branch:

    git push origin feature/your-feature-name
  5. Open a pull request with a clear description of your changes.

License

This project is open-source and is licensed under the MIT License.

Contact

For any enquiries or feedback, please contact the developer:


Designed and developed in October 2023