💻
PC방 음식 주문 및 채팅 서비스 📜
프로젝트 개요 모의 PC방 음식 주문 및 채팅 서비스 입니다.
Java의 Swing 라이브러리를 활용해 클라이언트 개발, MySQL DB를 사용해 음식, 고객, 주문 테이블의 CRUD 연산과 비즈니스 로직 처리,
스레드로 사용자를 관리함에 따른 다수 사용자 지원, 그리고 Server socket을 사용해 스레드간의 채팅 서비스를 구현했습니다.
✨
팀 구성
📐
시스템 구조도
✏️
클래스 설계
📝
기능스펙 회원가입
우리 서비스의 사용자로 등록하기 위한 절차인 회원가입 화면입니다.
로그인 관련 예외처리
로그인 화면에서 사용자 모드와 관리자 모드로 나누어 로그인할 수 있으며 정상적인 로그인 시도가 아닐경우
예외 처리를 진행했습니다.
사용자 메인화면
사용자로 로그인했을때 맨 처음 보이는 화면입니다.
여기선 포인트로 음식 주문과 관리자와의 채팅을 이용할 수 있습니다.
관리자 메인화면
관리자로 로그인하면 고객관리와 상품관리 두 가지 기능을 수행할 수 있습니다.
여기선 현재 고객이 주문한 음식목록과 사용자와의 채팅이 이루어집니다.
관리자 화면 > 고객 관리
관리자로 로그인하면 고객관리와 상품관리 두 가지 기능을 수행할 수 있습니다.
여기선 현재 고객이 주문한 음식목록과 사용자와의 채팅이 이루어집니다.
관리자 화면 > 상품 관리
관리자로 로그인하면 고객관리와 상품관리 두 가지 기능을 수행할 수 있습니다.
여기선 우리 서비스에서 판매하는 상품들의 재고를 관리할 수 있습니다.
💻
시연 회원가입
회원가입을 하기 위해 모든 필드를 채워야 하며, 아이디, 닉네임, 이메일 주소 중복체크를 마쳐야 사용자로 등록할 수 있습니다.
예외처리
사용자가 관리자 모드(Server mode)에 접근하려는 경우, 사용자가 존재하지 않는 아이디로 로그인 시도할 경우, 사용자가 비밀번호를 잘못 입력한 경우, 모두 에러메시지를 출력합니다.
중복 로그인 예외 처리
이미 로그인중인 계정을 다른 클라이언트가 로그인을 시도할 경우 로그인이 막히도록 구현했습니다.
상품 구매
- 포인트 부족
포인트가 부족하면 상품을 구매할 수 없습니다.
- 상품 결제시 관리자 컴퓨터에 반영
상품을 결제하면 관리자 컴퓨터에는 사용자가 로그인한 좌석에 주문한 상품이 표시됩니다.
사용자가 관리자에게 메시지를 보냄(Talk 기능)
사용자가 보낸 메시지는 관리자에게만 보여집니다.
관리자가 사용자에게 메시지를 보냄(Broadcast 기능)
관리자가 보낸 메시지는 모든 사용자들에게 보여집니다.
관리자가 특정 사용자에게 메시지를 보냄(Talk 기능)
관리자는 특정 사용자만 볼 수 있는 메시지를 전송할 수 있습니다.
사용자가 로그아웃하면 관리자 컴퓨터에 반영
사용자가 로그아웃하면 좌석은 빈자리로 초기화되며, 관리자 측에 해당 사용자가 접속을 종료했다는 알림메시지가 출력됩니다.
재고 관리
- (Create) 상품 생성하기
상품명, 단가, 제조사, 카테고리를 선택하면 원하는 품목을 추가시킬 수 있습니다.
전체 상품을 조회하거나 특정 상품만 콤보박스에서 선택해 조회할 수 있습니다.
- (Update) 상품 수정하기
상품 조회 후 수정하고자 하는 필드를 수정하면 상품 정보가 수정됩니다.
- (Delete) 상품 삭제하기
원하는 상품을 선택 후 삭제를 할 수 있습니다.
※ 프로그램 실행 순서 ※
-> Controller\PCServer.java
-> com.PCorder\App.java
- 메이븐 프로젝트이므로 라이브러리 따로 Import 시킬 필요 없습니다.
Q. 메이븐 라이브러리가 제대로 가져오지 못 할 경우
/사용자/.m2/repository 안에 모든 폴더를 삭제 (repository 폴더 자체를 삭제 X)
이클립스 실행 -> 프로젝트 우클릭 -> maven\Update Proj 클릭.