Giter Club home page Giter Club logo

waitsecond's Introduction

맛집 대기는 웨잇세컨드! - WaitSecond


📝 프로젝트 소개


맛집 줄서기, 이제 가게 앞에서 기다리지 마세요!

waitsecond 로고

웨잇세컨드는 음식점, 카페 등에서 대기 손님을 관리해주는 웨이팅 관리 웹 사이트입니다.

waitsecond web pages

  • 대기 손님은 QR 코드를 통해 접근한 웹 페이지로 개인 정보를 입력 후 웨이팅을 등록합니다.
  • 관리자는 전용 페이지를 통해 등록된 웨이팅 리스트를 관리합니다.

웨이팅 관리용 태블릿을 설치하기 어려운 환경이라면? 비용적인 부담으로 섣불리 웨이팅 시스템을 설치하기가 부담스럽다면? 웨잇세컨드를 한 번 이용해보세요!

📃 주요 페이지 및 기능


  • 고객 페이지

    • 필수 정보만 입력하면 매장 대기열에 등록할 수 있습니다.
    • 기다리는 중, 수정되어야 할 사항이 있다면 수정 버튼을 통해서 언제든지 등록한 정보를 수정할 수 있습니다.
    • 내 정보 페이지를 벗어나도, 매장 페이지에서 연락처만 입력하면 언제든 내 대기 정보를 확인할 수 있습니다.
  • 관리자 페이지

    • 현재 대기열을 확인하고 대기 손님에게 전화를 걸거나 대기 정보를 등록, 수정, 입장 완료 처리할 수 있습니다.
    • 기다리는 고객들의 정보와 필요에 따라 추가할 수 있는 매장 옵션 등, 매장 관리 페이지에서 내 매장과 관련한 사항을 설정할 수 있습니다.
    • 위에서 설정한 사항들은 고객 페이지에 반영이 되며, 경우에 따라 매장의 대기 접수를 개시하거나 마감할 수 있습니다.
    • 그 밖에도 본 사이트를 이용하기 위한 위한 기본적인 회원 가입 및 로그인, 비밀번호 찾기, 변경 등의 계정 관련 기능을 이용할 수 있습니다.

🖼️ 프로젝트 시연


(현재 영상 제작중입니다.)

🏗️ 기술 스택 / 아키텍쳐


**ℹ️ 프로젝트 **


👨‍💻 개발 정보

공지사항

🪲 버그(이슈) 보고

📋 프로젝트 개발 현황

브랜치 관리 및 커밋 규칙

👥 개발자 정보

작업자 이력서

개발 기록 / 블로그

waitsecond's People

Contributors

drunkenneoguri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

waitsecond's Issues

1차 QA 테스트 및 기능 개선

본 이슈는 1차로 자체 QA 테스트를 진행한 후, 발생한 문제점 및 보완점 등을 정리하여 이를 개선하기 위해 생성한 이슈입니다.

현재 작업이 진행되어야 할 이슈는 다음과 같습니다.

  • 관리자 입력 페이지 내 헤더에 뒤로 가기 버튼 추가
  • 비밀번호 찾기 페이지 전달 완료 시 toast 메시지 대신 페이지 내용 변경으로 전환
  • 회원탈퇴 시, 비밀번호나 이메일 잘못 입력해도 성공했다고 모달 내용이 변경되는 문제 수정
  • 배경 색상이 범위보다 모자르는 문제 수정
  • 관리자 대기 리스트 페이지 내 헤더에 오늘 날짜가 출력되도록 수정
  • 관리자 메뉴 창 내 ~님을 아이디가 아닌 가게명으로 변경
    • 가게 명이 길어질 시에 어떻게 출력할 것인지 고민
    • 가게 명의 최대 길이를 결정할 것
  • 관리자 매장 관리 페이지에서 내용을 작성 중에 다른 탭 등을 갔다가 돌아올 시, 작성된 내용이 아닌 기존 설정값으로 돌아오는 문제 수정
  • 대기 상태 페이지 내 메시지가 현재 잔여 팀에 상관없이 출력되는 문제 수정
  • 관리자 대기 리스트 및 대기 상태 페이지 내 고객 정보를 수정할 수 있도록 기능 개선
  • 대기 리스트의 대기 정보 입력 모달이나 회원 탈퇴 등의 폼 모달에서 input 입력 후 입력한 내용이 그대로 남아있는 문제 수정
  • 관리자 대기 리스트 내 고객 정보 블록에 있는 입장 완료 버튼 관련하여, 이미 입장 완료된 상태라면 '완료 취소'로 버튼 내용이 변경되도록 수정
  • 고객 페이지 내 path의 첫 부분을 '/store'로 변경하여 적용
  • 모집 마감이나 정원이 꽉 찼을 시 출력될 내용을 별도 공용 컴포넌트로 분리
  • 이미지 기능 적용
    • 기간 내에 적용 어려울 시, 추후 개선 사항으로 반영함.
  • placeholder 추가 사항 반영
    • 가게명 20글자 이내, 연락처 양식, 커스텀 옵션 내용 길이 등

