How thalath/library-management-system-server-site works
This is a Flask user, authentication, email-OTP, and role-based-permission API. Its main workflow accepts registration or login requests, validates credentials and user data, creates users and tokens, and supports verification and account administration. Separate API branches manage users, roles, and permissions; permission middleware checks active-user status and grants. The graph reflects shown calls and source-index references; the README is empty, and some route wiring and unsampled implementation details remain unverified.
Main entry points: auth_route.py Auth routes · role_route.py Role routes · user_route.py User routes · user_service.py User service
Components 26
API routes
- App setup
app/__init__.py - Auth routes
app/routes/auth_route.py - User routes
app/routes/user_route.py - Role routes
app/routes/role_route.py - Permission routes
app/routes/permission_route.py
Identity and verification
- User service
app/services/user_service.py - Email OTP service
app/services/email_service.py - OTP utilities
app/utils/otp.py - Auth schemas
app/schemas/auth_schema.py - User schemas
app/schemas/user_schema.py
Access control
- Permission guard
middleware/permission_extended.py - Role service
app/services/role_service.py - Permission service
app/services/permission_service.py - Role schemas
app/schemas/role_schemas.py
Persistence
- User model
app/models/user.py - Role model
app/models/role.py - Permission model
app/models/permission.py - Email OTP model
app/models/email_otp.py - Token blocklist
app/models/token_blocklist.py - Role associations
app/models/associations.py - User repository
app/repositories/user_repository.py - Role repository
app/repositories/role_repository.py - Permission repository
app/repositories/permission_repository.py - Flask extensions
extensions.py
Other components
- API client
- SQL database
Connections 42
- API client → Auth routes: sends requests
- API client → User routes: sends requests
- API client → Role routes: sends requests
- API client → Permission routes: sends requests
- App setup → Auth routes: registers
app/__init__.py - App setup → User routes: registers
app/__init__.py - App setup → Role routes: registers
app/__init__.py - App setup → Permission routes: registers
app/__init__.py - Auth routes → User service: creates users
app/routes/auth_route.py - Auth routes → User repository: looks up users
app/routes/auth_route.py - Auth routes → Email OTP service: sends OTP
app/routes/auth_route.py - Auth routes → OTP utilities: generates OTP
app/routes/auth_route.py - Auth routes → Auth schemas: validates input
app/routes/auth_route.py - Auth routes → User model: queries users
app/routes/auth_route.py - Auth routes → Email OTP model: queries OTPs
app/routes/auth_route.py - Auth routes → Token blocklist: blocks tokens
app/routes/auth_route.py - User routes → User service: delegates to
app/routes/user_route.py - User routes → User schemas: validates input
app/routes/user_route.py - User routes → Permission guard: guards routes
app/routes/user_route.py - Role routes → Role service: delegates to
app/routes/role_route.py - Role routes → Permission guard: guards routes
app/routes/role_route.py - Role routes → Role schemas: validates input
app/routes/role_route.py - Role routes → Role repository: accesses roles
app/routes/role_route.py - Role routes → Permission repository: accesses permissions
app/routes/role_route.py - Permission routes → Permission service: delegates to
app/routes/permission_route.py - Permission routes → Permission guard: guards routes
app/routes/permission_route.py - User service → User repository: persists users
app/services/user_service.py - User service → Role repository: looks up roles
app/services/user_service.py - User service → User model: creates users
app/services/user_service.py - Email OTP service → OTP utilities: uses OTP
app/services/email_service.py - Email OTP service → Email OTP model: stores OTPs
app/services/email_service.py - Role service → Role repository: accesses roles
app/services/role_service.py - Role service → Permission repository: accesses permissions
app/services/role_service.py - Permission service → Permission model: manages permissions
app/services/permission_service.py - Permission guard → User model: checks grants
middleware/permission_extended.py - User repository → User model: queries users
app/repositories/user_repository.py - Role repository → Role model: queries roles
app/repositories/role_repository.py - Permission repository → Permission model: queries permissions
app/repositories/permission_repository.py - User model → Role associations: uses association
app/models/user.py - Role model → Role associations: uses association
app/models/role.py - Permission model → Role associations: uses association
app/models/permission.py - Flask extensions → SQL database: configures ORM