[완] 개인서버 개발/EasyCalendar(완)

#1 EasyCalendar 기획 및 설계

북극곰은콜라 2023. 5. 26. 15:08
반응형

개요

일정 정리를 위한 Calendar 관리는 제 삶에 필수적인 사항입니다.
하지만, 일정 입력 시 UX 적으로 번거로운 부분이 있습니다.
가령 반복적이지만 비 정기적인 일정 (운동, 모임 같은)을 입력할 때
날싸선택 -> 내용 입력 -> 시간 입력 -> 장소 입력 등등의 과정을 거치며
조금 더 편하게 입력할 수 있지 않을까 합니다.

 


기획

EasyCalendar란 반복적으로 일어나는 컨텍스트를 템플릿 화 하여, 반복되는 내용을 미리 입력해 놓고, 간편하게 등록하는 웹 서비스이다.

전체적인 구성으로는 4 페이즈로 나누어집니다.
1. 로그인 / 구글 연동 페이즈
 - 최초 EntryPoint에서 p-bear 로그인 연동을 통해 로그인 및 토큰 발급
 - 서비스 진입 시 구글 연동을 확인하며, 구글 연동 실패 / 미연동 시 구글 연동 진입
 - 연동 성공 시 서비스 
2. 일정 확인 및 간편 입력 버튼이 있는 DashBoard 페이즈
 - 앞으로 시작될 3개의 이벤트에 대한 내용을 보여줍니다.
 - 일정 템플릿이 리스트업 됩니다.
 - 템플릿 등록버튼이 있습니다.
3. 일정 등록 페이즈
 - 일정 등록 버튼 입력 시, 일정등록에 필요한 정보 입력 컨테이너가 해당 버튼 아래에 생성 또는 모달
 - 일정 등록 버튼 위치
4. 일정 템플릿 등록 페이즈
 - 일정 템플릿 등록을 위한 정보 입력 페이지가 나옵니다.
 - 템플릿을 Type별로 관리할 예정
    - WeekDayType: 이번주 또는 다음 주 xx요일로 사전입력된 정보를 등록할 수 있는 타입
 - 템플릿에 대한 정보는 서버에서 관리
 - 템플릿 CRD 제공

 


UI 설계

 


기능 설계

인증

 - client는 p-bear AccessToken 만 관리
 - 구글연동을 통해 서버에서 사용자 연동 계정 및 refresh_token 관리
 - client는 유효한 p-bear AccessToken으로 요청을 하며, google Token이 필요한 경우 서버에서 캐싱 또는 refresh를 통해 Google로 ByPass

기능 정리

API Desc
OAuth2.0 로그인 로그인 페이지 제공, 로그인 후 지정된 redirectUri로 redirect하여, client 해당 URI를 통해 token 획득
Google 연동 Google OAuth API를 통해 authorization_code 방식으로 code를 획득
서버로 code를 전달하여 연동 작업 수행
Google 연동 확인 p-bear AccessToken을 통해 Google 연동 정보를 조회
Calendar 리스트 조회 내 연동된 계정의 Google Calendar 리스트 조회 기능

서버 필수 제공 정보
 - id (pk)
 - desc
Event 리스트 조회 지정된 Calendar의 등록된 이벤트 리스트 조회 기능

요청 사항
 - calendarId
 - 갯수
 - 이벤트 시작 시간

서버 필수 제공 정보
 - id (pk)
 - title
 - desc
 - 시작 시간
 - 종료 시간
 - 등록 시간
템플릿 등록 지정된 형식의 템플릿 등록 기능
이름과 type으로 등록하며, 기타 정보 jsonObject로 제공 및 서버에서 validation 후 저장

요청 사항
 - 이름
 - type
 - 일정 명, 일정 상세
 - properties (json)

응답으로 id 값을 준다
템플릿 리스트 조회 등록된 템플릿 리스트로 조회하는 기능

템플릿 관련 정보 전체 조회
리스트에 객체로 모든 정보가 담겨서 나온다.
템플릿 삭제 리스트 화면에서 object를 길게 클릭 또는 삭제 버튼 활성화해서 서버로 삭제 요청을 보낸다.
서버에서 id를 통해 템플릿 데이터를 삭제한다.

 


ETC

이번 프로젝트의 목적은 Flutter에 익숙해는 것이 첫 번째이다.
Flutter 주요 구현 사항
 - UI
 - Http 통신
 - 토큰 관리
반응형

'[완] 개인서버 개발 > EasyCalendar(완)' 카테고리의 다른 글

#2 EasyCalendar Flutter 구현  (0) 2023.06.20