Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/city-of-helsinki/aplans
Admin UI and API for action plans
https://github.com/city-of-helsinki/aplans
django django-rest-framework python3 rest
Last synced: about 2 months ago
JSON representation
Admin UI and API for action plans
- Host: GitHub
- URL: https://github.com/city-of-helsinki/aplans
- Owner: City-of-Helsinki
- License: agpl-3.0
- Created: 2018-11-12T12:17:58.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T03:13:45.000Z (about 2 years ago)
- Last Synced: 2024-04-16T11:04:59.249Z (9 months ago)
- Topics: django, django-rest-framework, python3, rest
- Language: Python
- Homepage:
- Size: 372 KB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aplans
aplans is a service for administrating and monitoring action plans. It has the following components:
- admin UI for modifying action plan content
- REST API for distributing the informationThe service was first used to implement monitoring for the [Carbon-neutral Helsinki 2035 action plan](https://www.stadinilmasto.fi/files/2018/03/Executive_summary_HNH2035.pdf). The [ReactJS UI code](https://github.com/City-of-Helsinki/cnh-ui) is also open source.
## Installation
### Development
Install the required Python packages:
```shell
pip install -r requirements.txt
```Create a file called `local_settings.py` in your repo root with the following contents:
```python
DEBUG = TrueDATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'aplans',
'ATOMIC_REQUESTS': True,
}
}
```Make sure you have created a Postgres database with the same name (here `aplans`).
Create a superuser:
```shell
python manage.py createsuperuser
```Compile the translation files:
```shell
python manage.py compilemessages
```### Production
The project is containerized using Docker Compose. You will still need to set some
variables in your environment; see the first few lines in `aplans/settings.py`.## Contributing
### Python requirements
This project uses two files for requirements. The workflow is as follows.
`requirements.txt` is not edited manually, but is generated
with `pip-compile`.`requirements.txt` always contains fully tested, pinned versions
of the requirements. `requirements.in` contains the primary, unpinned
requirements of the project without their dependencies.In production, deployments should always use `requirements.txt`
and the versions pinned therein. In development, new virtualenvs
and development environments should also be initialised using
`requirements.txt`. `pip-sync` will synchronize the active
virtualenv to match exactly the packages in `requirements.txt`.In development and testing, to update to the latest versions
of requirements, use the command `pip-compile`. You can
use [requires.io](https://requires.io) to monitor the
pinned versions for updates.To remove a dependency, remove it from `requirements.in`,
run `pip-compile` and then `pip-sync`. If everything works
as expected, commit the changes.