株式会社i-nos / エンジニア
一般社団法人向け会員管理システム 追加機能開発
課題 ー 以下のような課題点があり、このプロジェクトに至った。 会員数約400万人、職員約100名強が在籍する一般社団法人が存在する。 某団体は、会員情報の管理、出版した本の販売などの事務作業を手作業で行っていた。 職員の業務効率改善のため、業務をシステム化したいとのご要望があった。 プロジェクトの第4フェーズからプログラマーとして参加。 第4フェーズでは主に書籍購入のためのECサイト機能、会費支払機能を追加。 会員向けの機能では、ECサイト、会費支払機能を追加。 職員向けの機能では、注文管理機能、支払状況確認機能を追加。 現在はプロジェクトは終了している。 取り組み プロジェクトの中では主に以下の開発業務に取り組んだ。 ①定期購読決済バッチ 定期購読決済バッチの詳細設計、開発、テストを担当 【課題】 毎月会員に向けて販売される定期刊行物が存在する。 定期刊行物の受注、支払管理、発送管理をシステムで自動で行いたいとのご要望があったため、定期購読処理に関連するバッチを実装した。 【取り組み】 定期購読決済バッチ機能では、C#、SQLを用いてDBから決済対象データを抽出し、受注データを作成、APIを用いて決済を外部システムに要求する開発を行った。 ②画面のレイアウト修正、新規検索画面の作成 詳細設計、開発、テストを担当 【課題】 画面レイアウトを修正したいとのご要望があった。 システムからバッチの実行結果を確認したいとのご要望があった。 【取り組み】 レイアウト修正では、React、JavaScriptを用いてレイアウトを修正した。 管理者がシステムからバッチの実行結果を確認できるようにするために、新規検索画面を作成した。 ブラウザから入力された検索条件をサーバー側に飛ばし、C#、SQLにてデータを取得、取得結果をブラウザに返し、React、JavaScriptを用いて表示した。 ③会費領収書作成バッチ機能 詳細設計、開発、テストを担当 【課題】 従来は紙で発行していた会費領収書をPDFで会員管理システムから出力、確認できる機能がほしいとのご要望があった。 【取り組み】 ご要望に対応するため、領収書作成バッチ機能を実装した。 従来の領収書のレイアウトに合わせてhtml、cssで領収書PDFを設計、作成した。 C#、SQLを用いて領収書発行対象データをDBから取得し、作成したPDFをAzureのCloudにアップロードする一連の機能の詳細設計、開発、テストを担当した。 会員管理システムからAzure上の領収書をダウンロードする機能を開発した。 ④結合テスト 結合テストを担当 【課題】 リリース前に結合テストを実施する必要があった。 【取り組み】 上司が作成したテスト仕様書をもとに結合テスト業務を担当した。 ⑤リリース後の運用、保守業務 不具合の修正、追加のご要望に対する詳細設計、開発、テストを担当 【課題】 システム稼働後、ユーザー様からシステムの不具合や追加のご要望が寄せられる。 【取り組み】 不具合の原因はログを確認して特定、コードを修正した。 追加のご要望にそって、詳細設計、開発、テストを行い、追加機能を実装した。 プロジェクト内では、開発からテストまで一週間以内で完了する小規模な機能開発を担当している。 工夫した点 上司との認識の不一致による手戻りをなくすために、開発機能について疑問が生じたときは必ず確認するように心がけた。 より良い改修方法や、ユーザビリティを意識したさい、追加すべきと考えられる機能を発案し、採用された。 ユーザー様からログイン画面にて、エラーが生じるとご連絡があった。 原因は、ログインIDは数字のみで構成されるにも関わらず、文字列が入力可能となっていたことだった。 ログイン履歴をDBに保存する処理で、ログイン履歴を記録するテーブルのログインIDカラムはint型であり、varchar型を登録しようとしたときにエラーが生じた。 上司からはテーブルのカラムの型をstring型に変更する指示を受けたが、DBに入力間違いのIDを記録する必要はなく、DBへの登録処理の前に、コードで入力された値をチェックし、数字に変換できない文字列の場合は、ユーザーに数字で入力するようにメッセージを出力する方が既存のシステムへの影響が少ないと考えたため、上司に提案した。 提案した結果、採用された。 提案した方法で、すでに稼働しているシステムに大きな変更を加えることなく、問題を解決することができた。 後の改修が容易になるように、開発するときはコードを共通化を意識した。 自分の担当外の他のエラーを発見した場合は、他プログラマーとの競合を避けるため、予想外の影響が生じることを防ぐため、上司に修正の可否を確認してから修正をしている。