Git Product home page Git Product logo

lms's Introduction

Python's Course LMS

๐Ÿ‘‹ 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. Python
  3. Docker and docker-compose.

Minimal setup

This setup is for debug purposes and will use sqlite database and frontend 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
mv 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

./devops/build.sh
./devops/start.sh
./devops/bootstrap.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.

Code modification check list

Run flake8

# on lms root directory
flake8 lms

Run tests

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

lms's People

Contributors

dependabot[bot] avatar gal432 avatar idoelk avatar itraviv avatar orronai avatar ron-huberfeld avatar talsk avatar yammesicka avatar yaronneuman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.