Skip to content
/ NGCS Public

구글 캘린더 휴가 및 이벤트 일정 관리 SlackBot 프로젝트 [2023 엑소스피어 인턴]

Notifications You must be signed in to change notification settings

0-tae/NGCS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 

Repository files navigation

New Google Calendar Slackbot

자료 조사: 2023-12-26 ~ 2023-12-29
개발 기간: 2024-01-02 ~ 2024-01-16


📌 서비스 소개

🔹 개요

오늘의 일정 알림과 휴가 및 이벤트를 등록, 공유할 수 있는 Google Calendar SlackBot입니다.


🔥 Why New Google Calendar SlackBot?

공식 Google Calendar SlackBot는 심플하지만, 사내 일정 관리 요구사항을 만족하기에는 부족한 기능들을 보유하고 있습니다.

따라서 기존 서비스를 아래와 같이 개선하기 위해, 프로젝트를 진행했습니다.

  1. 휴가자 일정 등록시간 단위 연차 입력을 위한 UI 변경
  2. 오늘의 일정 브리핑 기능을 통해 휴가자 및 주요 일정 리마인드
  3. 내 일정을 다른 사람에게 공유하고, 다른 사람이 공유한 일정을 원클릭으로 캘린더에 저장
  4. 오늘의 일인지 강조하여 가시성 향상

제공 기능

슬랙에서 바로 일정 등록 & 조회 가능

  • 일정 등록: 슬랙에서 바로 버튼 클릭으로 일정 추가
  • 일정 조회: /gcal 없이도 자동으로 오늘의 일정 제공

휴가 등록과 자동 공유

  • 팀원이 휴가를 등록하면 자동으로 슬랙에 공유
  • 휴가 유형별(연차, 반차 등) 입력 폼이 최적화

손쉬운 일정 전파

  • 일정이 있으면 "내 일정 전파하기" 버튼으로 공유
  • 공유된 일정은 (오늘)표시가 추가되어 가시성 향상

자동화된 알림 시스템

  • 출근 시간에 맞추어 매일 오전 9시, 오늘 나의 일정, 휴가자 자동 알림

Google Calendar의 기본 슬랙 연동은 단순 조회 수준이라 팀 협업에는 부족합니다.
하지만 My Google Calendar SlackBot을 사용하면, 휴가 및 일정 등록, 조회, 전파까지 모두 슬랙에서 해결 가능!
👨‍💻 팀원들과 실시간 공유가 필요한 환경에서는 훨씬 더 편리하게 사용할 수 있습니다. 🚀


🖥️ 메인 화면

메인 화면에는 현재 사용 가능한 모든 기능이 배치되어 있으며,
오늘 휴가자 목록일정 목록이 자동 갱신됩니다.

✅ 메인 화면 UI

📷 이미지:
Untitled (2)


🏖️ 휴가 등록

멤버를 선택하여 자신의 캘린더에 휴가를 등록할 수 있습니다.
선택한 휴가 종류(연차, 반차 등)에 따라 입력란이 다르게 표시됩니다.

✅ 연차 등록 UI

📷 이미지:
Untitled (3)
Untitled (4)

✅ 반차, 시간 연차 등록 UI

📷 이미지:
Untitled (5)
Untitled (5-2)


📅 이벤트 등록

일정을 입력하면 구글 캘린더에 자동으로 등록됩니다.
"하루 종일" 체크 시 시간 입력란이 사라지고 날짜만 선택할 수 있습니다.

✅ 이벤트 입력 UI

📷 이미지:
Untitled (6)
Untitled (7)

✅ 하루 종일 선택 시

📷 이미지:
Untitled (8)


⏰ 오늘 일정 알림

슬랙봇이 매일 오전 9시에 오늘의 일정을 메시지로 알려줍니다.
유저별 알림 상세 설정 기능은 향후 추가될 예정입니다.

✅ 일정 알림 메시지

📷 이미지:
Untitled (9)


🔄 일정 새로고침

새로고침 버튼을 눌러 오늘의 일정을 갱신할 수 있습니다.
연차는 시간 없이, 반차나 시간 연차는 시간과 함께 표시됩니다.

✅ 일정 새로고침 UI

📷 이미지:
Untitled (10)


📢 이벤트 전파

"내 일정 전파하기" 기능을 통해 다른 멤버채널에 이벤트를 공유할 수 있습니다.
전파된 일정이 오늘 날짜라면 **"(오늘)"**이 추가로 명시됩니다.

✅ 일정 전파하기 UI

📷 이미지:
Untitled (11)

✅ 일정이 없을 경우

📷 이미지:
Untitled (12)

✅ 슬랙봇 메시지 전파

📷 이미지:
Untitled (13)


📌 시스템 구성

슬랙봇의 전체적인 동작 흐름과 아키텍처를 설명합니다. Flask.ver, Fastapi.ver 둘 다 존재합니다.

✅ 시스템 아키텍처

📷 이미지:
Untitled (16)


🛠️ 서비스 시퀀스 다이어그램

각 기능별 서비스 흐름을 설명합니다.

✅ 구글 로그인 연동

📷 이미지:
Untitled (17)

✅ 휴가 등록

📷 이미지:
Untitled (18)

✅ 이벤트 등록

📷 이미지:
Untitled (19)

✅ 새로고침

📷 이미지:
Untitled (20)

✅ 이벤트 전파

📷 이미지:
Untitled (21)

✅ 전파된 이벤트 캘린더 추가

📷 이미지:
Untitled (22)


🧐 고민했던 점

  • UI/UX 개선: 사용자 중심의 인터페이스 구성
  • 코드 재사용성 향상: JSON 데이터 활용 및 휴먼 에러 최소화

📌 추가할 기능 (TODO)

  • UI 및 안내 텍스트 수정 및 보완
  • 유저별 알림 상세 설정 (DB 연동)
  • 특정 날짜 일정 조회 기능
  • 캘린더 바로 가기 버튼 추가
  • /slash_command 지원 (ex: /create → 일정 생성 모달)

About

구글 캘린더 휴가 및 이벤트 일정 관리 SlackBot 프로젝트 [2023 엑소스피어 인턴]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages