/lets-schedule

誰でも簡単に使える自動日程調整サービス

Primary LanguageGo

Let's schedule

背景

既存の日程調整ツールは以下のような課題を感じた

  • 全ての候補日時にリアクション(○/△/x)するのが面倒
  • 自動日程調整ツールはあるが、使用できるのはGmailやOutlookなどのメールアドレスユーザーに限られている
  • 予定のURLを参加者間で共有する場合、人為的ミスでミーティングの内容が漏洩する恐れがある

概要

このサービスは上記の問題を解決するために以下の機能を持つ

  • 全ての候補日時にリアクション(○/△/x)するのが面倒 → ミーティングの参加者が都合の良い時間帯を入力できるので、より直感的なユーザー体験を提供できる
  • 自動日程調整機能が特定のメールアドレスユーザーしか使えない → どのメールアドレスのユーザーも自動日程調整機能が使える
  • ミーティングの詳細が漏洩する可能性がある → 日程調整がサービス内で完結するのでその心配がいらない

仮定

  • ミーティングに招集できるのは本サービスに登録しているユーザーとする

TODO

計画

  • 要件定義
  • 使用決定
  • 技術選定

実装

フロントエンド

ミーティング主催者・参加者共通

  • ホーム画面実装
  • ログイン画面実装
  • ユーザー新規登録画面実装
  • ダッシュボード画面実装

ミーティング主催者

  • ミーティング新規作成画面実装
  • 主催ミーティングの一覧画面実装
  • 主催ミーティングの詳細画面実装
  • 日程決定済の主催ミーティングの一覧画面実装
  • 日程未決定の主催ミーティングの一覧画面実装

ミーティング参加者

  • 招待ミーティング一覧画面実装
  • 招待ミーティングの候補日時編集画面実装
  • 日程決定済の招待ミーティング一覧画面実装
  • 未返答の招待ミーティング一覧画面実装
  • 返答済みの招待ミーティング一覧画面実装

バックエンド

ユーザー

  • 認証API実装
  • ユーザー新規登録API実装
  • ユーザー情報取得API実装
  • ユーザー情報更新API実装
  • ユーザー情報削除API実装

ミーティング

  • ミーティング新規登録API実装
  • ミーティング情報取得API実装
  • ミーティング情報更新API実装
  • ミーティング情報削除API実装

参加者

参加者情報は以下の情報を指します

  • どのユーザーがどのミーティングに参加しているか

  • 主催者/参加者

  • 未返答/返答済み

  • 参加者情報(新規登録API実装

  • 参加者情報取得API実装

  • 参加者情報更新API実装

  • 参加者情報削除API実装

候補時間

  • 候補時間新規登録API実装
  • 候補時間取得API実装
  • 候補時間更新API実装
  • 候補時間削除API実装

デプロイ

  • ドメイン名取得
  • CI/CDパイプライン構築
  • ネットワーク設計
  • webサーバー構築
  • APIサーバー構築
  • DBサーバー構築

ローカル環境構築

DB起動

cd build
docker-compose up -d

Webサーバー起動

cd src/view
npm install
npm run dev

APIサーバー起動

cd src
go run server.go