How 0x-fyve/popi works
Popi is a Django API and Channels application for account access and creating or joining rooms, with a WebSocket route for room connections. The visible HTTP workflow includes registration/login and authenticated room creation or joining. The consumer, URL modules, and models were not sampled, so room messaging behavior and some route-to-view details are not inferred.
Main entry points: views.py Account endpoints · urls.py HTTP routes · asgi.py ASGI dispatch · settings.py Runtime settings
Components 15
Application entry
- HTTP routes
Popi/urls.py - ASGI dispatch
Popi/asgi.py - Runtime settings
Popi/settings.py
Accounts
- Account routes
accounts/urls.py - Account endpoints
accounts/views.py - Registration serializer
accounts/serializers.py - Cookie JWT auth
accounts/authentication.py
Rooms
- WebSocket routes
rooms/routing.py - Room consumer
rooms/consumers.py - Room routes
rooms/urls.py - Room endpoints
rooms/views.py
Persistence
- Room model
rooms/models.py - User store
- Room store
Other components
- Client
Connections 14
- Client → HTTP routes: HTTP requests
- HTTP routes → Account routes: dispatches
- HTTP routes → Room routes: dispatches
- Account endpoints → Registration serializer: validates registration
- Account endpoints → User store: creates users
- Account endpoints → Client: sets auth cookies
- Cookie JWT auth → User store: loads user
- Runtime settings → Cookie JWT auth: configures auth
- Room endpoints → Room model: queries and creates
- Room model → Room store: persists rooms
- ASGI dispatch → WebSocket routes: routes WebSockets
- WebSocket routes → Room consumer: dispatches connection
- Client → ASGI dispatch: WebSocket connection
- Runtime settings → ASGI dispatch: configures Channels