Project Case StudySeptember 2023
Daily Language Apps
Mobile-first digital platform that empowers English learners through interactive modules, real-time voice communication, and comprehensive progress tracking.
DesktopMobileNode.jsTypeScriptWebSocketsSocket.ioRedisPostgreSQLExpress.jsReact Native
#Daily Language Apps
##Architectural Overview
Daily Language is an educational platform offering targeted English exercises and social learning for a dedicated userbase. As a Backend Engineer, I developed both the standard REST API handling user progress and the real-time websocket components serving private chat and active voice rooms.
// Mobile Dashboard
##Key Features
Mobile Task Modules
Clean and focused interfaces for specific linguistic tasks: Listening, Reading, and Speaking practice.
Private Text & Voice Chat
Direct 1-on-1 messaging features supporting both text and active voice-calling modules.
Learning History & Statistics
Clear breakdown screens where learners can actively review their past scores and overall progress trends.
Web Admin Dashboard
A secure browser portal for educators to create tasks, organize modules, and monitor user engagement.
##Engineering Highlights
###Live Communication
Supporting voice and chat seamlessly:
- WebSocket Implementation: Heavily leaned on Socket.io to relay chatting events instantly. I built out dedicated namespaces and rooms for private 1-on-1 sessions.
- Temporary State Management: Redis stores active participant metadata (who is currently connected, typing, or speaking) so the database isn't hammered by second-to-second connection updates.

// Private Voice Chat
##My Role and Responsibilities
- Task Scoring Logic: Structured the PostgreSQL schema to store sequential user test results securely, building the logic that aggregates those stats for the mobile history screen.
- Chat Routing: Implemented strict socket events ensuring text and voice handshakes are routed solely to the intended recipients.
- Push Alerts: Connected Firebase FCM to wake up the mobile app when an incoming voice call or new class task drops.

// History and Stats
##Technical Stack
- Languages: Node.js, TypeScript
- Real-Time Engine: Socket.io, WebSockets
- Database: PostgreSQL, Redis
- Frontend Integration: React Native (Mobile), React (Admin Web)
- Services: Firebase FCM