umber

a course management web app built with python Flask, sqlite3, and git.

installation

Tested on Ubuntu 18 with python 3.5.

# -- Install the system dependencies. --
$ sudo apt-get install git sqlite3 virtualenv 

# -- Get the project files. --
$ git clone https://github.com/jimmahoney/umber.git
$ cd umber

# --Install the python environment and its required modules. --
$ virtualenv --python=python3.4 venv
$ . env/activate
$ pip install -r ./env/requirements.txt

development & testing

# -- setup --
$ . env/activate_development   # set shell variables & enable python environment
$ umber_init_db                # create database with default test data
$ umber_test                   # run a few doc tests (TODO: write lots more ...)

# -- interactive --
$ umber_console        # interact with database from command line
>>> democourse
<Course name='Demo Course' ...>
>>> democourse.assignments
>>> democourse.persons
>>> john = Person.get(username='johnsmith')
<Person name = 'Johnny Smith' ...>
# See src/model.py for more examples

# -- development server --
$ umber_server
# then visit http://127.0.0.1:5000/courses/demo/home with a browser.

production

Like any Flask app, this can be deployed using WSGI, using for example libapache2-mod-wsgi or gunicorn. See src/umber.wsgi, env/production, and docs/readme.txt for more information.

deployed

I was using this for my courses at cs.marlboro.college, running on a linode using apache mod_wsgi and password authentication.

And I am using it my courses at cs.bennington.college, running on another linode using nginx, uwsgi, and openid authentication.


Jim Mahoney | Aug 2020 | MIT License | github.com/jimmahoney/umber

GitHub

GitHub - jimmahoney/umber: A course management web application
A course management web application. Contribute to jimmahoney/umber development by creating an account on GitHub.