How david1ddt/atuu works
The server contains user-token endpoints and an in-memory, socket-driven room controller with a card deck; the supplied room-controller excerpt is incomplete, so its event wiring and game lifecycle cannot be mapped reliably. The Expo client is an uncustomized welcome scaffold, and no client-to-server integration is evidenced. The user model and route behavior are represented from their paths and sampled imports, but their implementations were not sampled.
Main entry points: user.routes.ts User routes · user.controller.ts Create user · deserializeUser.ts Token middleware · main.ts Express server
Components 14
Expo scaffold
- Welcome screen
client/src/app/index.tsx - App navigation
client/src/app/_layout.tsx
User identity
- Express server
server/src/main.ts - User routes
server/src/modules/user/user.routes.ts - Create user
server/src/modules/user/user.controller.ts - User model
server/src/modules/user/user.model.ts - Token middleware
server/src/middleware/deserializeUser.ts
Realtime rooms
- Socket player
server/src/middleware/deserializeUser.ts - Room controller
server/src/modules/room/room.controller.ts - In-memory rooms
server/src/modules/room/room.controller.ts
Persistence
- Database connection
server/src/utils/database.ts - MongoDB
Other components
- App visitor
- JWT library
Connections 13
- App visitor → Welcome screen: views
- Welcome screen → App navigation: renders within
- Express server → User routes: mounts routes
- User routes → Create user: calls create
- Create user → User model: creates user
- Create user → JWT library: signs token
- User routes → Token middleware: guards profile
- Token middleware → JWT library: verifies token
- Token middleware → User routes: sets user
- Socket player → Room controller: provides player
- Room controller → In-memory rooms: updates rooms
- Express server → Database connection: connects on start
- Database connection → MongoDB: connects