/legaldb

CC Legal Database: curated repository of Case Law and Scholarship data from around the world in a Django based website.

Primary LanguageHTMLMIT LicenseMIT

legaldb

MIT license Code style: black

CC Legal Database: curated repository of Case Law and Scholarship data from around the world in a Django based website.

legaldb.creativecommons.org

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Contributing

See CONTRIBUTING.md. It contains some general instructions that should be followed when contributing to any of the Creative Commons open-source repositories.

Development setup

Copy .env.template and set environment variables (like DJANGO_DEBUG_ENABLED=True for local development and testing) and secret keys in a .env file.

cp .env.template .env

Using Pipenv

To follow these instructions, Python 3 and Pipenv are required.

Install dependencies with pipenv.

pipenv install --dev

Run the migrations to create the database (we use Postgresql in this case).

pipenv run python manage.py migrate

The next step is to create an admin account for Django admin.

pipenv run python manage.py createsuperuser

Finally you can start a development server with:

pipenv run python manage.py runserver

and see a local version of the website following http://127.0.0.1:8000/ on the browser.

Using Docker-Compose

Ensure that you have Docker and Docker Compose installed on your system For installation instructions refer: https://docs.docker.com/install/

Run Migrations

Run the migrations to create database schema (we use Postgresql in this case):

docker-compose run app sh -c "python manage.py migrate"

Starting the Server

docker-compose up

This will start postgres and django server hosted at http://127.0.0.1:8000/

Execute Commands

To execute any commands inside django docker container, follow this format:

docker-compose run app sh -c "command here"

Webpack

Open another terminal and navigate to webpack folder using:

cd webpack

To install webpack dependencies use:

npm install

or alternatively to install from package-lock.json use:

npm ci

If you want to make changes to scss files during development run:

npm run watch

otherwise run the following command

npm run build

After made code changes and before commit, check code style from main directory using.

Examples

  • Create a Super User:

    docker-compose run app sh -c "python manage.py create superuser"
  • Collect static files:

    docker-compose run app sh -c "python manage.py collectstatic"

Code Style

After making changes in code and before commit, check code style.

pipenv run black .
pipenv run flake8

Development Blog Posts

Posts in the Outreachy May 2020 round: CC Legal Database series

Deploy to Heroku

See deploy_to_heroku.md.

License