Skip to content

천사Mall (중고 직거래 서비스)

Notifications You must be signed in to change notification settings

loveyrooney/angelMall

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

천사Mall

교사 대상 온라인 중고 거래 서비스 (2024.04.17 ~2024.04.26)

  • 교육에 관련된 중고 물품을 카테고리 별로 분류하여 쉽고 빠른 상품조회
  • 일대일 채팅을 통한 직거래 방식

프로젝트 팀원

김혜연 (34%) 양세현 (33%) 황현준 (33%)

채팅,마이페이지

요구사항 분석

회원,메인페이지

DB관리

상품,판매자정보

UML관리

기술 스택

Front End

Back End

Version & Build

open JDK 11
apache tomcat 9.89

AWS EC2(ubuntu) 및 RDS 사용, war 파일 톰캣 서버에 띄워 배포

프로젝트 주요이슈

채팅 관련

⚠️요구사항 관련하여 발생한 문제

  • 사용자는 판매자도 될 수 있고, 구매자도 될 수 있도록 가입 시 역할 구분 없음
  • 채팅 방에는 이전 채팅 메시지가 보관되어 있어야 함
  • ⚠️역할 구분이 없어서 채팅 방 입장 시 접속자 식별 과정이 복잡해짐

📌 chatroom 테이블을 만들어 채팅 방 입장 시 필요한 정보 일괄 관리

  • URL parameter 역할에 따라 구별 ( 구매자 - 상품id / 판매자 - 상품id, 구매자 id )
  • 구매자의 최초 접속 시, chatroom 테이블 정보 생성
  • 판매자는 구매자의 최초 접속 이후에 채팅 방에 접근할 수 있도록 구현

⚠️ 기술의 특징 관련하여 발생한 문제

  • WebSocket 서버는 HttpServletContext 와 독립적임
  • ⚠️ 일대일 채팅을 구현하려면 WebSocket session 식별이 필요

📌 WebSocket 서버 내에 접속자 관리 Map 생성하여 메시지 타겟팅

  • ConcurrentHashMap 구조의 접속자 Map 생성
  • 채팅 방 접속 시, 해당 session 및 chatroom 테이블 정보를 Map 에 등록
  • 메시지는 Map 내의 session 중 chatroom 테이블 정보가 일치하는 대상에게만 전송

상품 관련

⚠️ 구현 관련하여 발생한 문제

  • 상품 정보 수정 시 기존의 이미지가 삭제되지 않음

📌 업로드 경로의 올바른 설정

프로젝트 주요기능

기능 설명
메인페이지 1. 구매가능 상품 조회
2. 상단 바에서 판매등록, 로그인/회원가입/마이페이지 접근
상품정보 1. 상품 상세정보, 판매자의 다른 상품 조회
2.현재 접속자의 role 여부에 따라 채팅하기/채팅방목록 버튼 표시, 상품수정 버튼 표시
[구매자]
3. 채팅하기 - 판매자와의 채팅방 바로 입장
[판매자]
4. 채팅방목록 - 해당 상품의 채팅방 페이지로 이동한 후 개별 구매자와의 채팅방 입장 가능
상품수정 - 상품 정보 및 이미지 수정, 삭제 가능
회원가입/로그인 1. 이메일 중복 확인
2. 이메일과 비밀번호 유효성 검사
3. 로그인 회원은 role 구분 명시적으로 하지 않고 모두 될 수 있음
4. 로그인 정보 확인 로직은 필터 단에서 체크
채팅 1. 로그인 회원, 해당 상품 판매자 입장가능한 일대일 채팅방
2. 상품 간단정보 조회 및 이전 채팅내역 조회 가능
3. 판매자는 거래확정 가능
마이페이지 1. 회원정보 수정 및 탈퇴 접근
2. 구매 내역 / 판매 내역 / 현재 대화중 채팅방 조회 및 해당 페이지 접근
판매등록 1. 메인 상단 바에서 판매등록 접근
판매자정보 1. 판매자 인적 정보 조회
2. 판매자의 현재 판매중인 다른 상품 조회 및 해당 페이지 접근

ErDiagram

UseCase Diagram

About

천사Mall (중고 직거래 서비스)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 76.8%
  • CSS 11.7%
  • JavaScript 11.5%