ClockWiseSystem / WEBエンジニア
運送会社の勤怠管理、請求書作成ソフト開発(自社サービス)
# 概要 - 運送会社の勤怠管理、請求書作成ソフト開発 ターゲットは個人事業主を抱える軽貨物業者装 # 担当 - 市場調査、要件定義、設計、開発、テスト、運用保守、エラートラブル対応を行ないました。 - 業務委託の方と2人で開発を行い、業務委託の方がリーダーとなり開発を行なっていた。 # 使用技術 - Ruby on Rails バックエンド全般に使用しました。初めての言語だったのですがLaravelを就職前に勉強していたためすぐに習得することができました。 - Turbo フロントエンドの非同期通信全般に使っています。2人と開発人数が少ないためRails7に標準搭載されているTurboを使うことになりました。 - Docker お互いPCの環境が異なるため採用しました。 - PostgresSQL マルチてナンシーに対応するためデータベースをMySQLから変更しました。 - Git GitHubを使用してコードの管理を行いました。 - LINEAPI 通知機能をラインで通知するために使用しています。 # 課題 ### 以下のような課題があり、こちらのプロジェクトに参加しました。 - 前に開発していたソフトではまだ不完全であるため、1からソフトを作り直すことになった。 - 国から補助金が降りたため、新しくソフトを開発することができた。 - ターゲット層である軽貨物業界はいまだに、紙、fax、エクセルを使用している企業が多いのと、市場を独占している軽貨物に特化した勤怠管理ソフトがなかったため開発することになった。 - ソフト開発は私と業務委託を受けた方の2人で開発を行わなければならなかった。 # 取り組み - まず軽貨物業界のことに関して知識があまりなかったので、実際に軽貨物の仕事を体験し、調査を行った。 - 調査を行った後に要件定義を行い、必要な機能を洗い出した。 - 要件定義を行った後設計業務を行い、私はユースケース図とシーケンス図の作成を行なった。 - 外部設計も行い、Figmaで画面設計を行い、お客様になる軽貨物業者の方に意見を聞き、必要な機能を再度洗い出した。 - 開発を行う前にミニアプリを作成し、設計通りにシステムが動くか検証した。 - Dockerの環境構築を行った。 - 人数が少なかったため、少人数でも管理がしやすいTurboを使いながら開発を行っている。 - 前回のプロジェクトで主に請求書の開発をしていたため、今回のプロジェクトでも請求書関連の開発を主に行った。 - 軽貨物業界の方々はメールをあまり使用しないため、通知をラインで自動送信する仕組みを開発した。 # 苦労した点 - ユーザーの階層構造が複雑であるため、オープンソースのコードを参考にどのような階層構造を行っているか調査をした。 - 前回のプロジェクトでテスト作業が大変だったため、自動でテストが行えるようにテストコードを作成してテストの効率化を図った。 - 開発は2人のため、ReactやVueを使った開発は行えなかった。代わりにコードが管理しやすいようにTurboを使って非同期通信は全てTurboを使って開発を行った。 - 用件定義をする際に、軽貨物業者はソフトに何を求めているか分からなかったため、複数者に問い合わせを行い、実際に軽貨物の運送体験をさせていただいた。 - データベース関係が複雑になるのを防ぐためにポリモーフィックを利用してデータベースの量を少なくした。 - 当初はMySQLを使用していたのだが、マルチテナンシーのプール型に対応するためにPostgresSQLにSQLを変更した。 - 業務委託で一緒にした方が7月までの業務の契約のため8月以降は1人で機能を開発する必要があった。