f-lab-edu / manitalk

이번엔 누가 내 비밀친구가 될까? 마니또 채팅 서비스 마니톡!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

💬 마니톡(Manitalk)

이번엔 누가 내 비밀친구가 될까? 마니또 채팅 서비스 마니톡!


📍소개

모임의 구성원 모두가 다같이 그룹채팅을 즐기고,
1:1 랜덤으로 매칭되는 마니또 채팅을 통해 그 안에서 비밀 친구를 사귈 수 있는 그룹/개별 채팅 서비스



📍사용 기술, 개발 환경

JAVA, Spring Boot, Spring Web, Spring WebSocket, Spring Data JPA/Redis/MongoDB, MySQL, Redis, MongoDB



📍핵심 기능

그룹 채팅

  • 그룹 채팅 시작

    • 그룹 채팅방의 이름과 비밀코드를 추가하여 방을 생성한다.
      • 그룹 채팅방의 이름은 중복될 수 없다.
    • 방을 생성한 사람이 자동으로 방장이 된다.
  • 그룹 채팅방 입장

    • 이름과 비밀코드를 입력하여 그룹 채팅방에 입장한다.
    • 입장시에 닉네임을 설정한다.
      • 한번 설정한 닉네임은 변경이 불가하고, 기존 멤버들의 닉네임과 중복이 불가하다.
  • 그룹 채팅 나가기

    • 마니또 채팅이 진행중이면 그룹채팅을 나갈 수 없다.
    • 방장이 그룹채팅을 나가면 남은 멤버 중의 한 사람이 방장이 된다. (랜덤)
  • 그룹 채팅 종료

    • 방장이 그룹 채팅을 종료한다.
    • 모든 멤버들이 채팅방에서 나가기 처리된다.

마니또 채팅(1:1랜덤 채팅)

  • 마니또 채팅 시작

    • 방장이 마니또 채팅을 시작한다.
    • 멤버 전원이 랜덤으로 1:1 매칭 되어 새로운 채팅방이 생성된다.
      • ex) 멤버가 10명인 경우, 5개의 개별 채팅방 생성
      • 홀수 인원인 경우 한 명이 여러개의 채팅을 하게 될 수도 있다.
    • 마니또 채팅의 기간을 설정한다.
      • 최소 1일 ~ 최대 7일까지 설정할 수 있다.
    • 마니또 채팅시에 사용할 새로운 닉네임을 설정한다.
      • 그룹 채팅방에서의 자신의 닉네임과 같을 수 없다.
      • 다른 사람의 닉네임과 중복은 가능하다.
    • 마니또 채팅이 시작되면 그룹 채팅방에 마니또 채팅 시작 알림과 기간이 표시된다.
  • 마니또 채팅 진행

    • 미션
      • 각각 ‘~말 듣기’ 미션이 주어진다.
      • 미션 키워드는 ‘고마워’, ‘최고야‘ 등의 칭찬의 말들로 구성한다.
      • 마니또 채팅 기간동안 미션 키워드를 가장 많이 들은 사람은 우수 마니또가 된다.
  • 마니또 채팅 나가기

    • 마니또 채팅은 나가기가 불가능하다.
  • 마니또 채팅 종료

    • 마니또 채팅 기간이 지나면 채팅방에서 자동으로 나가기 처리된다. (배치)
    • 미션의 우수 마니또에게는 뱃지가 수여되며, 그룹 채팅방에서 자신의 닉네임 옆에 뱃지와 개수가 표시된다.

회원가입 & 로그인

  • Google 계정으로 인증 및 로그인을 진행한다.


📍프로토타입

1. 메인 화면 2. 채팅 목록 3. 그룹 채팅 입장
4. 그룹 채팅 5. 마니또 채팅


📍System Design: 시스템 디자인

👉 설계

👉 Database: ERD


📍Sequence Diagram: 시퀀스 다이어그램

👉 그룹 채팅
👉 마니또 채팅
👉 메시지 수발신



📍프로젝트 중 고민했던 이슈 기록



About

이번엔 누가 내 비밀친구가 될까? 마니또 채팅 서비스 마니톡!


Languages

Language:Java 96.5%Language:HTML 3.5%