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

// 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

// 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

// 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