Code Monkey home page Code Monkey logo

bearrobotics's Introduction

erd

목차

Bearrobotics_기업과제

원티드 프리온보딩 코스 _ 두번째 기업과제 _ 베어로보틱스

배포 주소 --> 현재 비용 문제로 인해 내려둔 상태입니다.

팀 노션 GoTo

  • 요구사항 분석, 정보 공유 및 프로젝트 진행을 위해 사용

과제 해석

이 서비스는 매장별 매출과 같은 민감한 통계자료가 있기 때문에 가입한 유저들중 등급에 따라 이용이 가능한 단계가 구분되어 있는 서비스라고 해석하였습니다.

따라서 인증 되지 않은 유저는 회원가입, 로그인페이지만 이용가능

구현 요구사항

  • 레스토랑(지점) CRUD
    • 각 레스토랑의 정보를 담을 수 있는 테이블 생성
    • 레스토랑(지점) 등록, 조회, 수정, 삭제
  • POS 정보 CRUD
    • 각 레스토랑의 POS 정보를 담을 수 있는 테이블 생성
    • POS 정보 등록, 조회, 수정, 삭제
  • 레스토랑별 POS 정보 검색
    • strat_time, end_time, time window size로 검색할 시 restauranttotal_price / Number of payments by payment method / Number of payments by number of partys 조회
    • 레스토랑별 총 매출, 지불방식별 결제 수, 방문자 수별 결제 수를 조회할 때 사용하는 파라미터는 다음과 같습니다.
      • 필수
        • start_time=YYYY-mm-dd HH:MM:SS
        • end_time=YYYY-mm-dd HH:MM:SS
        • timeunit=year/month/week/day/hour
      • 추가 선택
        • min_price=integer value
        • max_price=integer value
        • min_party=integer value
        • max_party=integer value
        • group=group name(string value)
  • Bonus Points
    • POS 정보 총 검색
      • start_time, end_time, time window size로 검색할 시 total_price 조회
      • 전체 총 매출을 조회할 때 사용하는 파라미터는 다음과 같습니다.
        • 필수
          • start_time=YYYY-mm-dd HH:MM:SS
          • end_time=YYYY-mm-dd HH:MM:SS
          • timeunit=year/month/week/day/hour
        • 추가 선택
          • group=group name(string value)
          • address=string value
    • 메뉴 CRUD
      • 메뉴 정보를 담을 수 있는 테이블 생성
        • menu테이블과 restaurant테이블은 group으로 연결
      • 메뉴별 POS 정보 검색
        • start_time, end_time, time window size로 검색할 시 menutotal_price 조회
    • 유저 인증
      • jwt 기반 인증
        • custom middleware, authentication 구현
        • permission 적용

구현

기술 스택

개발 기간

  • 2022.05.02 - 2022.05.09

ERD

erd

API 명세

--> 현재 비용 문제로 인해 내려둔 상태입니다.

구현 과정 중 특이사항

  • utils/db_uploader.py를 사용하여 주어진 데이터셋을 database에 바로 저장해 요구사항을 확인, 구현하였습니다.
  • 각 restaurant의 임의의 필터링을 거친 정렬된 KPI 자료들을 확인할 수 있도록 구현하였습니다.

인증 테스트 방법

  • api/users/signup : 회원가입
  • api/users/login : 로그인후 반환된 토큰 값 헤더에 넣기
    mod
  • postman으로 넣는 방법도있으나 chrome 확장프로그램중 modheader를 이용해 인증
  • PUT api/users/:pk : 유저 rank_type = CONFIRM으로 변경 후 서비스 이용

Step to run

$ python -m venv venv
$ source venv/Scripts/activate
$ python install -r requirements.txt
$ python manage.py runserver --settings=config.settings.develop

Author

강정희

  • 프로젝트 초기 세팅
  • Group model 모델링 및 구축
  • 레스토랑(지점) CRUD API
    • 이름, 도시, 상세 주소, 그룹 정보를 필수로 받아 레스토랑 정보를 생성
    • 레스토랑 고유 id값으로 상세 정보 조회하고 'CONFIRM' 권한을 가진 사용자는 레스토랑의 정보를 수정하거나 삭제할 수 있음
  • POS 정보 검색 API
    • 검색에 필요한 파라미터 예외처리 로직 구축
      • start_time, end_time, timeunit은 필수로 입력하도록 구현
      • 지정된 형식이 아니거나 이전 범위가 이후 범위보다 클 경우(기간, 판매 가격, 방문자 수 등의 범위) 400 code 리턴
    • api/pos/total_price?parameters...
      • 파라미터로 넘어온 검색 기간과 시간 단위에 따라 레스토랑별 총 매출 확인 가능
    • api/pos/payment?parameters...
      • 파라미터로 넘어온 검색 기간과 시간 단위에 따라 레스토랑, 결제 방식별 결제 수 확인 가능
  • 레스토랑별 POS 정보 검색 API
    • 레스토랑 고유 id값으로 지점마다의 총 매출, 결제 수 등 확인 가능

김채욱

  • 프로젝트 초기 세팅
  • Restaurant model 모델링 및 구축
  • POS 정보 검색 API
    • pos/party?parameters...
      • 파라미터로 넘어온 검색 기간과 시간 단위에 따라 레스토랑, 방문자 수별 결제 수 확인 가능
  • Test Code
    • Restaurant/ Guest API를 각 method 별로 테스트 기능을 작성
    • Model 부분은 facotry boy와 faker를 이용해 테스트
    • pytest.ini설정 및 conftest 파일에 전체 함수 정의

이형준

  • 프로젝트 초기 세팅
  • Employee, Menu 모델링 및 구축
  • Employee jwt 토큰 기반 인증(signup, login)
    • custom middleware, authentication
    • custom permission
  • Employee CRUD
  • Menu CRUD
  • 전체 permission 분기 설정
  • 배포
    • AWS EC2
    • DOCKER
  • test code
    • user CRUD & get headers

서재환

  • Guest model 모델링 및 ERD 작성
  • POS CRUD API
    • POS 관련 CRUD api 작성
  • DB UPLOADER 및 CSV file 작성
    • api 조회를 위한 데이터베이스 세팅
  • 그룹 API
    • 특정 그룹에 속한 것과 상관없이 모든 POS 정보 조회
    • 그룹이름이 그룹테이블에 있는지 조회하고 해당 그룹에 속한 POS 정보를 조회
    • 특정 기간 동안 특정 그룹의 POS 정보를 조회
    • 특정 기간 동안 특정 그룹에 속하는 POS 정보를 시간, 일, 주, 달, 연 중 하나로 그룹핑하여 POS 정보를 조회
  • 주소 API
    • 찾으려는 주소가 있는지 조회하고 주소에 해당하는 레스토랑이 POS에 있는지 조회
    • 찾으려는 주소가 있는지 조회하고 있을 경우 특정기간에 한해서 주소에 해당하는 레스토랑이 POS 있는지 조회
    • 특정기간 동안 찾으려는 주소에 POS 정보를 시간, 일, 주, 달, 연 중 하나로 그룹핑하여 POS 정보를 조회합니다.

bearrobotics's People

Contributors

jjenny-k avatar kcw2297 avatar leeceo97 avatar woodstock1993 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.