PythonFreeCourse / Lms

Licence: bsd-3-clause
LMS allows teachers and educators to easily provide feedback on student programming work - both manually and automatically.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Lms

Openolat
Learning Management System OpenOlat
Stars: ✭ 135 (+82.43%)
Mutual labels:  education, teaching, lms
Autolab
Course management service that enables auto-graded programming assignments.
Stars: ✭ 528 (+613.51%)
Mutual labels:  education, teaching
Hypatia
A JavaScript open source LMS (eLearning platform) for MOOCs and online courses
Stars: ✭ 478 (+545.95%)
Mutual labels:  education, lms
Teaching App Dev Swift
DEPRECATED. Instructor lesson plans that accompany Xcode projects, for guiding in-class experiential learning.
Stars: ✭ 699 (+844.59%)
Mutual labels:  education, teaching
Jupyter Edu Book
Teaching and Learning with Jupyter
Stars: ✭ 325 (+339.19%)
Mutual labels:  education, teaching
Math Worksheet Generator
Create basic addition, subtraction, multiplication and division practice questions with the answer sheet
Stars: ✭ 438 (+491.89%)
Mutual labels:  hacktoberfest, education
Datascience Box
Data Science Course in a Box
Stars: ✭ 629 (+750%)
Mutual labels:  education, teaching
Oppia
A free, online learning platform to make quality education accessible for all.
Stars: ✭ 4,361 (+5793.24%)
Mutual labels:  education, teaching
Whitebophir
Online collaborative Whiteboard that is simple, free, easy to use and to deploy
Stars: ✭ 821 (+1009.46%)
Mutual labels:  education, teaching
Talks
Repository of publicly available talks by Leon Eyrich Jessen, PhD. Talks cover Data Science and R in the context of research
Stars: ✭ 16 (-78.38%)
Mutual labels:  education, teaching
Ulnoiot Upy
retired version of ulnoiot based on micropython
Stars: ✭ 17 (-77.03%)
Mutual labels:  education, teaching
Teachcode
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.
Stars: ✭ 325 (+339.19%)
Mutual labels:  hacktoberfest, teaching
Submitty
Homework Submission, Automated Grading, and TA grading system.
Stars: ✭ 311 (+320.27%)
Mutual labels:  hacktoberfest, education
30 Seconds Of Swift Code
A Swift implementation of 30-seconds-of-code: A curated collection of useful Swift 4 snippets that you can understand in 30 seconds or less.
Stars: ✭ 476 (+543.24%)
Mutual labels:  hacktoberfest, education
Canvasapi
Python API wrapper for Instructure's Canvas LMS. Easily manage courses, users, gradebooks, and more.
Stars: ✭ 306 (+313.51%)
Mutual labels:  hacktoberfest, education
Website
The train engine powering the Coding Train website
Stars: ✭ 5,313 (+7079.73%)
Mutual labels:  hacktoberfest, education
Ideoxan
👩‍💻 Ideoxan is a free to use online tool to learn programming.
Stars: ✭ 29 (-60.81%)
Mutual labels:  hacktoberfest, education
Free Courses
A collection of free courses about programming 📖
Stars: ✭ 281 (+279.73%)
Mutual labels:  hacktoberfest, education
Presentations
DEPRECATED. Short, topic-focused instructor presentations that illustrate iOS and Swift concepts.
Stars: ✭ 304 (+310.81%)
Mutual labels:  education, teaching
Sakai
Sakai is a freely available, feature-rich technology solution for learning, teaching, research and collaboration. Sakai is an open source software suite developed by a diverse and global adopter community.
Stars: ✭ 729 (+885.14%)
Mutual labels:  education, lms

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
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.

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

Contributing

View contributing guidelines.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].