투두게더 — 프로그램 설계 개요
일일 인증·협업 그룹, 팔로우·좋아요·댓글, 채널·채팅, 알림·랭킹 등 소셜 기능을 제공하는 웹·모바일 서비스입니다. 구성은 웹 애플리케이션(Next.js + Prisma·MySQL)과 Expo WebView 셸이며, 실시간 채팅 등은 Socket.IO 기반 프로세스와 병행 실행할 수 있습니다.
1. 시스템 구성 요소
| 구분 | 디렉터리 | 역할 |
|---|---|---|
| 웹·API | todogether-web | Next.js(App Router), Prisma·MySQL, NextAuth v5 베타, REST API |
| 모바일 | todogether-app | Expo WebView 셸 |
| 실시간(선택) | npm 스크립트 | npm run socket — Socket.IO 서버(Express) 별도 기동, dev:all로 웹과 병행 가능 |
2. 아키텍처
- REST: 대부분의 CRUD·인증은 Next.js API Routes와 Prisma로 처리합니다.
- 실시간: 채팅 등은 클라이언트가 Socket.IO 서버에 별도 연결하는 구조입니다(포트·호스트는 환경 설정).
- 외부 연동: SMS(Twilio 등)·파일 업로드·WebAuthn 등은 라이브러리 및 환경 변수로 구성됩니다.
3. 데이터 흐름
- 계정:
User·Account·Session, WebAuthnAuthenticator, 비밀번호·이메일 찾기. - 공약:
Pledge·참가자·SubTodo·일일 인증(PledgeDailyVerification·사진)·협업 그룹·공유 인증. - 소셜:
Follow·Like·Comment, 차단 조회(PledgeDeniedViewer), 완료·랭킹 API. - 채널·채팅:
Channel·ChannelMember, 채팅 API와 Socket.IO가 함께 사용될 수 있습니다. - 기타:
FavoriteGroup,Notification,LiveStream, 추천 템플릿 등.
상세는 todogether-web/prisma/schema.prisma를 참고합니다.
3.1 요청·저장 흐름(도식)
3.2 핵심 엔티티 관계(요약)
4. 웹 애플리케이션 레이어 (todogether-web)
4.1 기능 영역(예)
- 공약 생성·수정·초대·일일 인증·서브 할 일·협업 그룹
- 피드·좋아요·댓글·신고, 팔로우·친구, 완료 목록·랭킹
- 채널·채팅(REST + 실시간)
- 알림·설정·업로드 토큰·추천 템플릿
5. 모바일 앱 레이어 (todogether-app)
5.1 WebView 브릿지(요약)
6. 디렉터리 구조(루트)
DEV_todogether/
├── todogether-web/
├── todogether-app/
└── ReadMe.md
7. 기술 스택 요약
| 영역 | 기술 |
|---|---|
| 웹 | Next.js 16, React 19, Prisma, MySQL, NextAuth 5 beta, Mantine, Socket.IO, Express, SimpleWebAuthn, Twilio 등 |
| 앱 | Expo, React Native, WebView |