관리자 페이지 기능 구현

[이슈 설명]

본 이슈는 View 작업을 마친 관리자 페이지들의 필수 기능 구현을 진행하기 위한 이슈입니다.

작업 사항들은 커밋 후 해당 이슈의 아래 Preview Comment를 통해 기록하겠습니다.

로그인 관련 기능 수정 및 개선

본 이슈는 1차로 자체 QA 테스트를 진행한 후, 발생한 문제점 및 보완점 등을 정리한 사항 중에, 로그인과 관련한 항목이 많아 이를 별도로 관리하고 개선하기 위해 생성한 이슈입니다.

현재 작업이 진행되어야 할 이슈는 다음과 같습니다.

  • 이메일 저장 기능 적용
    • 어느 쪽으로 할 지 좀 더 고민해보고, 해당 기능을 적용하기로 함.
    • 토큰을 계속 보관하는 건 그래도 아닌 것 같아서 개인 정보 노출에 덜 위험한 이메일 저장 기능으로 변경.
  • 새로고침하면 로그인 상태가 유지되지 않는 문제 수정
  • 로그인할 시, 이메일 인증을 안 한 계정이라면 이메일 인증 하도록 유도
  • 관리자 페이지에서 로그인이 되지 않았다면, 로그인하라는 모달 또는 Toast 메시지와 함께 로그인 페이지로 보내도록 유도
    • 로그인 상태에서 활동 없이 방치된 상태에서 토큰이 기간 만료되면 Toast 메시지로 재로그인 할 것을 유도
    • 기간이 만료되지 않았다면 토큰의 시간을 연장해주도록 구현
  • 관리자 메뉴에 로그아웃 기능 없던 문제 수정
  • 인증까지 완료된 계정이 첫 로그인을 시도할 시, 매장 설정을 위해 처음 한 번만 매장 관리 페이지로 이동하도록 적용
    • 구현이 까다로울 경우, 배제하거나 런칭 후의 개선 사항으로 추가할 것

로그인되지 않은 경우에도 일부 관리자 페이지에 접근할 수 있는 문제

[이슈 일자] 2023-04-25

[이슈 보고자] @DrunkenNeoguri

[재현 절차]

  1. 관리자 로그인 페이지에서 로그인을 하지 않고, /adminsetting path로 관리자 설정 페이지로 직접 이동합니다.
  2. 관리자 설정 페이지에 로그인을 하지 않아도 접근할 수 있습니다.

[수정 결과]
/adminsetting path 외에 일부 관리자 설정 페이지들에 로그인하지 않고 직접 이동 시, 로그인 페이지로 다시 redirect 되어야 합니다.

커밋 메시지 규칙 정립

[이슈 설명]

본 일감은 현재 정리되지 않은 커밋 메시지의 작성 규칙 및 작성 템플릿을 결정 및 관리하기 위한 일감입니다.
커밋 메시지의 작성 규칙이 정립될 경우, 댓글 Preview에 남겨 관련 사항을 기록합니다.
작성 템플릿을 생성할 경우에도 동일하게 기록합니다.

