Skip to content

joyeeon/LetsTyping

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

타이핑 연습 사이트 Let’s typing ⌨️

image  

개요

image Let's typing은 스마트폰 사용의 증가로 인해 학생들의 컴퓨터 키보드 타이핑 능력이 저하되어 문서 작업에서 어려움을 겪는 문제를 해결하기 위해 개발된 React 기반의 타이핑 연습 웹 사이트입니다.
타이핑 연습을 통해 속도와 정확성을 향상시키는 한편, 타이핑 문장에서 주요 키워드와 설명을 제공하여 학생들의 문해력을 높이고, 이를 퀴즈로 연계하여 학생들에게 단어 학습 기회를 제공해 학업 및 의사소통 능력을 개선하는 것을 목표로 하고 있습니다.
 

주요 기능

웹프레임워크_7팀_1 (2)  

글 목록 & 고양이 선택

  • 사이트에서 제공하는 다양한 글(상식, 역사, 문학 등)을 선택해 타이핑 연습 가능
  • 직접 연습하고 싶은 글이 있다면, 복사하여 타이핑 연습에 활용
  • 고양이 캐릭터를 선택하여 친근하고 재미있는 학습 환경을 제공

타이핑 연습 환경

  • 제공되는 글을 따라 타이핑 하며 사용자의 타이핑 속도 측정
  • 사용자의 문해력을 키울 수 있도록 어려운 단어가 포함된 문장 제공
  • 측정 종료 시 걸린 시간, 타수, 오타, 자주 틀리는 키 정보와 타이핑 문장에서 어려운 낱말 키워드와 해석을 제공

랭킹 & 퀴즈

  • 타이핑 완료 후 타수와 오타수를 기반으로 점수를 합산하여 랭킹을 확인
  • 타이핑 후 제공된 키워드를 퀴즈로 풀어보며 어려운 단어를 복습
     

홈 화면

image image

 

타이핑 화면

웹프레임워크_7팀_1 (3) image

 

결과 화면

image image  

순위 & 퀴즈

image

image image
image image

 

사용 라이브러리

웹프레임워크_7팀_1 (4) image 웹프레임워크_7팀_1 (5)  

종류 라이브러리 설명
스타일링 styled-components 컴포넌트 기반의 스타일 적용으로 재사용성과 유지보수성 향상.
UI 컴포넌트 Chakra UI 접근성과 유연성을 갖춘 UI 컴포넌트 제공.
한글 처리 hangul-js 한글 타이핑 모션 구현 및 자소 단위 분리.
아이콘 Font Awesome, React Icons 다양한 아이콘 제공으로 시각적 완성도 향상.
타이핑 인터랙션 react-simple-keyboard 타이핑 결과에서 자주 틀린 키를 가상 키보드로 표시.
오디오 howler.js 배경 음악 재생으로 몰입감 향상.
애니메이션 lottie-react progress bar에 고양이 GIF를 추가해 재미를 더함.
애니메이션 framer-motion 부드러운 컴포넌트 이동 애니메이션 구현.
타이핑 효과 react-typed 실제 타이핑하는 듯한 애니메이션 효과.
효과 JSConfetti 목표 달성 시 컨페티 효과로 사용자에게 성취감을 제공.
3D 효과 three.js 조명 효과를 추가해 생동감 있는 UI 연출.

 

디렉토리 구조 및 주요 파일

image image image
/public
	|
	├── audio/background.mp3 #배경음악 관리
	├── typingdatas-en.yaml   #미리 저장되어있는 텍스트 데이터들(영어)
	└── typingdatas-kr.yaml   #미리 저장되어있는 텍스트 데이터들(한글)
/src
	|
	|
  ├── components/       # 재사용 가능한 컴포넌트
  │   ├── homecomps/    # 홈 화면 관련 컴포넌트
  |   |   ├── copytxt.jsx  #직접 텍스트 가져오는 컴포넌트
  |   |   ├── goButton.jsx #copytxt 와 roadtxt의 버튼을 공유하기 위한 컴포넌트
  |   |   ├── home.jsx     #로고 있는 홈화면 메인 컴포넌트
  |   |   ├── listitem.jsx #roadtxt의 아이템 각 요소 관리하는 컴포넌트 
  |   |   ├── responsecomp.jsx #이름 입력하면 호출되는 컴포넌트 
  |   |   └── roadtxt.jsx  # yaml 파일에 적힌 타이핑 데이터 담긴 컴포넌트 
  │   ├── navigation/   # 네비게이션 컴포넌트
  |   |   └── navbar.jsx
  │   ├── ranking/      # 랭킹 관련 컴포넌트
  │   |   ├── CustomModal.jsx # 커스텀 모달
  │   |   ├── InputRow.jsx # 퀴즈 정답 입력칸
  │   |   ├── ModalTitle.jsx # 커스텀 모달 제목
  │   |   ├── MyRanking.jsx # 사용자 자신의 랭킹 표시
  │   |   ├── Quiz.jsx # 퀴즈 로직과 UI
  │   |   ├── QuizComp.jsx # 퀴즈 개별 항목 렌더링
  │   |   ├── RankingModal.jsx # 랭킹 정보 표시
  │   |   ├── SpotLight.jsx # 조명 컴포넌트
  │   |   ├── TopRanking.jsx # 1,2,3위 컴포넌트
  │   |   └── UserList.jsx # 명예의 전당 컴포넌트
  │   ├── result/       # 타이핑 결과 관련 컴포넌트
  │   |   ├── RankButton.jsx # 랭킹 버튼
  │   |   ├── ResultDetail.jsx # 시간,타수,정확도 항목
  │   |   ├── ResultDetailList.jsx # 시간,타수,정확도 항목 리스트
  │   |   ├── TypingKeyword.jsx # 타이핑한 글의 키워드 & 설명
  │   |   ├── TypingKeywordList.jsx # 키워드&설명 리스트
  │   |   ├── TypingResult.jsx # 타이핑 결과 컴포넌트 
  │   |   ├── TypingResultCat.jsx # 타이핑 결과 모달 창의 고양이 캐릭터
  │   |   └── TypingResultKeyboard.jsx # 자주 틀린 키를 키보드에 표시
  │   └── typingcomps/       # 타이핑 관련 컴포넌트
  │       ├── Typingprogress.jsx # 타이핑 진행도 표시
  │       └── Typingtxt.jsx # 키보드 타이핑
  |
  ├── context/
  |   └── username.js # 사용자 이름을 전역 변수로 관리 
  |
  ├── layouts/
  |   └── root-layout.jsx # 애플리케이션 기본 레이아웃 관리
  |
  ├── pages/            # 페이지 단위 컴포넌트
  │   ├── home.jsx      # 홈 페이지
  │   ├── Ranking.jsx   # 랭킹 페이지
  │   └── Result.jsx    # 타이핑 결과 페이지
  │   └── typing.jsx    # 타잎 페이지
  ├── assets/           # 이미지, 폰트 등 정적 파일
  │   ├── images/
  │   └── fonts/
  ├── styles/           # 전역 및 컴포넌트별 스타일 파일
  ├── App.js            # 애플리케이션 진입점
  └── index.js          # ReactDOM 렌더링 포인트

 

실행 환경 & 개발 환경

  • Node.js 버전: 20.17.0
  • npm 버전: 10.8.2

image

 

설치 및 실행 방법

1. 의존성 설치

npm install

2. 개발 서버 실행

npm start

 

기타

배경음악 출처

사진 출처

피그마

About

타이핑 연습 사이트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Other 0.5%