一人でPythonサービスを作れるのか？

もう少しでメリークリスマス🎄
普段全くエンジニアリングではなく、ドキュメントを書いている人が
Copilot様の力を使って、Pythonサービスを作れるのか？にチャレンジした話です。

今回弊社のアドベントカレンダーとして、ダイジェストでお送りします。

スペック：本当はプロジェクトマネジメント側の人、へっぽこスクラムマスター。
　　　　　無駄にITリテラシーはあるので、最悪ググればできるはず！

## 装備
VisualStudioCode　＋　Copilot

アプリケーション:Flask
言語：Python
サーバー：Windows2022


## 管理方法

普通に作っても面白くないので、15分スプリントを使用し、JIRAのカンバンボードで管理していきたいと思います。（マネジメント感）

15分スプリントを2年間やったけど質問ある? #15min_sprint
https://speakerdeck.com/kyonmm/15fen-supurintowo2nian-jian-yatutakedozhi-wen-aru-number-15min-sprint

## イテレーションの流れ
### 全体の準備
🎄1スプリント
　JIRAカンバンボード作成
　![スクリーンショット 2024-11-16 183342.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/fc6fe9c5-faca-22d2-c9f6-31331bb257de.png)

🎄2スプリント
　ユーザーストーリーボード作成
　![スクリーンショット 2024-11-16 190030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/eaca00d6-ef7c-de1c-0aec-dd58788112fb.png)

🎄3スプリント
　試しにログイン画面作成。
　![スクリーンショット 2024-11-16 192232.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/985be762-1219-47af-20e6-6b587318bab1.png)

🎄4スプリント
 作り方の流れをCopilotに聞いてみる。
 ![スクリーンショット 2024-11-17 085543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/c7ea7cbd-307d-ed43-94bc-1a1ee3adc2aa.png)

### 開発環境構築
🎄5スプリント
　1.プロジェクトの準備　
![スクリーンショット 2024-11-19 005721.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/5530cd50-ee9c-21d6-6c5f-cf8f2b0f1768.png)

🎄6スプリント
　2.バックエンドの構築
 ![スクリーンショット 2024-11-20 234308.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/f9efe448-a4c7-f514-c7f9-024f06f5e988.png)

🎄7-8スプリント
　3.フロントエンドの構築
 ![スクリーンショット 2024-11-23 204055.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/b69601cf-2e3b-9d47-4d9f-3fdbb1bf4ae0.png)

　アプリケーションの実行：成功
![スクリーンショット 2024-11-23 204452.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/ccd47dd8-b5bc-c538-8e32-3f4dc226f953.png)

### 開発
🎄9-12スプリント
　4.ユーザ認証の実装
 ![スクリーンショット 2024-11-30 105647.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/b389cd4f-6a24-665d-3854-fb99f92fe9b8.png)

エラーにもなりましたが…、
![スクリーンショット 2024-11-30 105924.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/58cc3eb9-05a9-c046-3a69-fa407e3d324a.png)

Flaskの設定だったよう…です。
![スクリーンショット 2024-11-30 161012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/cac8289c-4fa6-8b4a-9185-78786f34151c.png)

🎄13スプリント
　（追加）ログ機能の実装
![スクリーンショット 2024-12-02 122428.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/49aa85d3-9fb0-93b6-638f-caca5f2c21db.png)

ログ出力OK！
![スクリーンショット 2024-12-02 122841.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/4db4cf1b-9b44-84d5-a61c-4728a05c145c.png)

🎄14-17スプリント
　5.タスク管理機能の実装
 タスク登録画面
 ![スクリーンショット 2024-12-02 230854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/c0d5cf79-cd05-de28-2b86-a6a814ab0f39.png)
 
タスク登録後画面
 ![スクリーンショット 2024-12-02 234219.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/8043df20-6ea0-9887-a999-167b34be4ead.png)

タスク削除確認画面
![スクリーンショット 2024-12-06 222729.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/92864648-3a2a-e235-35a7-b3e93267f94d.png)

🎄19-21スプリント
　6.目標管理機能の実装
![スクリーンショット 2024-12-08 000107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/24ec1fa6-6a26-d8a4-8e55-a50781addcc5.png)
ボタンや項目の並びが気に入らない気がしますが、実装自体は完了。
![スクリーンショット 2024-12-08 000520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/3ced3225-0bd4-2146-db8b-17520e6d1748.png)

### デプロイ
🎄22-33スプリント
　8.デプロイ

サーバを調達
 ![スクリーンショット 2024-12-10 122531.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/65267fe9-0281-62c0-8657-f6116c95256a.png)

Copilotにデプロイの手順を確認 
![スクリーンショット 2024-12-11 184238.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/3128800c-4d8b-619e-afeb-9229b8b9829a.png)

Pythonインストール
![スクリーンショット 2024-12-11 191142.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/fb5b97b4-1614-c70b-c187-a496866b5702.png)

開発資材コピーのためにOpenSSHサーバインストール
![スクリーンショット 2024-12-11 195543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/813c4fdf-b6fb-f3ed-91b9-1b0602224962.png)

Flask一式インストール
![スクリーンショット 2024-12-11 215944.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/83e040e6-8290-ce67-b31f-928af39b0a8b.png)

nssmインストール
![スクリーンショット 2024-12-11 223617.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/67af5904-b5ae-094a-d9b6-87b3fd51e42c.png)

サーバの穴あけ
![スクリーンショット 2024-12-11 225416.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/23d793cc-0bd8-bdea-cd91-7baf9c684632.png)

nssmの設定
![スクリーンショット 2024-12-11 230422.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/c3dd6214-a416-a1e9-0e1e-2689e56bef7c.png)

ドメインも設定したら、デプロイ完了！
![スクリーンショット 2024-12-11 235918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936044/144f43f6-56cf-9605-69f9-bf7910b1f971.png)

## リリースしたWEBサービス
http://taskandgoal.zapto.org/

## まとめ
「Copilot様の力を使って、初心者が一人でPythonサービスを作れるのか」については、
結論から言えば作れます。
が、基本的なWEBサービスの仕組みをわかっていないと辛い、です。
一部エラーで進まなかった箇所も、基本のトラブルシューティングの構えは必要です。

アプリケーションの実質の中身もそうですが、
運用部分についても、プロ仕様かについては、全然作り込めていないので
折を見て更新していきます。

作成にかかった時間は、33スプリントなので、8時間超でした。