프로덕션 단계(3차) QA 테스트 및 기능 개선

본 이슈는 테스트 릴리즈 단계에서 3차로 자체 QA 테스트를 진행 후, 발생한 문제점 및 보완점 등을 정리하고 이를 개선하기 위해 생성한 이슈입니다.

테스트 진행 후 발생한 문제점 및 개선할 사항을 아래에 체크리스트로 나열합니다.

  • 고객 페이지의 매장 이름이 undefined로 출력되는 문제
  • 페이지 진입 시, 구글 번역 기능이 작동하는 문제
  • 에러페이지 추가 제작 및 라우팅 연결
  • 프로젝트 소개 페이지 간략하게 제작
  • 대기 정보 확인 모달의 버튼 색이 임시 색상으로 적용됨
  • 매장 관리 페이지의 버튼 내 hover 기능 제거
  • 관리자 비밀번호 변경 시, 값이 일치하지 않을 경우 에러로 인해 페이지가 blank가 되는 문제
  • 고객 정보 내 인원 버튼 클릭 시 활성화되는 focus 색상 변경
  • 고객 대기 정보 화면에서 title이 누락된 문제
  • 메인 화면에서 전화번호 입력 시, 경로가 잘못 설정되어 페이지가 출력되지 않는 문제
  • 대기 등록 모달에서 정보 수정 상태일 시, 버튼이나 헤딩의 내용이 '수정'이 아닌 '등록'으로 표기되는 문제
  • 인원 초과 시 나오는 내용에 대기팀 블록이 두 개 출력되는 문제
  • 관리자 메뉴에 매장 메인 페이지를 확인할 수 있도록 메뉴를 하나 더 추가
  • 이메일 아이디 / 이메일 -> 이메일 아이디로 표시 통합
  • workBreak 항목이 처리되지 않은 사항 확인 후 수정 진행
  • 오픈그래프의 이미지 태그가 적용되지 않는 문제
  • 대기 옵션 추가 - 야외석 착석 여부
  • 고객 대기 정보 페이지 내 곧 입장이 다가올 시 출력되는 메시지에 문구 수정
  • 고객 대기 정보 페이지 내 새로고침 버튼 추가
  • 페이지별 공용 푸터 추가
  • 페이지 최대 너비 적용
  • 페이지 너비에 따라 핸드폰 숫자가 뒷자리 4개 / 전체 자리가 나오도록 수정
  • 페이지 너비에 따라 대기 정보 블록의 폰트사이즈가 조금 더 커지도록 수정
  • 날짜 변경 시의 useEffect가 아닌 useLayoutEffect로 기존 대기 리스트를 리셋시키도록 수정

첫 로그인 후, 매장 초기 세팅 시 변경 사항 저장 버튼이 계속 로딩중인 문제

[이슈 일자] 2023-04-26

[이슈 보고자] @DrunkenNeoguri

[재현 절차]

  1. 회원 가입 후, 첫 로그인 진행
  2. 절차에 따라 매장 관리 초기 세팅을 위해 매장 관리 페이지로 이동
  3. 매장 관리 초기 세팅 후 변경 사항 저장 버튼을 누를려고 계속해서 로딩 상태가 적용됨

※ 해당 문제는 초기 세팅이 아니어도 매장 관리 화면에서 계속 적용되고 있습니다.

[수정 결과]

매장 관리 페이지에 진입 시, 변경 사항 저장 버튼을 누르지 않았더라도 버튼이 로딩 상태가 되어서는 안됩니다.

개발 초기 세팅 구축 (Frontend)

이슈 안내

  • 본 이슈는 프로젝트 개발 준비를 위해 개발 초기 세팅 사항을 커밋 및 관리하기 위한 이슈입니다.
  • 본 이슈는 Frontend 관련 개발 초기 세팅을 관리합니다.
  • 개발 초기 세팅 시, 적용될 사항들은 아래와 같습니다.
    • React
    • TypeScript
    • Recoil
    • TanStack-Query(React-Query v4)
    • Chakra UI
    • Jest

