Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add CONTRIBUTING.md #311

Merged
merged 1 commit into from
Feb 28, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
# Contributing

Commit messages should be written in English.
When contributing to this repository, please first discuss the change you wish to make via issue. We will than discuss the best way to implement it.

We only accept contributions if they are *signed off* with the contributor's real name.
## Code rules

By signing off their contributions, contributors accept the [developer certificate of origin](https://developercertificate.org).
### Backend (API)

If you wish, you can also send your suggestions directly to `contact@code.gouv.fr`.
The buisness logic is in `api/src/core`. Which is split in different parts:

- `api/src/core/usecases`: contains the usecases that are called by the router. This orchestrates the flow of business logic. It should not be specific to the sources, and it should always use a port when accessing a source.
- `api/src/core/helpers`: contains the helpers that are used by the usecases. This can contain all the reusable business logic.
- `api/src/core/ports`: the contracts to discuss with the outside world and infrastructure (database, external APIs, etc.)
- `api/src/core/adapters`: the implementations of the ports. This is the only place where we should have code specific to the sources for example.