Skip to content

Getting started

First, clone the project

git clone git@gitlab.com:la-chariotte/la_chariotte.git

Virtual environment

To prevent the project's necessary libraries from conflicting with those on your system, it may be beneficial to install a virtual environment:

python3 -m venv .venv

Once the virtual environment is installed, you can activate it:

source .venv/bin/activate

Installing the dependencies

Weasyprint

We are using Weasyprint for .pdf generation, which requires certain packages on your machine. You can follow the instructions on this page to install them.

Then, you can retrieve the Python dependencies:

pip install -e ".[dev]"

And the frontend dependencies:

npm install
yarn install

Setting up the database

We recommend using PostgreSQL for now (installation instructions here).

For development, we recommend creating a database named chariotte accessible by the user and password of the same name.

In a PostgreSQL prompt, enter this:

CREATE ROLE chariotte WITH
    LOGIN
    NOSUPERUSER
    CREATEDB
    NOCREATEROLE
    INHERIT
    NOREPLICATION
    CONNECTION LIMIT -1
    PASSWORD 'xxxxxx';
CREATE DATABASE chariotte
    WITH
    OWNER = chariotte
    ENCODING = 'UTF8'
    CONNECTION LIMIT = -1
    IS_TEMPLATE = False;

Create a configuration file

Create a local configuration file named "local_settings.py" at the project root :

local_settings.py
from la_chariotte.settings import *

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "chariotte",
        "USER": "chariotte",
        "PASSWORD": "chariotte",
        "HOST": "localhost",
    }
}

Start the server

Everything should now be ready to start the server:

python manage.py migrate --settings=local_settings
python manage.py runserver --settings=local_settings

To create a superuser, who will have access to the admin interface (/admin):

python manage.py createsuperuser

Working with emails

To test the appearance of emails, you can use Sendria:

pip install sendria
sendria --db mails.sqlite
$NAVIGATOR http://127.0.0.1:1080