https://github.com/laws-africa/indigo
Indigo Platform for publishing beautiful legislation.
https://github.com/laws-africa/indigo
akoma-ntoso backbonejs django javascript legislation python
Last synced: 9 days ago
JSON representation
Indigo Platform for publishing beautiful legislation.
- Host: GitHub
- URL: https://github.com/laws-africa/indigo
- Owner: laws-africa
- License: other
- Created: 2015-01-15T10:50:36.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T08:06:35.000Z (about 1 year ago)
- Last Synced: 2024-04-14T08:03:47.138Z (about 1 year ago)
- Topics: akoma-ntoso, backbonejs, django, javascript, legislation, python
- Language: HTML
- Homepage: https://laws.africa/indigo
- Size: 34.1 MB
- Stars: 55
- Watchers: 12
- Forks: 24
- Open Issues: 212
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Indigo
 [](https://coveralls.io/github/laws-africa/indigo?branch=master)

Indigo is Laws.Africa's legislation database for managing, consolidating and publishing
legislation in the [Akoma Ntoso](https://www.oasis-open.org/standard/akn-v1-0/) format.It is a Django python web application using:
* [Django](http://djangoproject.com/)
* [Cobalt](http://cobalt.readthedocs.io/en/latest/) -- a lightweight Python library for working with Akoma Ntoso
* [Bluebell](https://github.com/laws-africa/bluebell) -- a generic Akoma Ntoso 3 parser, supporting all hierarchical elements and multiple document types
* [django-rest-framework](http://www.django-rest-framework.org/)Read the [full documentation at indigo.readthedocs.io](http://indigo.readthedocs.io/en/latest/index.html).
## Local development
Refer to https://indigo.readthedocs.io/en/latest/running/index.html## Adding translation strings
Each indigo package has its own translations in the `locale` directory, and Javascript translations are in
`static/i18n`. Translations for strings are added on [CrowdIn](https://crowdin.com/project/lawsafrica-indigo).If you have added or changed strings that need translating, you must [tell Django to update the .po files](https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#localization-how-to-create-language-files) so that translations can be supplied through CrowdIn.
```bash
scripts/extract-translations.sh
npm run extract-translations
```And then commit the changes. CrowdIn will pick up any changed strings and make them available for translation. Once they are translated, it will
open a pull request to merge the changes into master.Once merged into master, you must [tell Django to compile the .po files to .mo files](https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#compiling-message-files):
```bash
python manage.py compilemessages
```And then commit the changes.
## npm module dependencies
Indigo is migrating to modules written in ES6 using Vue. This code needs to be compiled into a single JS file using webpack.
```
npm install
npx webpack
```During development, using `npx webpack -w` to watch for changes and recompile automatically.
## Testing
To run the tests use:
```bash
python manage.py test
```## Production deployment
Read the [documentation for details on deploying Indigo](http://indigo.readthedocs.org/en/latest/running/index.html).
An example `Dockerfile` and `docker-compose.yml` are provided as a starting point for running Indigo.
## Releasing a New Version
1. Run the tests!
2. Update `__version__` in `indigo/version.py` appropriately
3. Update `docs/changelog.rst`
4. Commit changes
5. Tag: `git tag vX.X.X` and push to github `git push; git push --tags`## License and Copyright
The project is licensed under a [GNU GPL 3 license](LICENSE).
Indigo is Copyright 2015-2020 AfricanLII.