Skip to content

Latest commit

 

History

History
161 lines (116 loc) · 6.88 KB

File metadata and controls

161 lines (116 loc) · 6.88 KB

교회학교 암송 수첩 로고

교회학교 암송 수첩

유치부·초등부·중고등부 주간 말씀 암송 앱
이번 주 암송 말씀을 찾아 헤매지 않도록, 공과 진도에 맞춰 매주 알아서 펼쳐집니다


✨ 무엇이 다른가

  • 찾을 필요가 없습니다: 홈페이지를 뒤적이거나 단톡방을 거슬러 올라가지 않아도, 앱을 열면 부서별 이번 주 말씀이 바로 펼쳐집니다. 공과 진도에 맞춰 지난주 → 이번 주 → 다음 주 가 매주 자동으로 넘어갑니다.
  • 세 부서를 한 앱에서: 유치부·초등부·중고등부를 각각 관리합니다. 다크 모드와 글자 크기까지 부서별로 따로 설정됩니다.
  • 음성으로 암송합니다: 쉬움 → 보통 → 완전 암송 3단계 중 완전 암송에서는 마이크로 말해서 확인합니다. 원문과 80% 이상 일치하면 통과라, 조사나 띄어쓰기가 조금 달라도 됩니다.
  • 서버가 없습니다: 회원가입도 로그인도 없습니다. 암송 기록·북마크·설정 전부 기기 안에만 저장되고, 광고·분석 SDK를 하나도 쓰지 않습니다.

📱 스크린샷

부서별 이번 주 말씀 세 부서 한 앱에서 주차 자동 정렬
3단계 암송 연습 포인트·뱃지 교회 일정 캘린더

🎯 주요 기능

암송

  • 3단계 연습 — 쉬움(빈칸 35개 선택) · 보통(빈칸 710개 선택) · 완전 암송(직접 입력 또는 음성)
  • 월암송 — 이 달의 암송 구절 따로 보기
  • 플래시카드 — 카드를 넘기며 빠르게 반복
  • 전체 목록 검색 — 공과명, 구절 내용, 장절로 찾기

꾸준함

  • 포인트 · 연속 일수 — 암송을 마칠 때마다 쌓입니다
  • 뱃지 24종 — '첫 걸음', '3일 연속', '일주일 전사', '한 달 챔피언' 등
  • 주간·월간 달성률 — 진도 추적
  • 암송 알림 — 원하는 요일과 시간에

곁에 두기

  • 홈 화면 위젯 — 중간 크기(이번 주 한 구절) · 큰 크기(3주치). 위젯 설정에서 표시할 부서 변경
  • 교회 일정 캘린더 — 수련회·성경학교·부서 행사. 엑셀·CSV 로 한 번에 가져오기
  • 북마크 — 마음에 남는 구절 저장
  • 암송 카드 공유 — 구절을 이미지로 저장·공유

🛠 기술 스택

영역 사용 기술
앱 셸 Capacitor 7.4 (Android · iOS 공용)
UI React 18.3 · TypeScript 5.6 · Tailwind CSS 3.4 · shadcn/ui
라우팅 / 상태 wouter · TanStack Query
빌드 Vite 5.4
네이티브 위젯 Android AppWidgetProvider (Kotlin) · iOS WidgetKit (Swift)
데이터 엑셀(xlsx) → 빌드 시 파싱, LocalStorage · IndexedDB 에만 저장

Capacitor 플러그인: speech-recognition · local-notifications · preferences · filesystem · share · media · app

client/ 의 웹 소스 하나가 Android·iOS 양쪽의 알맹이입니다. android/ 와 ios/ 는 그것을 감싸는 껍데기이므로, 기능 수정은 대부분 client/ 에서 이루어집니다.


🚀 빌드

npm install
npm run build            # 웹 에셋 → dist/public
npx cap sync android     # 또는 ios

Android AAB (윈도우에서만 — 키스토어가 윈도우에 있습니다)

set "JAVA_HOME=C:\Program Files\Android\Android Studio\jbr"
cd android
gradlew.bat bundleRelease

iOS — 맥에서 ios/App/App.xcworkspace 열어 아카이브

⚠️ npx cap sync 를 빠뜨리면 android/app/src/main/assets/public/ 이 갱신되지 않아, 웹에서 고친 내용이 하나도 반영되지 않은 빌드가 나갑니다.

⚠️ WSL 에서는 npm run build 가 sharp 때문에 죽는데 셸이 exit 0 을 반환합니다. 산출물 타임스탬프를 반드시 직접 확인하세요.


📂 프로젝트 구조

client/                  웹 소스 — Android·iOS 공통 알맹이
  src/pages/             화면 (home, age-group, calendar, badges …)
  src/components/        VerseCard, FlashcardModal, ExcelUploader …
  public/                아이콘·seed.json·엑셀 원본
android/                 Capacitor Android 셸
  app/src/main/java/…/widget/    홈 화면 위젯 (Kotlin)
ios/                     Capacitor iOS 셸
  App/ChurchMemoryWidget/        홈 화면 위젯 (WidgetKit)
attached_assets/         암송 목록·교회 일정 엑셀 원본
docs/                    개인정보처리방침(GitHub Pages) · 스토어 애셋 · 출시 가이드
scripts/                 아이콘 생성, 엑셀 복사, seed 빌드

📄 문서

문서 내용
docs/RELEASE-GUIDE.md 출시·운영 가이드 (버전 규칙, 서명키, 최종 체크리스트)
HANDOFF-WINDOWS.md 윈도우에서 Play Store 빌드하기
PlayStore.md · AppStore.md 스토어 등록정보 최종 문구
Log.md 개발 이력 전체 (24장)
Design2.md 디자인 토큰

🔒 개인정보

수집하지 않습니다. 서버가 없습니다.

모든 데이터는 기기 안에만 저장되며, 앱을 삭제하면 함께 사라집니다. 음성 인식은 운영체제 기능을 호출할 뿐 녹음을 저장하거나 전송하지 않습니다.

개인정보처리방침 전문


테크센세 (TECHSENSE) · contact@testbench.tools