Skip to content

About

Frontend(React) Repository for 2026 GDGoC quad S : Solve Together Team MORETALE

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation


MORETALE

More Language, More Tale!


MORETALE Frontend

우리 κ°€μ‘±μ˜ μ–Έμ–΄λ‘œ 이야기가 μ‹œμž‘λ˜κ³  μ™„μ„±λ˜λŠ” 곡간.

MORETALE FrontendλŠ” AI 동화 생성뢀터 λ„μ„œκ΄€, 단어μž₯, ν€΄μ¦ˆ, λ¦¬μ›Œλ“œ μ‹œμŠ€ν…œκΉŒμ§€ λͺ¨λ“  κΈ°λŠ₯을 직관적인 흐름과 즐거운 μΈν„°λž™μ…˜μœΌλ‘œ μ—°κ²°ν•©λ‹ˆλ‹€.

λ‹€λ¬Έν™” κ°€μ • 어린이듀이 μ–Έμ–΄μ˜ μž₯벽을 λ„˜μ–΄ κ°€μ‘±κ³Ό ν•¨κ»˜ 이야기λ₯Ό 읽고, λ“£κ³ , 배우며 μ„±μž₯ν•  수 μžˆλ„λ‘ 이쀑언어 기반의 μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.


React | TypeScript | Styled Components | Vite | Vercel


πŸ‘₯ Developer


Yeonjae Lee
Sookmyung Women's University
Member, Frontend

πŸ“Œ Overview

MORETALE FrontendλŠ” μ‚¬μš©μž 인증, ν”„λ‘œν•„ 관리, AI 동화 생성, λ„μ„œκ΄€, ν€΄μ¦ˆ, 단어μž₯, TTS μž¬μƒ, 꿀단지 보상 μ‹œμŠ€ν…œ λ“± μ‚¬μš©μžκ°€ 직접 κ²½ν—˜ν•˜λŠ” λͺ¨λ“  κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” React 기반 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

Backend와 μ—°λ™ν•˜μ—¬ μ‚¬μš©μž μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³ , μƒμ„±λœ 동화, ν€΄μ¦ˆ, 단어μž₯, μŒμ„± μ½˜ν…μΈ λ₯Ό 직관적인 UI와 μΈν„°λž™μ…˜μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. λ˜ν•œ 이쀑언어 동화 읽기, ν€΄μ¦ˆ 풀이, 단어 ν•™μŠ΅, λ¦¬μ›Œλ“œ νšλ“ 과정을 ν•˜λ‚˜μ˜ μ‚¬μš©μž κ²½ν—˜μœΌλ‘œ μžμ—°μŠ€λŸ½κ²Œ μ—°κ²°ν•©λ‹ˆλ‹€.

MORETALE은 λ‹€λ¬Έν™” κ°€μ • 어린이와 λΆ€λͺ¨κ°€ ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλŠ” 이쀑언어 동화 생성 μ„œλΉ„μŠ€λ₯Ό λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.

FrontendλŠ” μ–Έμ–΄μ˜ μž₯λ²½ 없이 이야기λ₯Ό 읽고, λ“£κ³ , 배우며 μ„±μž₯ν•  수 μžˆλŠ” μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.


βš’οΈ Detailed Tech Stack

Role Type
Language TypeScript
Framework React
Build Tool Vite
Styling Styled Components
Routing React Router
API Client Fetch API
Authentication JWT Google OAuth
Deployment Vercel

✨ Core Features

πŸ” Authentication

Google OAuth2 기반 λ‘œκ·ΈμΈμ„ μ§€μ›ν•©λ‹ˆλ‹€.

  • Google OAuth2 둜그인 연동
  • 둜그인 μƒνƒœ 관리 및 JWT μ €μž₯
  • Access Token 인증 처리
  • μ‚¬μš©μž 인증 μƒνƒœ μœ μ§€
  • 둜그인, λ‘œκ·Έμ•„μ›ƒ 및 νƒˆν‡΄ κΈ°λŠ₯ 제곡

πŸ‘€ User & Profile

μ‚¬μš©μžμ˜ 정보λ₯Ό μ„€μ •ν•˜κ³  관리할 수 μžˆλŠ” ν”„λ‘œν•„ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • μ‚¬μš©μž ν”„λ‘œν•„ 생성 및 μˆ˜μ •
  • μ£Ό μ–Έμ–΄ 및 보쑰 μ–Έμ–΄ μ„€μ •
  • μ‚¬μš©μž 맞좀 동화 생성을 μœ„ν•œ ν”„λ‘œν•„ 정보 μž…λ ₯

πŸ“– Tale

