/mobile-mart-payment

마트 자동 결제 시스템 (토이프로젝트)

Primary LanguageJava

mobile-mart-payment

비교적 제품 수가 적고 간단한 '노브랜드'를 타겟으로 제작하였습니다. 마트에서 계산을 위해 줄을 서지 않아도 되며 소비자가 직접 결제까지 가능합니다. 지점 관리자는 웹 대시보드 형식으로 지점 관리가 가능합니다.

mobile-mart-payment

디자인과 안드로이드 Repository는 아래 링크에서 확인해주세요.

시연 영상

GIF 준비중입니다.

안드로이드 앱>

관리자 웹 대시보드>

주요 기능

총 40개의 API가 구현되었습니다. 정리된 API문서는 팀에게만 공개되어있으며 그 중 핵심 기능만 README에 나열합니다.

고객 - 안드로이드 App

  • 로컬 및 소셜 로그인이 가능
  • 상품 바코드 스캔을 통해 장바구니에 담을 수 있음
  • 장바구니 결제 가능

지점 관리자 - 관리자 웹 대시보드

  • 유저 및 상품 관리가 가능
  • 지정한 최소 재고량에 따라 본사에 자동 재고 요청
  • 일, 주, 월 단위로 매출 현황 확인 가능

ERD

ERD DB Columns

서버 아키텍처

무중단 scale-out이 가능한 blue/green 배포전략으로 구성했습니다.

server architecture

CI·CD

Github에 소스코드를 PUSH 혹은 PR하면 Jenkins가 소스코드를 가져와서 빌드합니다. 빌드 결과를 프로젝트 팀 Slack으로 알리고 배포 스크립트를 통해 서버에 배포합니다. 여러 개의 도커 컨테이너를 관리하기 위해 docker compose를 사용했습니다.

ci-cd architecture

개발환경

프론트엔드
  • React
  • Graphql
  • Apollo Client
  • Material-UI
안드로이드
  • RecyclerView
  • Retrofit2
  • HttpLoggingInterceptor
  • WebViewClient
  • Google Vision
  • BarcodeGraphic
  • CameraSource
  • GraphicOverlay
  • SharedPreference
  • 아임포트
백엔드
  • Spring Security
  • Spring Cloud
  • Oauth2 Client
  • jjwt
  • Graphql
  • nurigo
  • redis
  • MySQL(RDS)
  • Amazon S3
  • Swagger2 (정리된 API문서본은 별도로 팀 노션으로 관리)
  • nginx
  • jenkins
  • docker

팀원

전체

디자인 프론트엔드
limhyoyeon
임효연

cho-hyerim
조혜림

chaeyeonp
박채연

안드로이드 백엔드
ggj0418
이현준

gamjacode
김형주

alexjime
지민수

j00hyun
박주현