https://github.com/pythonfreecourse/lms
LMS allows teachers and educators to easily provide feedback on student programming work - both manually and automatically.
https://github.com/pythonfreecourse/lms
classroom education hacktoberfest lms teaching
Last synced: 4 months ago
JSON representation
LMS allows teachers and educators to easily provide feedback on student programming work - both manually and automatically.
- Host: GitHub
- URL: https://github.com/pythonfreecourse/lms
- Owner: PythonFreeCourse
- License: bsd-3-clause
- Created: 2019-07-16T07:36:22.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-09T19:05:10.000Z (10 months ago)
- Last Synced: 2025-01-05T18:18:12.880Z (4 months ago)
- Topics: classroom, education, hacktoberfest, lms, teaching
- Language: Python
- Homepage:
- Size: 5.58 MB
- Stars: 113
- Watchers: 5
- Forks: 32
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
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.```bash
git clone https://github.com/PythonFreeCourse/lms
cd lmsexport FLASK_DEBUG=1
export LOCAL_SETUP=true
export FLASK_APP=lms.lmsweb
export PYTHONPATH=`pwd`:$PYTHONPATHcd 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](https://127.0.0.1:5000/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.```bash
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.pycd devops
. ./build.sh && . ./start.sh && . ./bootstrap.sh && . ./i18n.sh
```In case you want to add the stub data to PostgreSQL DB, run:
```bash
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](https://127.0.0.1:8080/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
```bash
# on LMS root directory
flake8 lms
```### Updating localization files
```bash
. devops/i18n.sh update
```Then go to lms/lmsweb/translations to translate the strings, if needed.
### Run tests
```bash
export PYTHONPATH=`pwd`
pip install -r requirements.txt
pip install -r dev_requirements.txt
py.test -vvv
```### Contributing
View [contributing guidelines](https://github.com/PythonFreeCourse/lms/blob/master/CONTRIBUTING.md).