Apprenticeにおいてチーム開発を行いました。
テーマ『自分たちの役に立つものを開発せよ』です。
チーム開発の要件
-
ベースとなる技術は HTML/CSS/JavaScript/MySQL/Ruby or PHP を使用
-
Rails, Laravel, React などのフレームワークは使わない。
-
ローカル(手元のPC上)で動くようにする
-
最終日に各チーム、制作物をプレゼン。プレゼン時間は5分。
-
プレゼンは Zoom の画面共有で、スライドとデモを使用
-
デモはローカル上で制作物を実際に動かして見せること。
※基本はデモで動作するところを見せる -
プレゼン後、メンター及び受講生全員で投票を行う
開発期間は約2週間
私たちのチームはスケジュールアプリを作成することにしました。
アプリの作成背景
「なぜこのアプリを作ろうと思ったのか、どんな課題を解決したかったのか」について
-
スケジュール調整の困難さ:
- チームメンバーがバラバラのスケジュールを持っており、全員の都合が合う時間を見つけるのが難しい状況。
- 例えば、あるメンバーは平日の夜しか空いていない、別のメンバーは週によって予定が変わるなど。
-
既存ツールの限界:
- Googleカレンダーや他のスケジュール調整ツールは、ユーザー登録が必要であったり、操作が複雑だったりする。
- これらのツールでは、特に小規模チームや非定型的なスケジュールに対応するのが難しい。
-
時間の制約:
- チームメンバーが仕事や自主学習に忙しく、スケジュール調整に多くの時間を割くことができない。
- 効率的かつ迅速にスケジュールを調整したいという強いニーズがある。
-
シンプルで効果的な解決策の必要性:
- ユーザーが短時間で直感的に利用できる、シンプルで効率的なスケジュール調整ツールの必要性が明らかになった。
-
チームワーク向上:
- より良いチームワークを目指すために、スムーズなスケジュール調整が不可欠。
- ミーティングの計画を簡素化し、チームの生産性を高めることを目指す。
上記のように、日中仕事をしている方、毎週ランダムな休みや就業時間の方がいてチームMTGの日程を決めることがとても難しかったり、スケジュール調整に時間をとられるわけにもいかず、とにかくパッ!と日程を決めたかったです。
スケジュールアプリの要件定義
-
個別色分け表示機能:
- 各ユーザーに固有の色を割り当て、そのユーザーの空いている時間をその色で表示。
- これにより、誰がいつ空いているかを一目で確認できる。(ハイライト表示)
-
空いている時間の入力と表示機能:
- ユーザーが自分の空いている時間をクリックやドラッグで簡単に入力できる機能。
-
時間の重複確認機能:
- すべてのメンバーの空いている時間がそれぞれの色で表示されている
- 共通の空き時間が色でわかる(一色で表示される)
-
柔軟なスケジュール管理:
- 予期せぬスケジュールの変更に対応できるよう、簡単に日程を更新できるシステム。
-
直感的で使いやすいインターフェース:
- 初めてのユーザーでも直感的に操作できるクリアなデザイン。
アプリのコンセプト
早い!軽い!簡単!
業務要件フロー
実際の画面デモです!
ユーザーがニックネームを追加し、自分のスケジュールを保存する画面
4人のユーザーがスケジュールを保存し、一致した日時がある場合の画面
ハイライトされている部分が、4人全員があいているスケジュール日時です!
今回使用した技術
-
フロントエンド開発:
HTML/CSS/JavaScript -
バックエンド開発:
Ruby/Webrick(RubyのHTTPサーバライブラリ) -
データベース:
MySQL/mysql2(RubyのMySQLデータベース接続アダプタ) -
開発環境:
Docker(アプリケーションのコンテナ化) -
ソースコード管理:
Git/GitHub(ソースコードのバージョン管理と共有のためのプラットフォーム)