👋 Welcome to Python course learning management system. 🐍
The system objectives -
- Allow teachers and mentors to input exercises list and provide feedback/comments to students exercises solutions.
- Allow students to load their exercises solutions and get feedback to their work.
- Linux based system - either WSL on windows or full blown Linux.
- Latest Python version
- Docker
This setup is for debug purposes and will use SQLite database and front-end only.
Steps to do:
- Clone this repository.
- Set environment variables.
- 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.
This setup will create the following items:
- Application - LMS code.
- Middleware (messaging queue) - RabbitMQ.
- Persistence database - PostgreSQL.
Steps to do:
- Clone this repository.
- Setup using docker & docker-compose.
- 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:
- Insert your mail details in the configuration file.
- Change the
DISABLE_MAIL
line value to False.
# on LMS root directory
flake8 lms
. devops/i18n.sh update
Then go to lms/lmsweb/translations to translate the strings, if needed.
export PYTHONPATH=`pwd`
pip install -r requirements.txt
pip install -r dev_requirements.txt
py.test -vvv
View contributing guidelines.