유저 웨이팅 상태 확인 페이지 구현

[이슈 설명]

본 일감은 유저의 입력한 정보에 따른 웨이팅 상태 페이지 구현을 관리하기 위한 일감입니다.
본 일감에서는 WaitingState 페이지와 관련한 구현 내역을 기록하며, 구현 완료 후의 수정 및 버그 사항은 추가 일감으로
관리하여 진행하겠습니다.

폴더 구조 구축 (Frontend)

[이슈 설명]

본 일감은 프론트엔드 환경 개발 환경 구축과 관련하여 폴더 구조를 정립하고 이를 구축하기 위한 일감입니다.

  • 페이지, 컴포넌트, 레이아웃, 상태 관리 툴 등 각 용도에 따른 폴더 구조를 정립합니다.
  • 브랜치를 분리하고 각 브랜치별 용도 및 사용 전략을 정립합니다.

등록 모달에 Input 자동 포커스 해제 및 가상 키보드 다음 버튼 동작 처리

본 이슈는 두 가지 문제점을 해결하기 위해 생성된 이슈입니다.
문제점은 아래와 같습니다.

  • 등록 모달을 열 시, Input 컴포넌트에 자동으로 focus가 들어가는 문제
  • Input에서 가상 키보드를 작성할 시, 다음/엔터 버튼 동작 처리 시 가상 키보드가 닫히지 않는 문제

수정 과정은 아래의 Preview Comment를 통해 관리하도록 하겠습니다.

디자인 변경에 따른 페이지 UI 전체 수정

[이슈 설명]

본 이슈는 3월 11일부터 계속해서 진행한 디자인 1차 수정안에 맞춰 현재까지 작업된 페이지들의 UI를
현재 변경된 디자인에 맞춰 변경하는 작업을 관리하는 이슈입니다.

수정된 페이지들은 커밋 후 해당 이슈의 아래 Preview Comment를 통해 기록하겠습니다.

관리자 계정 관련 페이지 View 구현

[이슈 설명]

본 일감은 일부 관리자 페이지들의 입력 화면 View 구성을 작업하기 위한 일감입니다.
작업할 대상은 아래와 같습니다.

  • 관리자 로그인 페이지 (adminlogin)
  • 관리자 회원가입 페이지 (adminsignup)
  • 관리자 비밀번호 찾기 페이지 (adminfindpassword)
  • 관리자 비밀번호 변경 페이지 (adminchangepassword)
  • 관리자 이메일 확인 페이지 (adminemailcheck)

프로젝트 빌드 및 테스트 배포

[이슈 설명]

본 이슈는 프로젝트의 빌드 및 테스트 배포를 진행하기 위한 이슈입니다.

진행 사항들은 해당 이슈의 아래 Preview Comment를 통해 기록하겠습니다.

유저 웨이팅 정보 입력 페이지 구현

[이슈 설명]

본 일감은 유저의 웨이팅 정보를 입력하기 위한 입력 페이지 구현을 관리하기 위한 일감입니다.
본 일감에서는 WaitingForm 페이지와 관련한 구현 내역을 기록하며, 구현 완료 후의 수정 및 버그 사항은 추가 일감으로
관리하여 진행하겠습니다.

관리자 대기 상황 및 상점 관리 페이지 View 작업

[이슈 설명]

본 일감은 일부 관리자 페이지들의 View 구성을 작업하기 위한 일감입니다.
작업할 대상은 아래와 같습니다.

  • 관리자 현재 대기 상황 페이지 (adminwaitinglist)
  • 관리자 상점 관리 페이지 (adminsetting)

View 관련 작업 사항은 아래의 Preview Comment을 통해서 기록을 진행합니다.

UI 기본 컴포넌트 추가 (Frontend)

[이슈 설명]

본 일감은 각 페이지마다 공통적으로 사용될 수 있는 UI 기본 컴포넌트를 생성하고 관리하기 위한 일감입니다.
생성할 컴포넌트는 아래와 같으며, 개발 상황에 따라 계속해서 추가되거나 삭제, 변경될 수 있습니다.
추가, 삭제, 변경된 컴포넌트는 메인 Preview에 관련 날짜를 작성해 추가하고, 댓글 Preview에 관련 내용을 달아주십시오.

  • CommonInput
  • CommonButton
  • CommonColumnBox
  • CommonRowBox

이용자 가이드 제작

본 이슈는 웨잇세컨드 서비스를 이용하기 위해, 이용자들에게 사용 방법을 안내해주는 가이드 문서를 제작하기 위한 이슈입니다.

페이지별 Navigate 연결 및 Toast 메시지, Modal 적용

[이슈 설명]

본 이슈는 페이지 간에 이동시키기 위한 navigate 연결 및 일부 에러 사항이 발생 시, 출력될 Toast 메시지를 각 컴포넌트에 배치하고 관리하기 위해 생성되었습니다.
관련 사항들을 추가하거나 수정 시, 커밋 후 해당 이슈의 아래 Preview Comment를 통해 기록하겠습니다.

매장 안내 사항 항목 추가

본 이슈는 관리자가 고객에게 안내하고 싶은 사항을 나타내기 위해 관련 기능 추가를 작업하기 위한 이슈입니다.
이슈 작업 사항은 아래의 Preview Comment를 통해 기록합니다.

구글 애널리틱스 배치

본 이슈는 각 페이지 별 사용자 유입 및 유동성을 분석하기 위해 구글 애널리틱스을 배치하기 위해 작성되었습니다.
작업 관련 사항은 아래의 Preview Comment로 기록하겠습니다.

Firebase 연동 및 반영

[이슈 설명]

본 일감은 유저 및 관리자의 데이터를 관리하기 위해 프로젝트에 Firebase를 연동하는 작업을 관리하는 일감입니다.
본 일감에서는 Firebase 설치 및 Firebase Auth와 Firebase Firestore 등의 연동 및 프로젝트 내 구현한 사항들을 아래의 Preview를 통해 기록하며 진행합니다.

회원 탈퇴 시, 탈퇴 회원의 storeList 및 adminList 문서가 남아있는 문제

[이슈 일자] 2023-04-25

[이슈 보고자] @DrunkenNeoguri

[재현 절차]

  1. 관리자 로그인을 진행 후 설정 -> 회원 탈퇴를 통해 탈퇴를 진행합니다.
  2. 회원 탈퇴 후, 탈퇴한 계정의 매장 페이지를 접속합니다.
  3. 회원 탈퇴 후 지워져야 할 매장 페이지가 여전히 남아있습니다.

[수정 결과]

  • 회원 탈퇴 후, 탈퇴한 회원의 매장 페이지가 접속되지 않아야 합니다.

2차 QA 테스트 및 기능 개선

본 이슈는 2차로 자체 QA 테스트를 진행한 후, 발생한 문제점 및 보완점 등을 정리하여 이를 개선하기 위해 생성한 이슈입니다.

