🏰 구름 호텔(Goorm Hotel) 웹 사이트
구름(goorm) 풀스택 개발자 성장 과정 1기 3차 스터디 기간 중 진행된 11조 리벤져스 팀 프로젝트입니다. 가상 호텔 '구름 호텔'을 기획하고 사용자가 직접 서비스를 예약할 수 있는 자사 웹 사이트 서비스를 설계 및 구축했습니다. 주요 기능으로는 회원 관리 및 멤버십, 상품관리, 예약 및 결제, 게시판, 채팅 기능이 있으며 서비스 고도화 과정에서 유지보수와 보안 측면을 고려하여 사용자 페이지와 관리자 페이지를 분리하였습니다.
💻 구름 호텔(Goorm Hotel) 웹 사이트 바로가기
프로젝트 기간: 2023.08.21 ~ 2023.11.05
주요 목표와 하위 목표
호텔 서비스를 제공할 수 있는 UI 설계 및 구현
크로스 브라우징을 통해 다양한 브라우저에서 일관된 사용자 경험 제공
회원 관리 및 멤버십 기능 구현
회원 가입, 로그인, 아이디 찾기, 비밀번호 재설정, 아이디 기억하기 기능 구현
OAuth를 사용한 소셜 로그인 기능 구현
회원에게 조건에 따라 역할을 부여하고 혜택을 제공하는 멤버십 기능 구현
부운영자 관리 및 권한 시스템 구현
상품관리 기능 구현
스페셜 오퍼 상품 CRUD 및 검색 기능 구현
오프라인 판매를 가정한 상품권 관리 기능 구현
예약 및 결제 기능 구현
스페셜 오퍼 상품 예약 및 포트원 API를 사용한 결제 기능 구현
게시판 기능 구현
게시글 CRUD 및 검색 기능 구현
댓글 CRUD 기능 구현
채팅 기능 구현
웹 소켓을 사용하여 로그인 한 회원과 관리자 간 실시간 채팅 기능 구현
프로필
역할
작업 영역
김경규(@WhiteKIM ) Full-Stack
조원
멤버십, 상품권/쿠폰, 채팅, 뉴스레터 구독 기능 구현, 일부 페이지 제작 참여
문소희(@soheetech ) Full-Stack
조원
스페셜 오퍼 상품 예약 및 결제 기능 구현, FE 영역 코드 개선 및 JS->TS 마이그레이션, CSS 모듈화 및 통합 작업 주도
박지국(@parkjikuk ) Front-End
조원
다수 페이지 제작 및 UI 기능 구현, FE 작업 주도
배진환(@JinhwanB ) Full-Stack
조원
상품 CRUD 및 카테고리화, 검색 기능 구현, 일부 페이지 제작 참여 및 JS->TS 마이그레이션 작업 주도
이동규(@LEE-Donggyu ) Full-Stack
조장
게시글 CRUD 및 카테고리화, 검색, 댓글 CRUD 기능 구현, 일부 페이지 제작 참여
전민종(@yss1902 ) Full-Stack
조원
회원 관리 시스템(회원 가입, 로그인, 회원 정보 수정, 아이디 찾기, 비밀번호 재설정 등), 소셜 로그인 기능 구현, 일부 페이지 제작 참여
Front-End
Back-End
FRONTEND
├─node_modules
├─public
└─src
├─admin
│ ├─board
│ ├─chat
│ ├─common
│ ├─Home
│ ├─item
│ ├─login
│ ├─member
│ └─reservation
├─components
│ ├─AddItemForm
│ ├─Agreement
│ ├─common
│ │ ├─DateButton
│ │ ├─Paging
│ │ ├─Search
│ │ └─TextEditor
│ ├─Coupon
│ ├─Item
│ ├─layout
│ │ ├─ChatModal
│ │ ├─Footer
│ │ ├─Header
│ │ └─SubHeader
│ ├─Reservation
│ └─Slide
├─images
├─pages
│ ├─about
│ │ ├─About
│ │ ├─Facilities
│ │ ├─Location
│ │ ├─Membership
│ │ └─Sitemap
│ ├─agreement
│ ├─board
│ ├─Home
│ ├─member
│ └─reservation
├─Style
└─utils
├─adaptor
├─api
├─chat
└─function
BACKEND
├─bin
...
└─src
├─main
│ ├─generated
│ ├─java
│ │ └─goormknights
│ │ └─hotel
│ │ ├─auth
│ │ │ ├─config
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ └─service
│ │ ├─board
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─chat
│ │ │ ├─config
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─coupon
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─email
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─giftcard
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─global
│ │ │ ├─config
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─entity
│ │ │ ├─event
│ │ │ ├─exception
│ │ │ └─schedule
│ │ ├─item
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─member
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─reply
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ ├─report
│ │ │ ├─Controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─Service
│ │ ├─reservation
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─exception
│ │ │ ├─model
│ │ │ ├─repository
│ │ │ └─service
│ │ └─subscribe
│ │ ├─controller
│ │ ├─dto
│ │ ├─model
│ │ ├─repository
│ │ └─service
│ └─resources
└─test