Flaskで簡単なWebサービスを作ってみる[第0回]

はじめに

PythonのWebアプリケーションフレームワークFlaskを使って、簡単なWebサービスを作ってみます。その過程を記事にしていきます。

なぜやるか

大きくは以下の3つ。

  1. 公開することで進捗の意識付け
  2. ブログとサービス開発を一体化
  3. 後日の振り返り

1. 公開することで進捗の意識付け

日々仕事で忙しく、個人開発に全く手が付けられずにおりました。
いつまでもその状態なのが嫌になってきたので、仕組みで改善していこうと思います。

個人的な技術メモをなぐり書きしているブログですが、とはいえ公開されているものなので、強制力が働くんではという期待を持ってやってみます。

2. ブログとサービス開発を一体化する

技術メモとしてブログを書いていると、時間が空いたときにサービス開発よりも記事を書くのに時間を使ってしまう、というのがあります。

この取り組みを始めたきっかけも、少し自分の時間が作れたときに「なにかブログ書こうかなーどんなネタがあったかなー」と探してしまった自分に気付いたことでした。

記事を書くことは自分のアウトプットとして残るので良いのですが、結果としてサービス開発に手が付けられていない状態が続いているので、改善したい。
サービス開発の過程をブログにすることで、サービス開発するとブログネタができる、サービス開発しないと書くことがない、という構造を作る意図があります。

3. 後日の振り返り

これはそのままです。
この取り組みを始めた時の意図や経緯を書き残しているこの記事そのものも、後から振り返ると気付きがありそうです。

作るサービス: 「消耗品買い物リスト」

というわけで何を作るか決めます。
作ってみるというテーマなので、短期間(2週間くらい)で開発できるものにします。

解決したい課題

個人的な最近の課題で、「我が家では買い物での買い忘れが多い」というものがあります。

具体的には、トイレットペーパー、洗剤、歯磨き粉などの消耗品が切れているのに、買い出しで買うのを忘れてしまいます。
私も妻も、別々に買い物に出掛けた時は「何か買う?」と聞くようにしていますが、それでも漏れます。

大したことはないのですが、再度買い物に行かねばならない面倒臭さで気分が落ち込むので、これを解決できそうなサービスを作ってみます。

解決策

「買い物や出先で、切れている/そろそろ切れるものリストが参照できる」が解決策になるかなと。
買い物中、買い忘れがないかリストを確認する、という使い方を想定します。

機能と大まかな段取りを決める

機能

機能としては以下が挙げられるかと。

  • 家の消耗品のステータス(まだ余裕/切れそう/切れた)が管理できる
    • 消耗品の品目を追加/変更/削除できる
    • 消耗品のステータスを更新できる
  • 買うべき消耗品リストを参照できる
    • 消耗品リストから特定のステータスの品目を列挙する
  • 上記をスマホからでも簡単に操作できる
    • ブラウザで動く
    • スマホ向けUI
    • 簡単にログインできる
      • OAuthログイン

作っていく中でまた出てくると思うので一旦はこれで。

段取り

以下のような段取りで進めます。

  • プロトタイプの検証
    • UIプロトタイプを作る
    • ユーザーテスト(対象:妻)
    • ユーザーテスト結果をもとにUIの改善
  • 開発
    • 開発環境構築
      • CI/CD含め
    • DBの選定
    • テーブル設計
    • バックエンド開発
      • ログイン
      • データ処理
    • フロントエンド開発
      • デザイン
  • テスト・リリース

開発期間2週間とすると、期間としては

  • プロトタイプ(3日)
  • 開発(8日)
  • テスト(3日)

ぐらいを目標にやっていきます。

終わりに

公開したからにはなんとか進められるよう頑張ります。