Skip to content

LMS allows teachers and educators to easily provide feedback on student programming work - both manually and automatically.

License

Notifications You must be signed in to change notification settings

PythonFreeCourse/lms

Python's Course LMS

LMS License is BSD-3 Clause

👋 Welcome to Python course learning management system. 🐍

The system objectives -

  1. Allow teachers and mentors to input exercises list and provide feedback/comments to students exercises solutions.
  2. Allow students to load their exercises solutions and get feedback to their work.

Creating development environment

Prerequisites

  1. Linux based system - either WSL on windows or full blown Linux.
  2. Latest Python version
  3. Docker

Minimal setup

This setup is for debug purposes and will use SQLite database and front-end only.

Steps to do:

  1. Clone this repository.
  2. Set environment variables.
  3. Run the application.
git clone https://github.com/PythonFreeCourse/lms
cd lms

export FLASK_DEBUG=1
export LOCAL_SETUP=true
export FLASK_APP=lms.lmsweb
export PYTHONPATH=`pwd`:$PYTHONPATH

cd devops
source dev_bootstrap.sh
# The initial credentials should appear in your terminal. :)

cd ..
flask run  # Run in root directory

After logging in, use localhost admin to modify entries in the database.

Full setup

This setup will create the following items:

  • Application - LMS code.
  • Middleware (messaging queue) - RabbitMQ.
  • Persistence database - PostgreSQL.

Steps to do:

  1. Clone this repository.
  2. Setup using docker & docker-compose.
  3. Run the application.
git clone https://github.com/PythonFreeCourse/lms
cd lms
cp lms/lmsweb/config.py.example lms/lmsweb/config.py
echo "SECRET_KEY = \"$(python -c 'import os;print(os.urandom(32).hex())')\"" >> lms/lmsweb/config.py

cd devops
. ./build.sh && . ./start.sh && . ./bootstrap.sh && . ./i18n.sh

In case you want to add the stub data to PostgreSQL DB, run:

docker exec -it lms_http_1 bash
python lmsdb/bootstrap.py

Enter [http://127.0.0.1:8080], and the initial credentials should appear in your terminal. :)

After logging in, use localhost admin to modify entries in the database.

In case you want to enable the mail system:

  1. Insert your mail details in the configuration file.
  2. Change the DISABLE_MAIL line value to False.

Code modification check list

Run Flake8

# on LMS root directory
flake8 lms

Updating localization files

. devops/i18n.sh update

Then go to lms/lmsweb/translations to translate the strings, if needed.

Run tests

export PYTHONPATH=`pwd`
pip install -r requirements.txt
pip install -r dev_requirements.txt
py.test -vvv

Contributing

View contributing guidelines.

About

LMS allows teachers and educators to easily provide feedback on student programming work - both manually and automatically.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 16

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy