本記事は、めんどい太郎の Advent Calendar 2025 4日目の記事です。
はじめに
文化祭で情報系らしいことをしたい。ということで、システム開発をしました。
具体的には会計処理を行うシステムです。POSシステムみたいな感じ。
開発の背景
情報系らしいことをしたいというのもあったのですが、そもそも文化祭が抱えていたとある課題を解決するべくシステムを開発しました。
その課題というのは、会計処理が大変だということです。
売り上げを得るたびに紙に記載し、最終的に合計いくらかというのを計算しないといけません。結構面倒。
そこで、POSシステムを作ればそこらへんを楽にできるのでは?ということで作りました。
(実はシステムの完成度がいまいちで結局会計処理は大変だった)
システムの概要
システムの概要は以下の通りです。
ざっくりした図
まぁよくあるWebアプリケーションです。
機能
POSシステムに必要そうな機能で、今回の文化祭運営に必要な機能を実装したという感じです。
- 商品管理(登録・編集)
- 購入処理
- 売上管理(合計計算、詳細表示)
- ユーザ認証
大体こんな感じ。
操作フロー
レジ担当者の操作フロー
登録されている商品を選択 -> 購入個数を入力 -> 送信
まぁよくあるレジみたいな感じですね。
開発
やりかた
開発はWebアプリケーションとして行いました。
バックエンドは自分で書き、フロントエンドはAIにぶん投げしてみました。
バックエンドはNode.jsのExpress、DBはMySQL、フロントエンドはNext.jsです。
バックエンドは初めて使うライブラリだったので少し心配でしたが、結構書きやすかったので普通に実装できました。
フロントエンドはマジで全然わからないのでAIにぶん投げしてみたら、ちょっと微妙なものが出来上がりました。
テスト
認証系のテストを入念に行いました。
逆に認証系に力を入れすぎて、開発期間が短くなりほかの箇所があまりテストできていません。
スケジュールは余裕をもって計画しないとですね...
後ほど述べますが、しっかりテストしていたと思っていただけでテストできてないところなどが割とありました。
あと、主にバックエンドのテストばかりしておりフロントエンドがボロボロでした。
デプロイ
Dockerを用いたのでデプロイは割と楽です。
また、テスト環境と本番環境の入れ替えをcronで自動化をしていました。
こちらも後ほど述べますが、ヒューマンエラーでうまくいきませんでした。
トラブル
当日、テスト環境から本番環境への以降がうまくいきませんでした。
cronで自動化していたので行けるだろうと思っていたのですが、何やら私が本番環境と思ってデプロイしておいたものがテスト環境のものと一緒だったようで...
結局手動で本番環境にデプロイし直しました。文化祭開始まで残り数分だったので結構焦りました。
ただ、トラブルはこれで終わらず...
リフレッシュトークンが働いてくれず、頻繁にログアウトされてしまったりなど...
改めて私はまともなプログラムが組めないのかと悩むことになりました。
感想
文化祭で情報系らしいことができてよかったです。
ただ、AIにぶん投げはよくないですね。ちゃんとAIが書いたコードを自分も理解しておく必要があるなと痛感しました。
AIにぶん投げしたおかげでフロントエンドの見た目はいい感じです。
(ただしダークモードに対応していないという欠点を抱えています...)
また、テストもちゃんとしておくべきですね。
リフレッシュトークンなんかも期限を短く設定すればテストできたはずなのになぜかテストしていませんでした。普通に忘れてた。
今後はもっとちゃんとテストしたいと思います。来年があれば来年またリベンジしたい!
(ほんとはスクリーンショット載せたかったのですが、載せられるようなものじゃなかったのでやめておきました。来年は載せたい。)
おわりに
来年は改良してもっとましなシステム作りたいと思います。
あと、今年見えた課題を解決するための機能追加もしたいですね。
ではでは。