Skip to content

Production ready e-Learning management and course assessment system with Django

License

Notifications You must be signed in to change notification settings

joshakbar14/eLMS-production

 
 

Repository files navigation

e-Learning Management System

A learning management and online assessment system for academic education.

Features

  • Admin adds courses, teachers, and students and assigns them courses.
  • The teacher creates course content, announcements, assignments, quizzes, takes attendance, etc. A teacher can see the details and analysis of the assessments.
  • Students can enroll in the courses using the access key, see the course content of the enrolled courses, participate in assessments and see their results in detail.
  • Discussion section for both teacher and student.

Relational Schema

schema

Tech Stack

  1. Django 4.0.4
  2. Bootstrap 5.0.2
  3. jQuery 3.6.0
  4. Chart.js v3.9.1
  5. Animate.css 4.1.1

UI

Screenshot (65) Screenshot (63) Screenshot (70) Screenshot (71) Screenshot (72) Screenshot (67) Screenshot (68) Screenshot (69)

Run Locally

  1. Clone the project
git clone https://github.com/nz-m/eLMS-SWE.git
  1. Go to the project directory
cd eLMS-SWE
  1. Create a virtual environment and activate it (Windows)
python -m venv env
env\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt

Note: If you're using newer versions of python(3.10+), you may need to add the --use-deprecated=legacy-resolver option when installing dependencies with pip to avoid errors :

pip install -r requirements.txt --use-deprecated=legacy-resolver
  1. Make migrations and migrate
python manage.py makemigrations
python manage.py migrate
  1. Create admin/superuser
python manage.py createsuperuser
  1. Finally run the project
python manage.py runserver

Now the project should be running on http://127.0.0.1:8000/

Login as admin and add some courses, teacher and students.

Demo : https://youtu.be/NyL2ajUNxYk

Production Deploy

This is for Linux VM domain server hosts.

  1. Install GIT and clone this repository

  2. CD to the repository folder

  3. Install dependencies

pip install -r requirements.txt

Note: If you're using newer versions of python(3.10+), you may need to add the --use-deprecated=legacy-resolver option when installing dependencies with pip to avoid errors :

pip install -r requirements.txt --use-deprecated=legacy-resolver
  1. Make migrations and migrate
python manage.py makemigrations
python manage.py migrate
  1. Open eLMS/settings.py and find this settings
## (replace the string below with your own site URL):
ALLOWED_HOSTS = ['web-production-3640.up.railway.app', '127.0.0.1']
  1. If using PostgreSQL database, also add this settings in DATABASES
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'OPTIONS': {
            'service': 'my_service',
            'passfile': '.my_pgpass',
        },
    }
}
  1. Then go to the PostgreSQL folder in %APPDATA%\postgresql.pg_service.conf which contains the hostname, port, and user
[my_service]
host=localhost
user=USER
dbname=NAME
port=5432
  1. and .my_pgpass for passwords
localhost:5432:NAME:USER:PASSWORD
  1. Finally, deploy Django using Gunicorn
gunicorn eLMS.wsgi:application --bind 0.0.0.0:8000

Detailed Reading

For detailed reading on Django deployment, here is some checklists from the Documentation https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/

License

The MIT License (MIT)

About

Production ready e-Learning management and course assessment system with Django

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 38.2%
  • CSS 28.9%
  • JavaScript 17.3%
  • Python 15.1%
  • PHP 0.5%