Sen descrición

clovis 44a257516c test: implement test for sms_sender service hai 1 semana
.idea 39360e8322 feat: implement commission enpoints and refactor auth tests hai 1 semana
.vscode 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
alembic cf8849a81e feat: implement commission enpoints and refactor auth tests hai 1 semana
app 44a257516c test: implement test for sms_sender service hai 1 semana
script 24974ed330 Merge remote-tracking branch 'origin/master' hai 10 meses
.env.example 5fe072a956 feat: implement sms status monitoring hai 10 meses
.flake8 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
.gitignore c2d6ef0426 add log.txt to gitignore %!s(int64=2) %!d(string=hai) anos
Dockerfile 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
Readme.md f2dd878d26 Merge remote-tracking branch 'origin/v2' into v2 hai 1 semana
alembic.ini e3127530cc add tags %!s(int64=2) %!d(string=hai) anos
bdlg2023.conf f1224ac6a1 add apache conf %!s(int64=2) %!d(string=hai) anos
docker-compose.dev.yml 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
docker-compose.yml 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
init.sh 71c0e9bb2f first commit %!s(int64=3) %!d(string=hai) anos
poetry.lock d488660724 feat: protect all API for X-organisations requests hai 1 semana
pyproject.toml 39360e8322 feat: implement commission enpoints and refactor auth tests hai 1 semana
requirements-dev.txt f774593f81 cicd: update dependencies hai 1 semana
requirements.txt f774593f81 cicd: update dependencies hai 1 semana
update_password.py ff12e4672c bump dependencies hai 10 meses

Readme.md

bdlg-2023-server

This repository hosts an API that helps volunteer managers plan festival activities on a schedule, associate volunteers to time slots, and send SMS reminders during the event. Volunteer/slot data can also be bootstrapped from a Google Sheet import.

Core concepts

  • Organization — the top-level tenant. Every user belongs to zero or more organizations (multi-org membership is supported). Every project belongs to exactly one organization, which defines who can access it.
  • Global rolesuser (default) or super_admin. Only super_admin can create/edit organizations and manage organization membership.
  • Organization roles (per user, per organization):
    • org_admin — full control over the organization's projects and can change member roles within their own organization.
    • respo_benevole — manages volunteer allocation across the whole project: slots, templates, volunteers, groups, and SMS.
    • respo_commission — read access to the whole project plan; write access limited to templates/slots belonging to the commission(s) they are a member of. Cannot manage volunteers, groups, or SMS directly.
  • Commission (Pôle) — represents a team/area within a project (e.g. "Bar", "Accueil"). A commission's contact info is derived from its members' own profile (name + phone_number) rather than stored as free text — see SlotTemplate.responsible_override for the manual exception case.
  • Volunteer group — a saved, searchable set of volunteers within a project, usable for bulk slot assignment and group SMS.

Getting started

For running the application

git clone ... cd ...

python -m venv venv venv/scripts/activate poetry install

Note, be sure to use python3.11 with this application

Copy .env.example to .env and edit it to configure your setup init.sh uvicorn app.main:app --reload

Debug

python -m app.debug

Run tests

pytest

Run specific tests

pytest app\test\test_volunteer.py

Update requirements

> poetry lock
> poetry export -f requirements.txt --output requirements.txt --without-hashes
> poetry export -f requirements.txt --output requirements-dev.txt --without-hashes --with dev

Regenerate after any backend route or schema change — see the frontend repo's README for details.

Credit

FastAPI project generated using https://github.com/rafsaf/minimal-fastapi-postgres-template