Modders' Guide Users' Guide

Developers' Guide

Are you interested in helping build out this website? This page will help you get started!

Table of contents


The following are required to follow this guide:

The website is written with the Django web framework, which is itself written with Python. Knowledge of Python and/or web programming are nice, but not strictly required to contribute. Knowledge of how to use git is very beneficial.

It's also a good idea to get yourself a text editor that is aware of: Python, HTML, CSS, Javascript, YAML, and TOML

Get The Source

You can download or clone the website source code from GitLab.

cd /some/path
git clone

Running The Website

To run the website from your local source code:

cd /path/to/
docker-compose up --build momw-django --exit-code-from momw-django

# Or:
make docker-run

Running Tests

To run source code tests from your local source code:

cd /path/to/
docker-compose up --build momw-tests --exit-code-from momw-tests

# Or:
make docker-tests

Making A Change To The Website

If you have a change you'd like to see merged into the website codebase, the process looks something like this:

A website maintainer will be notified of your merge request and review it. From there, the path to merging depends on the nature of your change and the availability of maintainers to review and test the changes.

Running Without Docker

This method is for advanced users, it is not supported on Windows. Linux is strongly recommended and is what the text below is written for but it could be adapted for macs.

  1. Install postgresql client and server packages via your system package manager, ensure the server is running and usable
  2. Also install Firefox, psycopg2 or python3-psycopg2, and GNU make via your system package manager
  3. Download the geckodriver binary and extract it to some place that's in $PATH
  4. From the root of the website source code, run: python3 -m pip install -r requirements.txt
  5. The next few steps require elevated privileges:
    1. Open an admin psql shell: sudo -u postgres psql
    2. Create a user for your login user (replace with your actual username): postgres=# create user johnnyhostile;
    3. Give database creation privileges: postgres=# alter user johnnyhostile with createdb;
    4. Create a user for the application: postgres=# create user momwdb password 'postgresqlpassword';
    5. Give database creation privileges part 2: postgres=# alter user momwdb with createdb;
  6. Run: make reset server

At this point, you should be able to interact with the codebase as expected. To run tests, do: make reset test

GPLv3 logo