AIκ°€ μƒμ„±ν•œ 동화λ₯Ό 읽고 ν•™μŠ΅ν•  수 μžˆλŠ” 동화 κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

  • AI 동화 생성 μš”μ²­
  • 생성 μ§„ν–‰ μƒνƒœ 확인
  • μƒμ„±λœ 동화 쑰회
  • ν‘œμ§€ 및 일러슀트 기반 동화 감상
  • 언어별 λ¬Έμž₯ TTS μŒμ„± λ“£κΈ°
  • Web Speech API 기반 단어 μŒμ„± λ“£κΈ°
  • 단어 μ €μž₯ 및 μ‚­μ œ

πŸ”€ Vocabulary

동화 속 단어λ₯Ό ν•™μŠ΅ν•  수 μžˆλ„λ‘ 단어μž₯ κΈ°λŠ₯을 κ΄€λ¦¬ν•©λ‹ˆλ‹€.

  • 동화별 단어 μ €μž₯ 및 쑰회
  • 단어 의미 및 λ²ˆμ—­ 정보 확인
  • Web Speech API 기반 단어 μŒμ„± λ“£κΈ°

🧠 Quiz

μƒμ„±λœ 동화λ₯Ό 기반으둜 ν€΄μ¦ˆ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • 동화 기반 ν€΄μ¦ˆ 풀이
  • ν€΄μ¦ˆ 문제 및 선택지 확인
  • μ‚¬μš©μž μ •λ‹΅ 제좜
  • μ •λ‹΅ μ—¬λΆ€ 및 채점 κ²°κ³Ό 확인

🍯 Honey Jar

μ‚¬μš©μžμ˜ ν™œλ™μ— λ”°λ₯Έ 보상을 확인할 수 μžˆλŠ” 꿀단지 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • 꿀단지 λ³΄μœ λŸ‰ 확인
  • 동화 읽기 및 ν€΄μ¦ˆ 풀이 결과와 연동
  • ν•™μŠ΅ 동기 λΆ€μ—¬λ₯Ό μœ„ν•œ λ¦¬μ›Œλ“œ κ²½ν—˜ 제곡

πŸš€ Deployment

MORETALE FrontendλŠ” Vercel 기반으둜 λ°°ν¬λ©λ‹ˆλ‹€.

Flow

GitHub Repository
  ↓
Vercel
  ↓
Vite Build
  ↓
Production Deployment

Pipeline

GitHub Repository와 Vercel을 μ—°λ™ν•˜μ—¬ 배포λ₯Ό μžλ™ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

main λΈŒλžœμΉ˜μ— λ³€κ²½ 사항이 반영되면 Vercelμ—μ„œ μžλ™μœΌλ‘œ ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜κ³  λ°°ν¬ν•©λ‹ˆλ‹€. 배포된 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ΅œμ‹  λ²„μ „μœΌλ‘œ μ¦‰μ‹œ 반영되며, μ‚¬μš©μžλŠ” λ³„λ„μ˜ μ—…λ°μ΄νŠΈ 없이 μƒˆλ‘œμš΄ κΈ°λŠ₯κ³Ό κ°œμ„  사항을 μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Environment Configuration

Vercel ν™˜κ²½ λ³€μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ API μ„œλ²„ μ£Όμ†Œ 및 μ„œλΉ„μŠ€ 섀정을 κ΄€λ¦¬ν•©λ‹ˆλ‹€.

λΉŒλ“œ μ‹œ ν™˜κ²½ λ³€μˆ˜(VITE_API_BASE_URL)λ₯Ό μ£Όμž…ν•˜μ—¬ 개발 ν™˜κ²½κ³Ό 운영 ν™˜κ²½μ„ λΆ„λ¦¬ν•˜κ³ , Backend μ„œλ²„μ™€ μ•ˆμ „ν•˜κ²Œ 톡신할 수 μžˆλ„λ‘ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.


πŸ›« Getting Started

1. Clone the Repository

git clone https://github.com/GDGoC-quadS-Team1/MoreTale-frontend.git
cd MoreTale-frontend

2. Install Dependencies

ν”„λ‘œμ νŠΈ 싀행에 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.

npm install

3. Create Environment File

루트 디렉터리에 .env νŒŒμΌμ„ μƒμ„±ν•˜κ³  ν•„μš”ν•œ 값을 μž…λ ₯ν•©λ‹ˆλ‹€.
μ£Όμš” ν™˜κ²½λ³€μˆ˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

VITE_API_BASE_URL=http://localhost:8080

4. Run the Application

개발 μ„œλ²„λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

npm run dev

5. Build the Project

