Skip to content

yuuzinn/NewChat

Repository files navigation

NewChat 🌐

누구나 소통할 수 있는 채팅 서비스입니다.

프로젝트 기능 및 설계

NOTICE 📌

06.02) 2.0으로 넘어가기 전, 몇 가지 기능이 추가되었습니다. (친구 기능 추가)
06.07) 로그인 상태값 추가, 채팅방에 있는 사용자들을 조회할 수 있게 되었습니다.
08.04) v2 upgrade

User

  • 회원가입
    • 같은 아이디의 회원가입은 불가능합니다.
  • 로그인
    • 로그인을 하지 않으면 서비스 이용이 불가합니다.
  • 로그아웃
    • 사용 중인 계정 로그아웃합니다.
  • 회원수정
    • 로그인한 회원(자신)의 정보를 수정합니다. (현재는 닉네임 변경)
  • 회원검색
    • 검색하려는 상대 회원의 닉네임을 입력하게 되면 검색할 수 있습니다.

Friend

친구는 50명까지 추가할 수 있습니다. 친구 요청자(이하 “요청자”), 친구 응답자(이하 “응답자”)

  • 친구 추가
    • 요청자가 응답자에게 친구 추가 요청을 보냅니다.
    • 이 때, DB 컬럼에 들어오는 데이터는 요청자, 응답자의 ID와 accept(false)로 들어오게 됩니다.
    • 만약 응답하지 않은 응답자가 요청자에게 요청을 보낼 경우, 예외처리합니다.
  • 친구 수락
    • 응답자는 요청을 수락합니다.
    • accept(true) 변경이 되며, 두 유저의 친구가 서로 추가됩니다. (count + 1)
  • 친구 요청 거절
    • 응답자는 요청을 거절합니다.
    • 요청해서 들어왔던 row를 삭제하게 됩니다.
  • 친구 삭제
    • 친구 관계를 삭제합니다.
    • 친구 관계로 맺어진 두 유저 중 하나(A or B & accept - true)가 친구 삭제를 합니다.
    • 둘 관계의 해당 row를 삭제하게 됩니다. (count - 1)
  • 친구 목록 조회
    • 현재 친구로 맺어진 유저들의 닉네임을 조회합니다.
    • (SELECT) accept - true 이면서 요청자 or 응답자에 있는 자신의 ID값을 찾아야 합니다.

Chat

  • 채팅방 생성
    • 채팅방 사용자끼리의 채팅할 공간이 있어야 합니다. 이때, 사용자는 채팅방을 생성할 수 있습니다.
    • 채팅방을 생성할 때, 방 인원 제한을 걸어둘 수 있습니다. (최대 8명)
  • 채팅방 제목 수정
    • 채팅방 방장만이 채팅방의 제목을 변경할 수 있습니다.
  • 채팅방 목록 조회
    • 현재 채팅방의 목록을 조회할 수 있어야 합니다.
    • 사용자(자신)가 만든 채팅방 목록을 조회할 수 있어야 합니다.
    • 사용자(자신)가 들어간(가입) 채팅방 목록을 조회할 수 있어야 합니다.
  • 채팅방 검색
    • 채팅방 제목을 통해 해당 채팅방을 검색할 수 있습니다.
    • 문자열의 앞단이나 중간의 문자열이 들어가 있는 경우 검색이 가능합니다.
  • 채팅방 인원 조회
    • 현재 채팅방에 입장해 있는 사용자들을 볼 수 있습니다.
    • 최대 8명이기에 따로 페이징 처리하지 않습니다. 닉네임과 로그인 상태값(t or f)을 볼 수 있습니다.
  • 채팅방 입장
    • 채팅방의 key를 통해 입장할 수 있습니다
    • 제한되어 있는 방 인원 수에 맞게 들어와야 합니다. (count + 1)
  • 채팅
    • 채팅할 수 있습니다.
  • 채팅 조회
    • 이전에 했던 채팅들을 조회할 수 있어야 합니다.
    • 단, 참여자는 참여한 시간부터 채팅을 조회할 수 있어야 합니다.
  • 채팅방 나가기
    • 구성원만 채팅방을 나갈 수 있습니다.
    • 사용자(자신)가 들어간(가입) 채팅방을 나갈 수 있습니다.
  • 채팅방 삭제
    • 채팅방을 생성한 사용자만 삭제할 수 있습니다.

Heart

  • 채팅방 좋아요
    • 사용자는 해당 채팅방에 좋아요를 누를 수 있습니다.
    • 단, 한 사람 당 하나씩 누를 수 있습니다.
    • 좋아요 상태에서 다시 좋아요를 하게 된다면, 좋아요 취소가 됩니다.
  • 채팅방 좋아요가 많은 순으로 조회
    • 채팅방 좋아요가 많은 순서대로 조회할 수 있습니다.
  • 내가 좋아요 누른 방 조회하기
    • 사용자(자신)가 좋아요를 누른 방들의 목록을 조회합니다.
    • 좋아요를 누른 방들을 조회할 때 결과값은 등록일 순으로 조회됩니다.

ERD ver 1.0

image

ERD ver 2.0

image

Architecture ver 1.0(1.X)

image

Architecture ver 2.0

image

Stack ⚒️

  • Java 11
  • Spring boot
  • JPA
  • Gradle
  • MySQL
  • Web Socket
  • Redis
  • Kafka

API 💻

My API ver 2.0

ERD 🖇️

My ERD ver 1.0 ~ 2.0

WIKI 📜

My WIKI

About

실시간 채팅 프로젝트 📨

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages