TITLE
[研修アイデア]APIプログラミング

ドメイン駆動設計を意識して、APIプログラミングを体験します。

開発テーマ

あなたは日々の業務を記録するために、日報を作成しています。

日報の一部を以下に例示します。

日付:2026/1/11
報告者:石川啄木

はたらけど
はたらけど猶なほわが生活楽にならざり
ぢっと手を見る

日付:2026年1月12日
報告者:石川啄木

実務には役に立たざるうた人と
我を見る人に
金借りにけり

一度でも我に頭を下げさせし
人みな死ねと
いのりてしこと

1月13日
啄木

わが抱く思想はすべて
金なきに (あとで書く)

あなたは後から日付を指定して、過去の日報を振り返りたいと考えています。 しかし、日報をテキストファイルで管理しているため、この作業が煩わしいと感じています。

そこで、この日報の管理をシステム化したいと考えました。

システム化要件

システム化するにあたり、以下のような機能を備えたいと考えています。

  • 日報を書けること
    • 日報を下書きできること
    • 下書きを編集できること
    • 下書きを完了したら公開できること
    • 公開後は編集できないこと
  • 日報を読めること
    • 日報を一覧できること
    • 日報を単一日付で検索できること

また、開発にあたって以下の点に留意したいです。

  • 機能要件をもとに、ユースケース図・DFD・ERDを作成すること
  • ドメイン駆動設計を意識し、レイヤードアーキテクチャを使用して、各層分離すること
  • RESTful APIとすること

取組みにあたっての留意事項

  • プログラミングを目的とした演習なので、AIを使用した実装は禁止します
  • 完成した実装は都度講師からのコードレビューを受けてください
    • 講師にレビュー依頼する前にAIによるコードレビューを積極的に実施してください
  • 仕様の不明点については、講師を案件発注者に見立ててヒアリングを実施してください
    • 正解は一つではありません(ただし要件違反は不正解とみなされます)
    • 受講者ごとに完成形が異なってもよく、それもまた良い体験になります