테스트 진행 후 발생한 문제점 및 개선할 사항을 아래에 체크리스트로 나열합니다.

  • 각 input 사항에 maxlength 반영
  • 전체 페이지의 기본 폰트 색상 적용 - #333333
  • 대기 작성이 마감되어도 이미 입력한 대기 사항은 확인 가능하게 조정
  • 대기열이 하나도 없으면 대기열이 없다는 블록으로 출력되도록 변경
  • 대기 상태, 대기 정보 확인 모달의 일부 서브 컬러 색상을 메인컬러로 변경
  • 현재 적용되지 않는 번역 옵션 아이콘 숨김 적용
  • 정보 수정 시, 중복된 연락처가 이미 있다며 수정 진행이 불가한 문제
  • 추가 옵션이 하나도 없는데 추가옵션 항목이 노출되는 문제
  • 대기 상태 페이지에서 추가 옵션 글자가 깨지는 문제
  • 고객 페이지에서 저시력 모드가 적용되지 않는 문제
  • 저시력 모드에서 참고 문장이 깨지는 문제 수정
  • 저시력 모드에서 체크 박스의 사이즈를 md->lg로 확대 적용
  • 모달 화면 내에서 보여지는 글자 수 관련, 저시력 모드를 고려해 조정 확인
  • 로그인 시, 그리고 설정 페이지에서 데이터 불러올시 로딩 모달 출력되도록 적용
  • 수정 후 다시 정보 수정을 누를 때 정보가 이전 내용으로 출력되는 문제
  • 매장 관리 페이지 진입 시, 첫 정보 수정을 시도하면 페이지가 렌더링되는 문제
  • 매장 관리 페이지에서 선택되지 않은 버튼 쪽에 구분이 될 수 있도록 border 적용하기
  • 추가 옵션 설정 수정 후, 기존에 있는 옵션이 지워지는 문제
  • 비밀번호 변경 시, 새 비밀번호를 입력하면 하단의 확인 사항까지 에러 메시지가 같이 출력하는 문제
  • 일부 페이지의 배경 색이 잘려 나오는 문제 수정
  • 현재 보고 있는 관리자 페이지 메뉴를 누르면 관리자 메뉴가 닫히지 않는 문제
  • 페이지 높이 문제 수정
    • 해당 사항은 페이지 레이아웃을 분리하는 것으로 적용
  • 메타 태그를 페이지별로 분리 가능한지 확인, 가능하다면 각 페이지별로 적용
    • custom hook으로 구현은 했으나, 카카오톡 등에 전달 시 기존 메타 태그로 적용되므로 해당 사항은 사용하지 않기로 함.
    • Next.js로 변환 후에 다시 고민해보는 사항으로 적용
  • 페이지별 탭 이름을 다르게 출력할 수 있도록 적용

수정 사항은 아래의 Preview를 통해서 기록하도록 하겠습니다.

이미지 변경 기능 추가

본 이슈는 매장 관리 페이지에서 이미지를 업로드 및 변경할 수 있는 기능을 구현하기 위해 생성된 이슈입니다.
작업 관련 사항은 아래의 Preview Comment를 통해 안내합니다.

15일 QA 테스트 진행 중 문제점 및 기능 개선

본 이슈는 15일에 별도로 진행항 4차 자체 QA 테스트 진행 후, 발견한 문제점 및 개선 이슈 등을 정리하고 이를 작업하기 위한 이슈입니다.

문제점 및 개선 사항은 아래에 체크리스트로 나열합니다.

  • 입력창이 아닌 Text로 출력되는 전화번호는 000-000-0000 / 000-0000-0000 형태로 나오도록 수정
  • 날짜 변경 시, 기존 데이터 삭제를 진행했음에도 대기중 리스트에 출력되는 문제
  • 설정 페이지에서 새로고침하고 메뉴를 열면 페이지가 blank되는 문제
  • 매장 관리 페이지 내에 QR 코드 API 연동 등 해서 QR코드 발급 받을 수 있는 것을 구현할 수 있는지 확인 필요

관리자 비밀번호 변경 및 회원 탈퇴 페이지 View 작업

[이슈 설명]

본 일감은 일부 관리자 페이지들의 View 구성을 작업하기 위한 일감입니다.
작업할 대상은 아래와 같습니다.

  • 관리자 설정 페이지 (adminsetting)
  • 관리자 회원 탈퇴 페이지 (adminwithdrawal)
  • 관리자 비밀번호 변경 페이지 (adminchangepassword)

View 관련 작업 사항은 아래의 Preview Comment을 통해서 기록을 진행합니다.

firebase 에러 로그 처리: Sentry 적용

본 이슈는 에러 발생 시에 임시로 적용한 console.log() 및 error.message 사항을 에러 트래킹 시스템인 Sentry를 통해 에러 메시지를 수집할 수 있도록 배치하기 위해 생성됐습니다.

배치 진행 과정은 아래 Preview Comment로 기록하겠습니다.

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.