Introduction to cfgov-refresh¶
This is the documentation for the cfgov-refresh project that powers the www.consumerfinance.gov website. It is organized thematically in order to create a central repository for all information pertaining to cfgov-refresh.
This project is a work in progress. Nothing presented in this repo—whether in the source code, issue tracker, or wiki—is a final product unless it is marked as such or appears on www.consumerfinance.gov. In-progress updates may appear on beta.consumerfinance.gov.
The standard technology stack for development of cfgov-refresh within the CFPB consists of the following base:
- Homebrew - package manager for installing system software on OSX
- Python 3.6 and pip (Python package manager)
- Jinja2 templates for front-end rendering. See
- Wagtail CMS for content administration. See
- PostgreSQL 10.5 is the database we use in production and locally.
Additional dependencies, listed below
- Elasticsearch: Used for full-text search capabilities and content indexing.
- Node 8 and yarn: Used for downloading and managing front-end dependencies and assets. Front-end dependencies are listed in the project's package.json file.
- Gulp 4 for running tasks, including compiling front-end assets and running acceptance and unit tests.
Versions for most front-end packages are kept updated in the project's package.json file.
Versions for back-end software including Django, Wagtail, Jinja, etc. are kept in the project's requirements files: https://github.com/cfpb/cfgov-refresh/tree/master/requirements
base.txt: shortcut for
deployment.txt: requirements for deployment, includes
postgres.txtand a New Relic library which we don't install anywhere else.
django.txt: specifies the Django version. The file is used when running the site, but by having it separate we can test against other versions of Django by excluding this file.
libraries.txt: Python libraries.
postgres.txtand some useful libraries when developing locally.
docs.txt: requirements to build the cfgov-refresh docs.
postgres.txt: requirements to connect Django to Postgres.
scripts.txt: Requirements for running certain jobs on Jenkins, so scripts can run in Jenkins without having to install all the other requirements.
test.txt: requirements for running Python tests.
travis.txt: extra requirements for Travis. Should/could be moved to explicitly listed in the .travis.yml file?
wagtail.txt: specifies Wagtail version. In its own file to make it easier to test multiple versions, same as with