투두게더 — 프로그램 설계 개요

일일 인증·협업 그룹, 팔로우·좋아요·댓글, 채널·채팅, 알림·랭킹 등 소셜 기능을 제공하는 웹·모바일 서비스입니다. 구성은 웹 애플리케이션(Next.js + Prisma·MySQL)과 Expo WebView 셸이며, 실시간 채팅 등은 Socket.IO 기반 프로세스와 병행 실행할 수 있습니다.


1. 시스템 구성 요소

구분디렉터리역할
웹·APItodogether-webNext.js(App Router), Prisma·MySQL, NextAuth v5 베타, REST API
모바일todogether-appExpo WebView 셸
실시간(선택)npm 스크립트npm run socket — Socket.IO 서버(Express) 별도 기동, dev:all로 웹과 병행 가능

2. 아키텍처

  • REST: 대부분의 CRUD·인증은 Next.js API Routes와 Prisma로 처리합니다.
  • 실시간: 채팅 등은 클라이언트가 Socket.IO 서버에 별도 연결하는 구조입니다(포트·호스트는 환경 설정).
  • 외부 연동: SMS(Twilio 등)·파일 업로드·WebAuthn 등은 라이브러리 및 환경 변수로 구성됩니다.

3. 데이터 흐름

  1. 계정: User·Account·Session, WebAuthn Authenticator, 비밀번호·이메일 찾기.
  2. 공약: Pledge·참가자·SubTodo·일일 인증(PledgeDailyVerification·사진)·협업 그룹·공유 인증.
  3. 소셜: Follow·Like·Comment, 차단 조회(PledgeDeniedViewer), 완료·랭킹 API.
  4. 채널·채팅: Channel·ChannelMember, 채팅 API와 Socket.IO가 함께 사용될 수 있습니다.
  5. 기타: 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