연인 사이에 생기는 유행어를 함께 관리하는 앱
- 입장코드로 구분된 그룹(예: 셋로그) 단위로 공유하는 유행어 사전 앱
- 그룹원끼리 유행어를 등록하고, 뜻/음성 녹음을 함께 추가(공동 편집)
- 백엔드: Firebase (Firestore + Storage)
| # | 기능 | 설명 |
|---|---|---|
| 1 | 입장코드 생성 | 새 그룹을 만들고 고유 입장코드 발급 |
| 2 | 입장코드 입력 | 기존 그룹의 입장코드를 입력해 참여 |
| 3 | 유행어 리스트 조회 | 그룹 내 등록된 유행어를 실시간으로 조회 |
| 4 | 유행어 등록 | 새 유행어(이름) 등록 |
| 5 | 뜻 추가 | 특정 유행어에 뜻(텍스트) 추가 (여러 개 가능, 공동편집) |
| 6 | 음성 녹음 추가 | 특정 유행어에 음성 녹음 추가 |
| 7 | 음성 재생 | 등록된 음성 녹음 재생 |
| 8 | 유행어 검색 | 등록된 유행어를 이름 기준으로 검색 |
| 9 | 그룹 탈퇴 | 참여 중인 그룹에서 나가기 |
- 입력: 없음 (또는 그룹명)
- 처리: Firestore에 새 그룹 문서 생성, 랜덤 코드 발급
- 출력: 생성된 입장코드 표시, 공유 가능 (예: 텍스트 복사)
- 예외: 코드 생성 실패 시 재시도
- 입력: 사용자가 입력한 코드 문자열
- 처리: Firestore에서 해당 코드의 그룹 존재 여부 확인
- 정상: 그룹 리스트 화면으로 이동
- 예외:
- 존재하지 않는 코드 → 에러 메시지
- 네트워크 오류 → 재시도 안내
- 처리: 그룹 ID 기준 Firestore 리스너 등록 → 실시간 변경사항 반영
- 정렬 기준: 최신순
- 예외: 리스너 연결 실패 시 오프라인 캐시 표시
- 입력: 유행어 이름
- 처리: Firestore에 새 문서 생성 (그룹 ID 하위)
- 예외: 중복 이름 등록 불가
- 입력: 유행어 ID, 뜻 텍스트, 작성자(선택)
- 처리: 해당 유행어 문서의 하위 컬렉션에 추가
- 예외: 빈 텍스트 입력 방지
- 입력: 유행어 ID, 녹음 파일
- 처리: Firebase Storage 업로드 → 다운로드 URL을 Firestore에 저장
- 예외:
- 마이크 권한 거부
- 녹음 실패
- 업로드 실패(네트워크)
- 입력: 음성 파일 URL
- 처리: URL 기반 스트리밍 또는 다운로드 후 재생
- 예외: 파일 로드 실패
- 입력: 검색어(텍스트)
- 처리: 그룹 내 유행어 이름 기준으로 필터링 (Firestore 쿼리 또는 클라이언트 측 필터링)
- 출력: 검색어와 일치/포함하는 유행어 리스트 표시
- 예외:
- 검색 결과 없음 → 안내 메시지
- 검색 범위 → 이름만
- 초성 검색은 지원하지 않음
- 입력: 없음 (탈퇴 버튼 액션)
- 처리: 해당 유저와 그룹 간의 연결 해제 (Firestore 상 멤버 목록/참조에서 제거)
- 출력: 입장코드 입력/생성 화면으로 이동
- 예외: 탈퇴 처리 중 네트워크 오류 → 재시도 안내