スペック株式会社 / プログラマー
請求書管理Webアプリ
■ プロジェクト概要 帳票管理プロジェクトの開発 ■ 規模感、チーム構成 PL:1名 PG:1名 ■ 担当 フロントエンド兼バックエンド実装をメインに担当した。 - レスポンシブ対応 - 非同期・同期による二重バリデーション - マルチ認証機能の実装 - マスター機能の実装 - タイムスタンプ付与機能の実装 - OCRによる入力フォーム自動補完機能の実装 - テスト ■ 使用技術 - Laravel9 - php8.0.13 - HTML,CSS - Jquery - Ajax - MySql8.0 ■ 課題 以下の課題点があり、このプロジェクトに至った。 ー 電子帳簿保存法の改正により、帳票の管理をするシステムが必要になった。 ■ 取り組み ー Laravelの機能を使用し、マルチ認証を実装した。ユーザー認証時のユーザー取得方法は、URLパラメーター、id、passwordで取得するプログラムを作成した。 ー Laravelの機能であるJobとQueueを使用し、メール送信を非同期処理で行うプログラムを作成した。その結果今までメール送信に3 ~ 5秒ほどかかっていた時間を削減できた。 ー 夜間に自動で動作するバッチ処理を作成した。具体的には、公開日時が当時の帳票が存在していた場合、受領側に公開お知らせメールを送信する機能を作成した。 ■ 工夫した点 ー 今回作成したユーザー認証は、認証時にまずそのユーザーが紐づく会社情報を取得する必要があった。その為、URLパラメータに会社情報を組み込む方法を提案した。具体的には、会社情報の登録時にid+登録日時をハッシュ化した文字列をURLパラメータに組み込み、その情報からデータを取得する方法を提案した。 その結果、承諾をいただき問題無く機能を実装できた。 ー 開発効率を上げる為にメール送信ロジックを共通化させた。具体的には、Laravelの機能であるコンテナに共通ロジックを登録し、メール送信に必要な値をセットしてパラメータとして渡すことでメール送信を容易に行える仕組みにした。その結果以前に比べて2割ほど開発時間を減らすことができ、開発効率アップを実現した。