ketyiaの作ってみた

このサイトでは作ってみたことを記事にまとめていきます!

Java Spring bootで簡単なCRMアプリを作成してみました!

こんにちは!keitaです。

お盆の連休中にJava Spring bootを書籍読みながら学習したりして、その集大成として
簡単なCRMを作成してみました。
本記事ではその紹介をしていこうと思います。

コード量は莫大なため、記載しません。。
ご了承を~

それではまとめていきます。

まずはSpring Bootについてをまとめます!

Spring Bootについて

Spring bootとはJavaフレームワークです。
広範囲のフレームワークSpring Frameworkから開発に必要な機能の恩恵を受け、自動設定や少ないコードで実行可能なアプリケーションを開発することができます!

特徴としてDIという「依存性の注入」というクラス間の依存関係を実行時に外部から呼び出す手法を採用されています。

どの言語のフレームワークの構成として、MVCが主流だと思います。
Spring では「@」でDIコンテナとして認識されます。

Model(モデル)

アプリケーションの動的なデータ構造がModelの役割をしています。
POJOといわれるごく普通のJavaオブジェクトや「@Entity」等が該当します。
※データベースを使用する際には「Repository」のクラス作成をする必要があります。

View(ビュー)

thymeleafというテンプレートエンジンをしようしたHTMLのテンプレートファイルが画面のUIにあたるViewの役割をしています。

Controller(コントローラ)

画面遷移の制御や処理の実行を管理している「@service」を読みだしたりするクラスがControllerの役割をしています。
「@Controller」でコントローラのクラスに付与されます。

上記以外にもいろいろな@があるので調べてみると楽しいかもです。
次にCRMって何ぞやについて簡単にまとめます!

CRMとは?

顧客関係管理を略称化されたものです。
顧客と良好な関係を築くためのマネージメント手法です。
顧客情報や顧客のアクション情報を貯蓄と分析をし、マーケティングを効率的に行えるというものです。

今回作成するものは分析したり、マーケティングしたりという機能は想定せず、
情報を貯蓄(登録、更新、削除)することに焦点を当てていきます。

では作成についてまとめていきます!

作成するものについて

下記を管理できるようにしてあります。
・従業員データ
・取引企業
・取引先相手
・案件

下記書籍で作成したサンプルを基盤に作成していきました。
「Spring Boot 2 入門: 基礎から実演まで」
※この書籍から、UIの基盤、セキュリティ(ログイン/ログアウト)、従業員一覧を参考にしました!

作成したもの

下記がログイン画面です。
この新規登録リンク押下後から、ユーザ登録を行えます。
作成したユーザのユーザ名とパスワードを入力してログインすることができます。
※ここはがっつり書籍を参考にしたところです~


下記がログイン後の画面です。
登録されている社員を表示できるようになっています。
サイドメニューバーには、ログインされている従業員も表示させるようになっています。
※ここも書籍を参考にしています


下記は取引先企業一覧画面です。
会社単位で取引先を登録できるようになっています。
登録や編集、削除のアクションができるようになっています。
※ここからは自分で組み込んだ機能です。


下記は取引先様一覧画面です。
ユーザ単位で取引先を登録できるようになっています。
先ほど登録した取引先企業とリレーションでつながっています。なので、取引先様を登録する前には取引先企業を登録しておく必要があります!
こちらの画面でも登録、編集や削除ができるようなっています。


下記は案件一覧画面です。
抱えている案件を管理できるようになっています。
案件は編集や削除をできないようにしておきました。
※本当はほかの取引先のデータも削除できない方がいいと思いますが、機能の勉強としてできるようにさせておきます。

登録時は進捗は未完了の状態で登録されます!


進捗を完了にするボタンを押下すると進捗が完了となります。


とこんな感じで作成してみました!

以前取得した資格の
MB-910(Microsoft Dynamics 365 Fundamentals (CRM))でCRMに少し興味を持ったので、今回触ってみてよかったなと思いました。

ただ、すごい難しいと思いました。。
データベースの設計が特に複雑でなかなか苦労しました。
ここにデータの分析やマーケティングのアプローチ機能を追加されるとなると大手のシステムはさすがだなと感じました。。

というところで、とりあえず動くシステムが完成できてよかったと思います。
課題点がところどころありますが、完成です!

Summarize in English

It take me about a week to make this CRM application.
I had a hard time.
I think framework is the most diffcult environment construction.
Therefore, I feel that it is important to check the procedure firmly in the official  imformation learning books etc.

Thank you for reading this far!!