はじめに
筆者はSpringBootを使用して学習時間記録アプリを作成したいと考えました…しかし、学ぶだけでは勿体ない。教材などには頼らずに調べながら独力で実装していく形となるため、詰まったポイントなども残しておきたい。そしてそれを、自分も活用できるし、ネットであれば共有もできる。
という事で、ブログへ公開していこうと考えました。少しづつ機能を追加していき、改修を繰り返すことで規模を大きくしていこうと考えております。
筆者は現役でエンジニアで働いているため、学習のためのアウトプットとなります。分かりづらい表現になるなどはご了承願います。読まれる方は是非楽しんでいって下さいね!
学習時間記録アプリ…ProgTrack
ProgTrack – プログラミングの学習を管理するアプリケーションです。色々な機能を付けていきたいですが…その中でも絶対外せないのは、学習時間の打刻が出来る事かなと思いました。まずは、この点から実装していこうと考えております。
それでは機能要件を軽く練っていきます。実装する要件が上記なので、本当に簡単に…
要件定義
目的
- 本アプリは学習時間を可視化する事でモチベーションを管理する事が出来る。
- モチベーションを管理する事で、学習の継続率を向上させる。
- 学習に向かうきっかけを提供する。
機能要件
- ユーザーは学習時間入力画面で学習時間を打刻する。開始の場合は「学習を開始する」をクリックし終了の場合は「学習を終了する」をクリックする
- ユーザーは学習一覧画面で、自分の学習した時間を日付単位で確認する事が出来る。
- 学習時間一覧では、今月、先月の総学習時間を確認する事が出来る。
- 学習時間一覧では、表示年月を選択し画面を切り替える事が出来る。
- 学習時間一覧では打刻した学習時間を詳細ページにて編集する事が出来る。
スキーマ
データベースの名称 | prog_track_db |
テーブル名 | study_times |
カラム名 | 属性 | 主キー | 外部キー | 制約 | デフォルト値 |
---|---|---|---|---|---|
study_times_id | long | 〇 | NOT NULL | ||
start_time | LocalDateTime | NOT NULL | |||
end_time | LocalDateTime | NOT NULL | |||
created_at | DATETIME | NOT NULL | CURRENT_TIMESTAMP | ||
updated_at | DATETIME | NOT NULL | CURRENT_TIMESTAMP, ON UPDATE CURRENT_TIMESTAMP |
DBを作成とテーブルの作成をする
DDLを流す。
SQL
-- データベースを作成
CREATE DATABASE prog_track_db;
SQL
-- テーブルを作成
CREATE TABLE study_times (
study_times_id BIGINT AUTO_INCREMENT PRIMARY KEY,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
MySQLログ
mysql> CREATE DATABASE prog_track_db;
Query OK, 1 row affected (0.16 sec)
mysql> USE prog_track_db;
Database changed
mysql> CREATE TABLE study_times (
-> study_times_id BIGINT AUTO_INCREMENT PRIMARY KEY,
-> start_time DATETIME NOT NULL,
-> end_time DATETIME NOT NULL,
-> created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
-> updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.71 sec)
MySQL Work Benchで確認を行う。
スキーマの作成が完了。
プロジェクトを立ち上げる
作成したワークスペースを参照して起動を行う。
- 新規Springスタータ・プロジェクトの作成
- 名前、タイプ、Javaバーション、パッケージを編集する
- 次へ
- 依存関係を選択する
- Spring Boot Dev Tools
- Lombok
- Spring Data JPA
- MySQL Driver
- Thymeleaf
- Validation
- Spring Web
完了を選択する
これでプロジェクトの立ち上げまで完了です。次回からDBとSpringを連携させていく所から進めていきます。
コメント