Skip to content

dev-loop0/otis-web

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Top languages MIT License Last update Forks Stars OTIS-WEB status OTIS-WEB status

HTML style: djlint Python style: black types: pyright lint: pyflakes Coverage status

OTIS-WEB

These are the source files for the internal website that I use to teach my course OTIS. It is pretty standard Django, so you should be able to spin up a local server on a standard Unix environment.

Installation instructions

Video tutorial: https://youtu.be/W27XcqeXp20

Standard Linux environment

  1. Fork the repository first if you're planning on submitting a pull request later.

  2. Install the following standard tools: python (version 3.10), pip, git. (For each tool, search "[name of thing to install] [your OS]" on the web.)

  3. Clone this repository: git clone https://github.com/USERNAME/otis-web. Replace USERNAME with your username if you're forking; otherwise, replace with vEnhance.

  4. Run git submodule update --init --recursive in order to pull the evans_django_tools submodule.

  5. Install Poetry. This enables you to use the poetry command; verify this by checking poetry --help produces a help message.

  6. Once you have poetry, hit poetry install. This will automatically create a Python virtual environment and install stuff inside it.

    (If you are an expert familiar with Python virtual environments and want to use your own rather than Poetry's auto-created one, then you can do so by activating an environment before running poetry install.)

  7. If it isn't already activated, activate the Python virtual environment that was created in the previous step. The easiest way to do so is to run poetry shell.

    (Note: you have to do this step every time you start working on the project. That is, always run poetry shell before doing any work, or for experts, activate the virtual environment using your preferred method.)

  8. If everything is working, python manage.py check should run with no errors.

  9. Run python manage.py migrate to create the local database.

  10. Run python manage.py createsuperuser to create an admin user.

  11. Run python manage.py runserver. The command will spin up a continuously running server.

  12. Point your browser to http://127.0.0.1:8000. You should be able to log in with the user you defined in step 9.

  13. The website is functional now, but it is a bit bare-bones. To populate it with some test data, use http://127.0.0.1:8000/admin or run ./fixtures/load-all.sh.

Optional steps:

  • If you need to set up environment variables, copy env to .env and uncomment the relevant lines.
  • If you want to test the Stripe stuff, a few more steps are needed. Briefly: install the Stripe CLI. Create some API keys and stripe login. Add these API keys to .env (the three STRIPE_* variables). Then run stripe listen --forward-to localhost:8000/payments/webhook/.

Using Docker

  1. Follow steps 0 - 3 from the above tutorial.
  2. Make sure to install Docker and make sure you download a version compatible with your computer.
  3. Set up the 3 environment variables at the bottom of env by copying them to .env and uncommenting them. Note that you should not have any spaces (it is fine to leave the values as it is, but if you want to change anything, just make sure there is no whitespace surrounding the =).
  4. Run docker compose build. Wait for it to finish.
  5. To start the server, run docker compose up -d. To execute a command inside the container, run docker exec -it otis-web /bin/bash. To stop the server, run docker compose down.
  6. Follow steps 11 - 12 from above.

Note: You may need to delete db.sqlite3 if you're not getting desired results, as it serves as a cache. At this point, spinning up 2 separate containers with separate data stores is not supported.

Feature requests or bug reports

Submit an issue on GitHub.

Pull requests

For OTIS students: pull requests welcome! If you think the website can be improved in some way, feel free to implement it. See contributing guidelines. It's OK if you don't have much code experience; I'm willing to guide you along.

526561645265616452656164

About

OTIS course management system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 74.1%
  • HTML 16.1%
  • JavaScript 6.3%
  • CSS 2.0%
  • Jinja 0.9%
  • TeX 0.4%
  • Other 0.2%