Skip to content

JoeMinKyung/delivery-app-project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

181 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

먹슐랭

배달 스타트업 클라이언트의 요청대로 배달 어플리케이션 개발 아웃소싱 프로젝트를 진행하였습니다.
Live demo here.



Table of Contents



📌 General Information

1. 회원관리 (users)

  • 회원 정보를 CRUD로 관리합니다.

    • 회원 가입

      • 사용자 아이디는 이메일 형식입니다.

      • 비밀번호는 최소 8글자 이상이며, 대소문자 포함 영문 + 숫자 + 특수문자를 최소 1글자씩 포함합니다.(Bcrypt 를 사용해 DB에는 다른 형식으로 비밀번호가 저장됩니다)

      • 중복된 아이디, 비밀번호와 비밀번호 확인이 맞지 않으면 가입이 불가능합니다.

      • 가입 시 권한(USER, OWNER, ADMIN, RIDER) 을 입력하면, 그에 맞게 기능을 사용할 수 있습니다.

    • 회원 정보 조회

      • 전체 회원 목록 조회: 가입한 회원의 모든 정보를 페이지로 나눠 조회할 수 있습니다.

      • 프로필 조회: 현재 로그인한 회원의 정보를 조회할 수 있습니다.

    • 회원 탈퇴

      • 탈퇴 시 비밀번호를 입력 후 일치할 때 탈퇴 처리가 됩니다.

      • 탈퇴한 사용자의 아이디는 재사용할 수 없고, 복구할 수 없습니다.(SOFT DELETE)


2. 인증 및 인가(authentication)

  • jwt를 통한 로그인 기능을 구현하였습니다.

  • refresh token을 cookie에 담아 토큰 재발급이 가능합니다.

  • refresh token 만료로 로그아웃이 가능합니다.

  • filter를 사용한 로그인 필터, 권한에 따른 interceptor를 사용하였습니다.


3. 가게(store)

  • 가게주인이 가게 C, U, D를 할 수 있습니다.

  • 즐겨찾기 개수를 포함한 가게 다건 조회가 가능합니다.

  • 가게 단건 조회시 메뉴 조회를 할 수 있습니다.


4. 가게 카테고리(category)

  • 관리자는 카테고리 생성/삭제가 가능합니다.

  • 가게 주인은 카테고리 등록/해제가 가능합니다.

  • 카테고리별 가게 다건 조회가 가능합니다.


5. 메뉴 (menus)

  • 메뉴 정보를 CRUD로 관리합니다.

    • 메뉴 생성

      • 사장님(OWNER)만 생성이 가능합니다.

      • 같은 가게에선 동일한 이름의 메뉴 생성이 불가능합니다.

    • 메뉴 조회

      • 전체 메뉴 목록 조회: 생성한 모든 메뉴를 페이지로 나눠 조회할 수 있습니다 (삭제된 메뉴도 조회 가능)

      • 단건 메뉴 조회: 지정한 메뉴의 정보를 조회할 수 있습니다.

      • 가게별 메뉴 조회: 지정한 가게의 모든 메뉴를 페이지로 나눠 조회할 수 있습니다.(판매하는 메뉴만 조회 가능)

    • 메뉴 수정

      • 사장님(OWNER)만 수정이 가능합니다.
    • 메뉴 삭제

      • 사장님(OWNER) 본인 가게의 메뉴만 삭제할 수 있습니다.

      • 삭제 시, 메뉴의 상태만 삭제 상태로 변경됩니다.(SOFT DELETE)


6. 즐겨찾기 (Bookmarks)

  • 토글 방식으로 즐겨찾기 추가 및 삭제가 가능합니다.

  • 페이징을 지원하여 즐겨찾기 목록 조회가 가능합니다.

  • 즐겨찾기는 로그인한 유저만 접근이 가능합니다.

  • 이 때, @Auth AuthUser authUser 을 통해 인증된 유저의 정보를 활용합니다.


7. 공지 (Notices)

  • 점주(OWNER)만 가게 공지사항 생성, 수정, 삭제를 할 수 있습니다.

  • 모든 사용자가 공지사항을 조회할 수 있습니다.

  • 페이징을 통한 공지사항 목록을 조회할 수 있습니다.

    • 점주(OWNER)만 공지사항을 관리할 수 있습니다.

8. 리뷰 (Reviews)

  • 리뷰 생성

    • 리뷰 작성

      • 사용자는 각 가게에 대한 리뷰를 작성할 수 있습니다.

      • 리뷰는 가게에 대한 평가와 내용을 포함합니다.

      • 사용자는 한 가게에 한 개의 리뷰만 작성할 수 있습니다.

    • 중복 리뷰 방지

      • 사용자가 이미 해당 가게에 리뷰를 작성한 경우, 다시 작성할 수 없습니다.
  • 리뷰 조회

    • 리뷰 목록 조회

      • 특정 가게에 대한 모든 리뷰를 조회할 수 있으며, 이를 통해 다른 사용자의 피드백을 확인할 수 있습니다.
  • 리뷰 수정

    • 사용자는 자신이 작성한 리뷰의 내용을 수정할 수 있습니다.

    • 다른 사용자의 리뷰는 수정할 수 없습니다.

  • 리뷰 삭제

    • 사용자는 자신이 작성한 리뷰를 삭제할 수 있으며, 삭제된 리뷰는 데이터베이스에서 완전히 제거됩니다.

9. 사장님 댓글 (Comments)

  • 댓글 작성

    • 리뷰에 대해 가게의 사장님만 댓글을 작성할 수 있습니다.

    • 각 리뷰에 대해 사장님은 한 개의 댓글만 작성할 수 있습니다.

  • 댓글 조회

    • 사장님이 작성한 댓글을 확인할 수 있습니다.
  • 댓글 수정 및 삭제

    • 사장님은 자신이 작성한 댓글을 수정하거나 삭제할 수 있습니다.

10. 주문관리 (order)

  • 장바구니의 메뉴로 주문 할 수 있습니다.

    • 가게 주인이 주문 승인하면 포인트 미 사용 시 주문 금액의 3% 포인트로 적립합니다.

    • 가게 주인이 주문 거절할 수 있습니다.


11. 장바구니 (cart)

  • 여러개의 메뉴를 담을 수 있습니다.

  • 다른 가게의 메뉴를 담을 시 기존 장바구니 초기화 하고 새로 담습니다.

  • 장바구니를 비울 수 있습니다.

  • 같은 가게의 같은 메뉴를 담을 시 수량이 증가합니다.

  • 메뉴의 수량을 감소할 수 있습니다.


12. 배송 (delivery)

  • 승인 된 주문을 배송할 수 있습니다.



🛠️ Technologies Used






📂 API Documentation

원본 링크


인증(Authentication) /auth

image


유저(Users) /user

image

image


즐겨찾기(Bookmarks) /bookmarks

image


리뷰(Reviews) /reviews

image


사장님 댓글(OwnerComment) /comments

image


가게(Store) /stores

image

image

image


카테고리(Category) /categorys

image


주문(Order) /orders

image

image


장바구니(Cart) /carts

image


배송(Delivery) /deliveries

image

가게 공지(Notices) /notices

image

메뉴(Menu) /menus

image

image

image



🏗️ Wireframe

image (10)



📊 ERD

원본 링크


image (11)



📬 Contact

Created by @bopeep934 @JoeMinKyung @juno-soodal @queenriwon @Roloya28

문의사항이 있다면 언제든지 연락주세요!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%