# プロジェクト概要
* 自社工場勤務者向け スキル評価・スキル可視化アプリの開発
* Python, Django, JavaScriptで開発
* 開発チームは3人
# 担当業務
* サーバサイドの開発
* 単体・結合テスト
* ユニットテストを作成し、単体テストを実行した。
* コードレビューの実施
* エラーの修正
* 発見した不具合を修正した。
# サーバサイドの開発
【どのような機能の開発・実装か】
* ユーザ管理の実装
* ユーザが登録した情報を、Python Djangoを用いてOracle DB上に登録
* ID、パスワード、権限、所属部署などの管理
* ログイン・ログアウトの実装
* 開発当初はユーザIDとパスワードでアプリにログインできる仕様
* 途中からユーザ情報サービスから提供されるLDAP APIと連携し、こちらでもログインできるよう改修
* 評価入力画面を作成
* 作業者本人による自己評価機能の開発
* 作業長などの上位権限による作業者への他者評価の実装
* 前回に行われた評価の表示を記憶、評価欄の横に自己評価・評価者評価の表示
* 作業者本人による実績入力画面の実装
* 作業者のタスクと開始予定日、完了予定日、完了日、コメントが入力できる仕様
* 入力されたデータは上記DBに格納
* plotlyというPythonライブラリを用いて、登録したタスクの期日、期間などをグラフ表示させる機能を実装
* 個人ダッシュボード画面を作成
* 登録した評価入力などを基に進捗状況や達成率、習得目標などを計算し、グラフで確認できる機能を実装
* 更新一覧画面の実装
* 上位権限のみ対象の機能。各作業者のスキルの比較、複数人の人材情報を一度に可視化できる。
* 作業者の登録日や所属によって表示範囲を絞り込む機能を実装
* 表示させている表形式のデータをCSVで出力、ダウンロードできる機能を追加
【課題・問題点】
* DB作成者が管理しやすいデータ形式と、こちらが機能を実装しやすいデータ形式が食い違うことが多かった。
→そのたびに対話の機会を設けた。
→こちらの考えを話し、また相手の考えを聞くことで、お互いの落としどころを見つけて、より明快なデータ管理とそれに伴う機能実装を行うことができた。
* 前任者からの引継ぎが不十分だったため、当初予定が滞ってしまった。
→資料を確認し、要件定義を見直した。
→この経験により、基本設計書や要件定義を読み込み、実装方法を自分で考える能力が身についた。
* 実装する機能が多かった。
→メンバー全員が閲覧できるWBSを作成し、記入した。
→メンバーの進み具合が可視化され、遅れがある際にはお互いにフォローできた。
【打ち手・使用した技術】
* Python、Django。クエリメソッドを使ったデータベース操作。
* 自分は主にサーバサイドの実装を担当していたが、グラフ表示部分などで一部フロントエンドにも着手していた。その際にJavaScriptを使用した。