Нет описания

clovis 8bc2d44253 bump version 1 день назад
.idea 39360e8322 feat: implement commission enpoints and refactor auth tests 1 неделя назад
.vscode 71c0e9bb2f first commit 3 лет назад
alembic 48990d9594 test: implement project constraints 1 неделя назад
app 32b97e7ef8 allow status to all users 4 дней назад
script 24974ed330 Merge remote-tracking branch 'origin/master' 10 месяцев назад
.env.example 2b1b8c7f86 test: implement coedition 6 дней назад
.flake8 71c0e9bb2f first commit 3 лет назад
.gitignore c2d6ef0426 add log.txt to gitignore 2 лет назад
Readme.md 2b1b8c7f86 test: implement coedition 6 дней назад
alembic.ini e3127530cc add tags 2 лет назад
bdlg2023.conf f1224ac6a1 add apache conf 2 лет назад
init.sh 71c0e9bb2f first commit 3 лет назад
poetry.lock 2b1b8c7f86 test: implement coedition 6 дней назад
pyproject.toml 8bc2d44253 bump version 1 день назад
requirements-dev.txt 2b1b8c7f86 test: implement coedition 6 дней назад
requirements.txt 2b1b8c7f86 test: implement coedition 6 дней назад
update_password.py ff12e4672c bump dependencies 10 месяцев назад

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