ν”„λ‘œλ•μ…˜ λΉŒλ“œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
λΉŒλ“œ 결과물은 dist 디렉터리에 μƒμ„±λ©λ‹ˆλ‹€.

npm run build

6. Preview Production Build

λΉŒλ“œ κ²°κ³Όλ₯Ό λ‘œμ»¬μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

npm run preview

7. Check the Application

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜λ©΄ μ•„λž˜ μ£Όμ†Œλ‘œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

http://localhost:5173

πŸ“‚ Folder Structure

MoreTale-frontend
β”œβ”€β”€ public
β”‚   └── favicon.svg
β”‚
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ apis
β”‚   β”‚   β”œβ”€β”€ user.ts
β”‚   β”‚   β”œβ”€β”€ tale.ts
β”‚   β”‚   β”œβ”€β”€ stories.ts
β”‚   β”‚   β”œβ”€β”€ library.ts
β”‚   β”‚   β”œβ”€β”€ vocabulary.ts
β”‚   β”‚   └── quiz.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ assets
β”‚   β”‚   β”œβ”€β”€ fonts
β”‚   β”‚   β”‚   └── Pretendard-*.ttf
β”‚   β”‚   └── images
β”‚   β”‚
β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”œβ”€β”€ profile
β”‚   β”‚   β”‚   β”œβ”€β”€ ProfileForm.tsx
β”‚   β”‚   β”‚   └── ProfileEditModal.tsx
β”‚   β”‚   β”œβ”€β”€ BookCard.tsx
β”‚   β”‚   β”œβ”€β”€ Header.tsx
β”‚   β”‚   β”œβ”€β”€ InputField.tsx
β”‚   β”‚   β”œβ”€β”€ Slogan.tsx
β”‚   β”‚   └── YellowButton.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ lib
β”‚   β”‚   β”œβ”€β”€ api.ts
β”‚   β”‚   β”œβ”€β”€ auth.ts
β”‚   β”‚   β”œβ”€β”€ speechSynthesis.ts
β”‚   β”‚   └── taleGenerationSession.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ pages
β”‚   β”‚   β”œβ”€β”€ tale
β”‚   β”‚   β”‚   β”œβ”€β”€ IntroPage.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ PromptPage.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ LanguagePage.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ LoadingPage.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ CompletePage.tsx
β”‚   β”‚   β”‚   └── ReadPage.tsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ library
β”‚   β”‚   β”‚   β”œβ”€β”€ LibraryPage.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ VocaListPage.tsx
β”‚   β”‚   β”‚   └── VocabularyPage.tsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ quiz
β”‚   β”‚   β”‚   β”œβ”€β”€ QuizListPage.tsx
β”‚   β”‚   β”‚   └── QuizPlayPage.tsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ LoginPage.tsx
β”‚   β”‚   β”œβ”€β”€ OnboardingPage.tsx
β”‚   β”‚   β”œβ”€β”€ ProfileComplete.tsx
β”‚   β”‚   β”œβ”€β”€ HomePage.tsx
β”‚   β”‚   └── MyPage.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ App.tsx
β”‚   β”œβ”€β”€ main.tsx
β”‚   β”œβ”€β”€ App.css
β”‚   β”œβ”€β”€ index.css
β”‚   └── vite-env.d.ts
β”‚
β”œβ”€β”€ .env (not included in github repo)
β”œβ”€β”€ index.html
β”œβ”€β”€ vite.config.ts
β”œβ”€β”€ vercel.json
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsconfig.app.json
β”œβ”€β”€ tsconfig.node.json
β”œβ”€β”€ eslint.config.js
└── README.md

βœ… Main Contributions

  • React, TypeScript 기반 ν”„λ‘ νŠΈμ—”λ“œ ꡬ쑰 섀계
  • Styled Components 기반 UI μ»΄ν¬λ„ŒνŠΈ 및 λ””μžμΈ μ‹œμŠ€ν…œ ꡬ좕
  • Google OAuth2 둜그인 및 JWT 기반 인증 흐름 κ΅¬ν˜„
  • 이쀑언어 동화 생성, 단어 ν•™μŠ΅, ν€΄μ¦ˆ ν”Œλ‘œμš° κ΅¬ν˜„
  • Web Speech API 기반 단어 TTS κΈ°λŠ₯ κ΅¬ν˜„
  • BackendΒ·AI μ„œλ²„ API 연동 및 데이터 처리 둜직 κ΅¬ν˜„
  • Vercel 기반 CI/CD 및 배포 ν™˜κ²½ ꡬ성

About

Frontend(React) Repository for 2026 GDGoC quad S : Solve Together Team MORETALE

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages