Skip to content

Jinyshin/DONT-BE-LATE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

그만 좀 늦자 - DON'T BE LATE

‘그만 좀 늦자’는 늘 ‘5분 안에 갈게!’를 외치는 프로 늦참러들을 위한 서비스입니다.

저희 서비스는 그룹에 가입하여 약속 장소와 시간을 공유할 수 있으며, 벌칙을 피하기 위해서는 약속 장소에 제 때 도착해 체크인 버튼을 눌러야 합니다.

랭킹을 통해 누가 가장 약속을 잘 지키는지, 혹은 좀 더 서두를 필요가 있는지 확인해보세요!

저희의 웹 애플리케이션은 별도의 설치 없이도 모든 기기에서 접근할 수 있도록 설계되었습니다. iOS, Android, Windows, Mac 등 다양한 플랫폼에서 최적의 성능을 발휘하는 프로그레시브 웹앱(PWA)으로 개발되어, 언제 어디서나 모바일로 간편하게 이용할 수 있습니다.

✅ 기능 소개

1. 회원가입, 로그인

  • 카카오 또는 자체 이메일 회원가입을 통해 회원 정보를 관리합니다.
  • 그룹과 약속에 참여해야하는 서비스이므로 로그인 및 회원가입 과정은 필수입니다.

2. 메인 메뉴

2.1. 홈 탭

  • 로그인 후 처음 보이는 화면으로, 가장 가까운 시일의 약속을 보여줍니다.
  • 체크인 버튼을 통해 도착 시간을 남길 수 있으며, 시각이 기록되어 월간 랭킹 산출에 반영됩니다.
  • 제 시간에 도착하면 흩날리는 종이가루 효과와 함께 모달 창이 나타나며, 지각을 하면 늦은 시간이 안내된 모달 창이 나타납니다.

2.2. 그룹 탭

  • 나의 그룹을 모두 조회할 수 있습니다.
  • 우측 하단의 플로팅 버튼을 통해 새로운 그룹을 만들거나 새로운 그룹에 참여할 수 있습니다.

3. 그룹별 메뉴

  • 그룹 탭에서 특정 그룹을 선택하면 해당 그룹의 상세 정보를 조회할 수 있는 그룹별 메뉴로 이동합니다.

3.1. 약속 탭

  • 그룹별 페이지의 기본 화면으로, 해당 그룹의 모든 약속들을 조회할 수 있습니다.
  • 토글을 통해 이전 혹은 앞으로의 약속들을 모아서 펼쳐볼 수 있습니다.
  • 그룹원들의 약속에 대한 참여 여부를 선택할 수 있는 참여/불참 버튼을 제공합니다.
  • 우측 하단의 약속 추가 버튼을 터치하면, 새로운 약속의 이름, 장소, 시간, 벌칙을 정할 수 있는 모달 창이 나타납니다.
  • 그룹별 페이지의 약속 탭에서 약속을 선택하면, 해당 약속에 대한 참석자들의 체크인 기록을 조회할 수 있습니다.

3.2. 랭킹 탭

  • 그룹 멤버들의 누적된 지각 시간으로 산출된 월별 랭킹을 조회할 수 있습니다.
  • 기간 선택 및 이동 버튼과 드롭다운을 제공하여 현 시점으로부터 이전 6개월간의 랭킹을 확인할 수 있습니다.

3.3. 초대 탭

  • 새로운 그룹 멤버를 초대하기 위한 탭입니다. 초대 링크와 QR코드를 제공하여, 새로운 사용자에게 간편하게 공유할 수 있습니다.

✅ 서비스 아키텍처

dontbelate-service-architecture

✅ 기술 스택

  • FE
    • Next.js
    • styled-components
    • PWA (Progressive Web App)
  • BE
    • Nest.js
    • Prisma
    • PostgreSQL
    • AWS EC2

✅ API

Tag Endpoint Method
회원 /api/v1/accounts/signin POST
회원 /api/v1/accounts/signup POST
회원 /api/v1/accounts/kakao/signin POST
메인 /api/v1/appointments GET
메인 /api/v1/appointments/{aid}/checkin POST
메인 /api/v1/groups GET
메인 /api/v1/groups POST
메인 /api/v1/groups/join POST
그룹 /api/v1/appointments POST
그룹 /api/v1/appointments/{aid} PATCH
그룹 /api/v1/groups/{gid} GET
그룹 /api/v1/groups/{gid}/appointments GET
그룹 /api/v1/groups/{gid}/ranking GET
그룹 /api/v1/appointments/{aid} GET

✅ DB

image

팀 소개

Jinyshin
@Jjinyshin
unknownbox
@Unknown-Box
@yunseopark-kaist