Skip to content

koreaIT-study/messenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

312 Commits
 
 
 
 
 
 

Repository files navigation

Messenger Application

개발 기간 : 2022.10.26 ~ 2023.01.10 (2개월)

개발팀 소개

김동진 민석홍 최민재
@Dongjin0224 @shmin7777 @alswo1212

프로젝트 소개

Non-Blocking과 MQ 숙련도 향상을 위해 진행하였으며, 저희 서비스에 가입한 사용자는 1:1 채팅이나 그룹 채팅을 이용하여 다른 사람들과 빠르게 채팅을 주고 받을 수 있습니다.

CI/CD Process

image

Architecture

image

Stacks 🐈

Develop

Communication


화면 구성 📺

메인 페이지 친구 추가 페이지
image image
채팅방 만들기 로그인
image image

주요 기능 📦

⭐️ 채팅 기능

  • File 포함 Message 주고 받을 수 있음
  • 현재 들어와 있는 채팅방에서 상대방이 입력 중일 때 표시
  • 채팅방 목록이 실시간으로 변경
  • File 클릭 시 다운로드

⭐️ 친구 추가

  • 친구 이름 또는 이메일 검색 시 해당 유저 조회
  • 친구 목록 조회
  • 친구 클릭시 대화방 생성

⭐️ 채팅방 만들기

  • 1:1 채팅, 그룹 채팅방 생성 가능
  • 채팅방 목록 조회

디렉토리 구조

Client

├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── shell
│   ├── Dockerfile
│   ├── messenger_client.sh
│   ├── messenger_server.sh
│   └── messenger_server.sh.bak
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── teamride
    │   │           └── messenger
    │   │               └── client
    │   │                   ├── MessengerClientApplication.java
    │   │                   ├── config
    │   │                   │   ├── ApplicationContextProvider.java
    │   │                   │   ├── ClientConfig.java
    │   │                   │   ├── Constants.java
    │   │                   │   ├── KafkaAdminClientConfig.java
    │   │                   │   ├── KafkaConstants.java
    │   │                   │   ├── KafkaConsumerConfig.java
    │   │                   │   ├── KafkaProducerConfig.java
    │   │                   │   ├── WebClientConfig.java
    │   │                   │   ├── WebConfig.java
    │   │                   │   └── WebSocketConfig.java
    │   │                   ├── controller
    │   │                   │   ├── KakaoLoginController.java
    │   │                   │   ├── NaverLoginController.java
    │   │                   │   ├── RoomController.java
    │   │                   │   ├── ServerConnectController.java
    │   │                   │   ├── StompChatController.java
    │   │                   │   └── UserController.java
    │   │                   ├── dto
    │   │                   │   ├── ChatMessageDTO.java
    │   │                   │   ├── ChatRoomDTO.java
    │   │                   │   ├── FriendDTO.java
    │   │                   │   ├── FriendInfoDTO.java
    │   │                   │   └── UserDTO.java
    │   │                   ├── interceptor
    │   │                   │   └── LoginCheckInterceptor.java
    │   │                   ├── repository
    │   │                   │   └── ChatRoomRepository.java
    │   │                   ├── service
    │   │                   │   ├── MailService.java
    │   │                   │   ├── StompChatService.java
    │   │                   │   └── UserService.java
    │   │                   └── utils
    │   │                       ├── BeanUtils.java
    │   │                       └── RestResponse.java
    └── resources
    │       ├── application.yml
 

Server

─ build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── shell
│   ├── Dockerfile
│   ├── messenger_server.sh
│   └── messenger_server.sh.bak
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── teamride
    │   │           └── messenger
    │   │               └── server
    │   │                   ├── MessengerServerApplication.java
    │   │                   ├── config
    │   │                   │   ├── KafkaConstants.java
    │   │                   │   ├── KafkaConsumerConfig.java
    │   │                   │   ├── KafkaProducerConfig.java
    │   │                   │   └── WebConfig.java
    │   │                   ├── controller
    │   │                   │   ├── ChatController.java
    │   │                   │   ├── KafkaController.java
    │   │                   │   ├── MailService.java
    │   │                   │   ├── TestController.java
    │   │                   │   └── UserController.java
    │   │                   ├── dto
    │   │                   │   ├── ChatMessageDTO.java
    │   │                   │   ├── ChatRoomDTO.java
    │   │                   │   ├── FriendDTO.java
    │   │                   │   ├── FriendInfoDTO.java
    │   │                   │   ├── SaveUserDTO.java
    │   │                   │   └── UserDTO.java
    │   │                   ├── entity
    │   │                   │   ├── ChatMessageEntity.java
    │   │                   │   ├── ChatRoomEntity.java
    │   │                   │   ├── FriendEntity.java
    │   │                   │   └── UserEntity.java
    │   │                   ├── repository
    │   │                   │   ├── ChatMessageRepository.java
    │   │                   │   ├── ChatRoomRepository.java
    │   │                   │   ├── FriendRepository.java
    │   │                   │   └── UserRepository.java
    │   │                   ├── service
    │   │                   │   ├── ChatService.java
    │   │                   │   └── UserService.java
    │   │                   └── util
    │   │                       └── RestResponse.java
    │   └── resources
    │       ├── application-prod.yml
    │       ├── application.yml

About

메신저 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •