2024-01-03 10:09:31 +01:00
|
|
|
# People
|
|
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
People is an application to handle users and teams, and distribute permissions accross [La Suite](https://lasuite.numerique.gouv.fr/).
|
2024-02-01 18:15:25 +01:00
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
It is built on top of [Django Rest
|
2024-01-03 10:09:31 +01:00
|
|
|
Framework](https://www.django-rest-framework.org/).
|
|
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
All interoperabilities will be described in `docs/interoperability`.
|
|
|
|
|
|
2024-01-03 10:09:31 +01:00
|
|
|
## Getting started
|
|
|
|
|
|
|
|
|
|
### Prerequisite
|
|
|
|
|
|
|
|
|
|
Make sure you have a recent version of Docker and [Docker
|
|
|
|
|
Compose](https://docs.docker.com/compose/install) installed on your laptop:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ docker -v
|
|
|
|
|
Docker version 20.10.2, build 2291f61
|
|
|
|
|
|
|
|
|
|
$ docker compose -v
|
|
|
|
|
docker compose version 1.27.4, build 40524192
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> ⚠️ You may need to run the following commands with `sudo` but this can be
|
|
|
|
|
> avoided by assigning your user to the `docker` group.
|
|
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
### Bootstrap project
|
2024-01-03 10:09:31 +01:00
|
|
|
|
|
|
|
|
The easiest way to start working on the project is to use GNU Make:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make bootstrap
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-12 15:10:37 +02:00
|
|
|
This command builds the `app-dev` container, installs dependencies, performs
|
2024-01-03 10:09:31 +01:00
|
|
|
database migrations and compile translations. It's a good idea to use this
|
|
|
|
|
command each time you are pulling code from the project repository to avoid
|
2024-02-02 15:36:24 +01:00
|
|
|
dependency-related or migration-related issues.
|
2024-01-03 10:09:31 +01:00
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
Your Docker services should now be up and running! 🎉
|
2024-01-03 10:09:31 +01:00
|
|
|
|
2024-02-02 15:36:24 +01:00
|
|
|
Note that if you need to run them afterward, you can use the eponym Make rule:
|
2024-01-03 10:09:31 +01:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make run
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-12 15:10:37 +02:00
|
|
|
or if you want to run them in development mode (with live reloading):
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make run-dev
|
|
|
|
|
```
|
|
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
You can check all available Make rules using:
|
2024-01-03 10:09:31 +01:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make help
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Django admin
|
|
|
|
|
|
|
|
|
|
You can access the Django admin site at
|
|
|
|
|
[http://localhost:8071/admin](http://localhost:8071/admin).
|
|
|
|
|
|
|
|
|
|
You first need to create a superuser account:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make superuser
|
|
|
|
|
```
|
|
|
|
|
|
2024-07-31 11:20:27 +02:00
|
|
|
You can then login with sub `admin` and password `admin`.
|
2024-04-18 11:01:33 +02:00
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
### Adding demo content
|
|
|
|
|
|
|
|
|
|
You can create a basic demo site by running:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make demo
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Setting dimail database
|
|
|
|
|
|
|
|
|
|
To ease local development when working on interoperability between people and dimail, we embark dimail-api in a container running in "fake" mode.
|
|
|
|
|
|
|
|
|
|
To populate dimail local database with users/domains/permissions needed for basic development:
|
|
|
|
|
- log in with "people" user
|
|
|
|
|
- run `make dimail-setup-db`
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 17:58:14 +01:00
|
|
|
### Run frontend
|
|
|
|
|
|
|
|
|
|
Run the front with:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ make run-front-desk
|
|
|
|
|
```
|
|
|
|
|
|
2024-10-02 19:38:17 +02:00
|
|
|
Then access [http://localhost:3000](http://localhost:3000) with :
|
2024-03-19 17:58:14 +01:00
|
|
|
user: people
|
|
|
|
|
password: people
|
|
|
|
|
|
2024-01-03 10:09:31 +01:00
|
|
|
## Contributing
|
|
|
|
|
|
|
|
|
|
This project is intended to be community-driven, so please, do not hesitate to
|
|
|
|
|
get in touch if you have any question related to our implementation or design
|
|
|
|
|
decisions.
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|
This work is released under the MIT License (see [LICENSE](./LICENSE)).
|