Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

608 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LingoFit

App development project of the SNU Computer Science course SWPP (M1522.002400, 2025-02)

logo

LingoFit is a learning service that generates and provides AI-based English listening content. It evaluates not only the user’s personal interests but also their English vocabulary and grammatical proficiency, and uses this information to create personalized content tailored to each user.

Motivation

Without relying on explicit quizzes or tests, LingoFit analyzes users’ natural in-app interactions to automatically track their proficiency level. Our goal is to provide a comfortable English listening experience that blends seamlessly into daily life, without making users feel evaluated or tested.

Project Overview Poster

poster

Features

  • Personalized Audio Generation: Real-time generation of AI-powered English listening content tailored to the user’s proficiency level and interests, leveraging the GPT-4o API and ElevenLabs TTS.
  • Listening Content History & Audio Player: Storage and retrieval of generated audio content, allowing users to replay previous listening sessions at any time.
  • Context-Aware Vocabulary System: Context-locked word definitions tied to the original script, enabling accurate vocabulary learning without semantic distortion.
  • Adaptive Level Management: A flexible proficiency management system combining level tests, session feedback, and manual level adjustment.
  • Onboarding & Initial Survey: Reduced entry barriers through initial surveys and level-appropriate sample audio during onboarding.
  • Learning Statistics & Progress Tracking: Visualization of learning time and activity data to reinforce user engagement and track long-term progress.

System Architecture

arch

Frontend: React Native–based mobile application for Android

Backend: FastAPI server deployed on AWS EC2

AI: GPT and ElevenLabs APIs for script generation and audio synthesis

Getting Started

Backend

Prerequisites

  • Python 3.x
  • API keys: OPENAI_API_KEY, ELEVENLABS_API_KEY
  • (Optional) Conda if you use the provided environment

Installation

cd backend

./setup.sh              # one-time setup (if provided)
conda activate swpp-backend

# export OPENAI_API_KEY=...
# export ELEVENLABS_API_KEY=...

uvicorn app.main:app --reload --host 0.0.0.0 --port 3000  # http://localhost:3000

Frontend

Prerequisites

  • Node.js (LTS) + nvm
  • Java 17 (LTS)
  • Android Studio + Android SDK (or physical device + Expo Go)

Installation(on Emulator)

git clone git@github.com:snuhcs-course/swpp-2025-project-team-04.git
cd swpp-2025-project-team-04
git checkout iteration-5-demo

cd frontend
nvm use                 # use project-pinned Node version
npm install

# create frontend/.env
# EXPO_PUBLIC_API_URL=http://localhost:3000  # or deployed backend URL

npm run android         # or: npx expo run:android

Demo video

demo video link

Technical Stack and Implementation Details

Detailed explanations of the system architecture, including CI/CD, testing strategies, and API design, are documented in the Wiki under the Design Documentation section.

Research on User Level Management and Personalized Content Generation

We developed a proprietary level management logic grounded in HCI implicit user modeling research. This approach enables adaptive user-level tracking and personalized content generation without explicit testing. For further details, please refer to the Level Management System page in the Wiki.

About

snuhcs-course-2025-2-swpp-swpp-2025-project-SNU-SWPP-Template-2 created by GitHub Classroom

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages