LoginSignup
315
276

More than 3 years have passed since last update.

WPF on .NetCore で工数管理アプリを作りました

Last updated at Posted at 2020-07-12

capture_main.png

2021/01/31追記
.Net5へ移行しました(関連記事

作成した経緯

ぼくの職場では、月毎に作業工数を記録して提出する必要があります。
一応入力ツールがあるにはあるのですが、

  • きっちり30分毎にしか入力できない(10:00~10:30まではなにしてた、とか)し、入力自体も手数が多くて手間
  • UIが古きよき感じ...
  • エクスポート形式が提出フォーマットと異なるので手作業が手間

などなど、いろいろ不満がありました。
最新の技術/ライブラリを使ってなにかプロダクトを作ってみたかったのと、新型コロナの影響でおうち時間が増えたのもあり、この不満を解消すべく「ぼくのかんがえた最強」の工数管理アプリを開発してみました。

プロダクト

ソースはこちら → GitHub
実際に触ってみたい方はこちらからどうぞ → ダウンロード
※Win10 64bit版のみ用意してます。それ以外の環境の場合は各自でビルドしてください。

#いくつかの入力項目はDBでのマスタ管理となっています。マスタメンテナンス用のUIは用意できていないため、DBを直接編集するかデモ用のファイルを利用ください。→デモ用DBファイル

特徴

  1. 最小の手数でタスクの入力・切り替えが可能
    ボタン1発で記載・切り替えができる(詳細は使い方で
    #仕事中って自分のペースで開発できるわけではなく、急に保守作業が入ったりしますよね

  2. MaterialDesignを採用
    オシャレなほうがモチベーションあがりますよね

  3. 提出用のフォーマットで出力可能
    工数を標準化して集計したうえで必要なフォーマットに特化してCSV化。
    CSVをエクセルにコピペドンで工数表を提出可能に!

使い方

基本的な考え方(流れ)は

  1. タスクを登録する
  2. 作業開始時に1で登録したタスクを開始
  3. 作業終了時にタスクを終了
  4. 1~3を繰り返す
  5. タスクの作業がすべて終わればタスク完了
  6. 1ヶ月おきに集計結果をCSV出力

となります。

タスクの新規入力

画面右下の追加ボタンから、タスクの分類、タイトル名などなど記載して登録できます。
登録したタスクは繰り返し利用できます。
add_newtask.gif

ショートカットからタスク追加

あらかじめよく行う作業のテンプレートを登録しておけばボタン1発でタスクの登録+開始が可能です。
quick_newtask.gif

カレンダーからタスク追加(インポート)

Googleカレンダーに打ち合わせなどの予定が登録されている場合は自動で取込むことができます。
予定時刻になれば自動でタスクが開始・終了されます。
#別途設定ファイルの用意が必要になります。需要がありそうだったら解説記事書くかもです。

タスクの完了

すべての作業が終わればチェックボックスをクリックしてタスクを「完了」します。
#この時点でタスクのカードは非表示となります
complete.gif

工数の集計、CSV出力

出力対象年月を選択してボタン1発でCSV出力可能。
export_csv.gif

開発環境

  • Win10 64bit
  • VisualStudio 2019 Community
  • 言語:C#
  • .Net Core 3.0
  • プレゼンテーション層:WPF
  • 永続化層:SQLite

開発期間

5月のGWくらいから開発に着手しました。
その後は週末を中心に作業しており、およそ2ヶ月で一通り動くようになりました。

まとめ

このアプリを使うようになって、速く&楽に工数管理ができるようになりました。

仕事だといろんな制約があって開発手法やライブラリを自由に選ぶことが難しいケースが多いですが、今回好きなようにできたのでとても楽しい開発ライフを送れました。後日、利用したライブラリとかDDDの話とかも記事にしたいと思ってます。
→技術解説編を記事にしました(こちら

#WEBアプリだとオシャレなアプリの事例がたくさんあるんですが、ネイティブではなかなか少ない印象の今日このごろ。デスクトップアプリでもこんなアプリができるんだぞ~という事例の1つになればいいなぁ

編集履歴
315
276
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
315
276