How ibrahimkataya/i-stream-app works
This is a language-exchange social app: users sign up, complete language profiles, discover people, build friendships, then chat or call. The frontend routes these stages; the backend provides cookie/JWT authentication, profile and friendship operations, and Stream credentials/user synchronization. Source excerpts do not include route implementations, frontend API calls, or chat screens, so those links are limited to wiring established by the sampled code and repository structure.
Main entry points: App.jsx Route app · User.js User records · server.js HTTP server · auth.route.js Auth routes
Components 24
Web app
- Route app
frontend/src/App.jsx - Sign-in pages
frontend/src/pages/LoginPage.jsx - Sign-up page
frontend/src/pages/SignUpPage.jsx - Profile setup
frontend/src/pages/OnboardingPage.jsx - People discovery
frontend/src/pages/HomePage.jsx - Friend requests
frontend/src/pages/NotificationsPage.jsx - Chat screen
frontend/src/pages/ChatPage.jsx - Call screen
frontend/src/pages/CallPage.jsx - API client
frontend/src/lib/api.js
Backend API
- HTTP server
backend/src/server.js - Auth routes
backend/src/routes/auth.route.js - User routes
backend/src/routes/user.route.js - Chat routes
backend/src/routes/chat.route.js - Auth workflows
backend/src/controllers/auth.controller.js - Friend workflows
backend/src/controllers/user.controller.js - Stream token
backend/src/controllers/chat.controller.js - JWT protection
backend/src/middleware/auth.middleware.js
Persistence
- DB connection
backend/src/lib/db.js - User records
backend/src/models/User.js - Friend requests
backend/src/models/FriendRequest.js
External services
- Stream integration
backend/src/lib/stream.js
Other components
- User
- MongoDB
- Stream service
Connections 26
- User → Route app: uses
- Route app → Sign-in pages: routes
- Route app → Sign-up page: routes
- Route app → Profile setup: routes
- Route app → People discovery: routes
- Route app → Friend requests: routes
- Route app → Chat screen: routes
- Route app → Call screen: routes
- Route app → API client: loads auth
- HTTP server → Auth routes: mounts
- HTTP server → User routes: mounts
- HTTP server → Chat routes: mounts
- Auth routes → Auth workflows: dispatches
- Auth routes → JWT protection: guards
- User routes → Friend workflows: dispatches
- Chat routes → Stream token: dispatches
- JWT protection → User records: loads user
- Auth workflows → User records: reads/writes
- Auth workflows → Stream integration: syncs user
- Friend workflows → User records: reads/writes
- Friend workflows → Friend requests: reads/writes
- Stream token → Stream integration: creates token
- DB connection → MongoDB: connects
- User records → MongoDB: persists
- Friend requests → MongoDB: persists
- Stream integration → Stream service: calls