/awards-2020

An application to manage PyGotham financial aid and scholarship applications and awards.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Awards

An application to manage PyGotham financial aid and scholarship applications and awards.

Configuration

Awards can be configured through either environment variables or a settings.ini file. An example_settings.ini file has been provided. You can kickstart your configuration with:

$ cp example_settings.ini settings.ini

Note

Configuration for tests should be specified in the testenv.setenv section of tox.ini.

Database

In order to run this project, PostgreSQL is required. While the database's connection string is configurable, Postgres's citext module is required. The migrations will enable the extension, but it needs to be installed on the server before the migrations can be successfully applied.

The migrations can be applied by running:

$ tox -e migrate

New migrations can be generated by running:

$ tox -e makemigrations

Note

These are covered in more detail in Management commands.

Testing

While all tests will be as part of CI, they can also be run locally through tox.

Unit tests

The unit tests will be run whenever tox is envoked without specifying an environment, but can be run directly with:

$ tox -e unit

Coverage

A coverage report will be included in the output when envoking tox without an environment. It can be output without running the unit tests with:

$ tox -e coverage

Type checks

The type checks are done using pyre and can be run with:

$ tox -e types

Management commands

To run a Django management command, you'll need to cd into the src directory. To reduce the need to move back and worth between it and the root of the repository, several helpful management commands are exposed as tox environments.

createsuperuser

Create a new user with access to the admin. While it will prompt for a password, the value will be discarded; password-based logins are not supported.

dbshell

Run psql_ for the configured database.

makemigrations

Generate new migrations for installed applications.

migrate

Apply all outstanding migrations by default. The name of an application and either a forward or backward migration can be specified as well.

runserver

Run the development server with watchman watching for changes. If the PYTPYTHONBREAKPOINT environment variable is set, it will be passed through to the environment. The following debuggers are supported:

  • bpdb
  • ipdb
  • pdb
  • pudb
shell

Run a Django-aware interactive interpretter. bpython_ or ipython_ can be specified to select an interface other than the default Python REPL.

startapp

Create a new Django application with the specified name.

Hacktoberfest

This project will accept and review pull requests submitted during Hacktoberfest. PRs submitted with the sole purpose of earning a free t-shirt will be marked as spam. If this becomes a problem, the hacktoberfest topic will be removed from the repository.