Shared property management for small communities — Telegram bot + Mini App for tracking bills, balances, and service periods.
- Live docs site: https://sosenki-docs.sharedgoals.ru/
- Live slides: https://sosenki-docs.sharedgoals.ru/presentation/
- Slides (Markdown source in repo):
docs/presentation/slides.md - Slides (HTML viewer in repo):
docs/presentation/index.html
- Make shared expenses transparent for co-owners/stakeholders.
- Keep it self-hosted and simple (YAGNI/KISS): SQLite + Python + Telegram as the UI.
- Prefer auditable workflows over complex dashboards.
- Open source and practical: small pieces, clear boundaries, minimal moving parts.
- Telegram-first UX: bot + Mini App, no separate “web product”.
- FastAPI app:
src/api/webhook.pyPOST /webhook/telegram— Telegram webhook updatesGET /health— health checkGET /mini-app/*— serves static Mini AppPOST /api/mini-app/*— Mini App API/mcp— FastMCP HTTP app (tools)
- Service layer (business logic):
src/services/*_service.py - Mini App assets:
src/static/mini_app/(index.html,app.js,translations.json)
Use the Makefile targets; don’t run app lifecycle commands directly.
make sync
make serveRun tests:
make testFormatting:
make formatSee the Makefile help for the full workflow:
make help- Seeding lives in
seeding/and is intentionally separate from runtime code. - Reads data from Google Sheets; see
seeding/README.md. - Run with the application offline:
make seed- Repo-specific conventions are documented in
.github/copilot-instructions.md.
Live docs site: https://sosenki-docs.sharedgoals.ru/
Auto-generated docs: DeepWiki