j00hyun / mobile-mart-payment

마트 자동 결제 시스템 (토이프로젝트)
6 stars 9 forks source link

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
박주현