How cauazinkj/condora works
Condomínio Digital is an MVP for condominium administration and QR-based visitor access. Residents, administrators, and gate staff use role-specific web screens; the frontend communicates with a FastAPI API that handles authentication, condominium and resident records, visitor credentials, and gate validation. The backend persists domain records in PostgreSQL and uses Redis for login throttling and token revocation. The README supports the overall frontend/API relationship; more specific frontend-to-service calls are not shown in the sampled evidence.
Main entry points: main.py FastAPI entry · database.py Async database sessions · auth.py Authentication · deps.py Session and role checks
Components 22
Web application
- Role-based screens
frontend/src/app - API services
frontend/src/services
API workflows
- FastAPI entry
backend/app/main.py - Authentication
backend/app/api/v1/endpoints/auth.py - Condominium setup
backend/app/api/v1/endpoints/condominios.py - Resident records
backend/app/api/v1/endpoints/moradores.py - Visitor access
backend/app/api/v1/endpoints/visitantes.py - Gate operations
backend/app/api/v1/endpoints/portaria.py - Administration
backend/app/api/v1/endpoints/admin.py - QR generation and validation
backend/app/services/qr_service.py
Identity and security
- Session and role checks
backend/app/core/deps.py - JWT and passwords
backend/app/core/security.py - Auth cookies
backend/app/core/cookies.py - Rate limits and revocation
backend/app/core/redis.py
Persistence and domain
- Async database sessions
backend/app/db/database.py - Condominium domain records
backend/app/models/models.py - Request and response schemas
backend/app/schemas/schemas.py
Other components
- Administrator
- Resident
- Gate staff
- PostgreSQL
- Redis service
Connections 30
- Administrator → Role-based screens: manages
README.md - Resident → Role-based screens: uses
README.md - Gate staff → Role-based screens: uses
README.md - Role-based screens → API services: uses API services
- API services → FastAPI entry: calls API
README.md - FastAPI entry → Authentication: registers
backend/app/main.py - FastAPI entry → Administration: registers
backend/app/main.py - FastAPI entry → Condominium setup: registers
backend/app/main.py - FastAPI entry → Resident records: registers
backend/app/main.py - FastAPI entry → Gate operations: registers
backend/app/main.py - FastAPI entry → Visitor access: registers
backend/app/main.py - FastAPI entry → Async database sessions: initializes
backend/app/main.py - FastAPI entry → Rate limits and revocation: opens and closes
backend/app/main.py - Authentication → Rate limits and revocation: checks login and revocation
backend/app/api/v1/endpoints/auth.py - Authentication → JWT and passwords: creates and decodes tokens
backend/app/api/v1/endpoints/auth.py - Authentication → Auth cookies: sets and clears
backend/app/api/v1/endpoints/auth.py - Authentication → Async database sessions: queries users
backend/app/api/v1/endpoints/auth.py - Session and role checks → Rate limits and revocation: checks revocation
backend/app/core/deps.py - Session and role checks → JWT and passwords: decodes tokens
backend/app/core/deps.py - Session and role checks → Async database sessions: loads current user
backend/app/core/deps.py - Resident records → Session and role checks: checks roles
backend/app/api/v1/endpoints/moradores.py - Condominium setup → Session and role checks: checks roles
backend/app/api/v1/endpoints/condominios.py - Visitor access → QR generation and validation: delegates QR work
backend/app/api/v1/endpoints/visitantes.py - Visitor access → Async database sessions: uses sessions
backend/app/api/v1/endpoints/visitantes.py - QR generation and validation → Condominium domain records: reads and writes
backend/app/services/qr_service.py - QR generation and validation → Request and response schemas: accepts QR input
backend/app/services/qr_service.py - Async database sessions → PostgreSQL: connects
backend/app/db/database.py - Condominium domain records → Async database sessions: inherits base
backend/app/models/models.py - Rate limits and revocation → Redis service: stores shared state
backend/app/core/redis.py - JWT and passwords → Request and response schemas: validates API data