Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Stories in Ready

The main point of this project is to allow partner programs to enter those Universal Data Elements required by HUD. As such, it is currently not and does not try to be a full homeless management information system (HMIS) as specified by HUD.

As noted by HUD:

Universal data elements enable the HMIS the ability to record unique, unduplicated client records, establish participation in a project within a date range, and identify clients who meet time criteria for chronic homelessness.

Setting Up For Development

To get the project set up and configured, first create and load a virtual environment for the project. There are several ways to do this and it is an optional but recommended step. Here's one way:

virtualenv env -p python3
source env/bin/activate

Now, install the project requirements:

pip install -r requirements.txt

These next commands will set up the database and initialize the data. If you are setting up a test or development instance, the default database connection settings should be sufficient (using SQLite). For production (or near-production staging) environments, create your database and set an environment variabled named DATABASE_URL to a connection string for that database.

Install the schema and initial data into your database:

src/ migrate
src/ loaddata staff-groups.yaml

Finally, load information specific to your structure. This could include: partner projects, project staff, etc. For information on doing that, run src/ load_projects -h. As a superuser user you can always add this data manually. You can create a new superuser with the src/ createsuperuser command.

For testing convenience, you can load some test data if you just want to get started. This includes a few projects, an intake staff user with username 'intake-admin', and two project staff users with usernames 'project-admin1' and 'project-admin2'.

src/ loaddata hmis-test-data.yaml

Deploying to an EC2 instance, or a droplet, etc.

The address is currently hard-coded into the nginx.conf file. You will have to update this with your domain (or simply comment out the server_name directive). Also, the nginx conf redirects all traffic to HTTPS. This application should be served over HTTPS, but if you want to serve it over HTTP, simply comment out the first server block and add listen 80 to the top of the second.

Run the script and your environment should get configuerd correctly.

In order to send login emails, set up Amazon SES (or another SMTP email service), and add the following variables to your environment:


It is also recommended that you use SSL or TLS to send your emails. Set either the EMAIL_USE_SSL or EMAIL_USE_TLS environment variable to True.

The DEFAULT_FROM_EMAIL must be an address able to send mail for the given user on the given host.


A simple Django application to collect data required for HUD reporting






No releases published


No packages published