Kotlin がAndroid の主言語となって以降、Java から Kotlin に乗り換える動きがみられるようになり、Spring Boot を利用した Web アプリケーション作成においても、Kotlin を採用するケースが今後、増えてくると予想されます。
また、Spring は、WebシステムやWebサービスをはじめ、クラウドアプリケーションやモバイルシステムなど、Spring に備わっている機能の拡張性を利用して、細やかな仕様変更や多様な開発プロジェクトに柔軟に対応できるフレームワークです。
開発言語として人気の高いJavaの中でもSpringを扱えるエンジニアは貴重です。特に大規模開発を行うSIer業界では重宝されており、今後も需要が無くなるということは考えられません。
今回は、Kotlin & Springboot で簡易的なECサイトを構築してみました。汎用的に作成されているのでボイラープレートとしてご利用ください。
作成したアプリケーション
フロント画面
フロント画面の主な機能
- ログイン/ログアウト
- 会員登録
- パスワードリマインダ
- 商品一覧
- カートに追加
- 決算処理(Stripe)
- お気に入り追加
- お問い合わせ
- ソーシャルログイン(Google)
管理画面
https://laraec.isystk.com/admin/
管理画面の主な機能
- ログイン/ログアウト
- 商品管理
- 注文履歴
- 顧客管理
- お問い合わせ管理
- 画像管理
- CSVダウンロード
- PDFダウンロード
- 画像アップロード
バッチ処理
- Solrインデックス生成バッチ
- CSV商品データ/画像取り込みバッチ
プロジェクトの概要
Springboot & React.js の学習用サンプルアプリケーションです。
簡易的なECサイトのアプリケーションに触れながらSpringboot&React.js の基礎を学習することが出来ます。
フロント画面で購入した商品を管理画面の注文履歴で閲覧したり、在庫の管理を行うことが出来ます。
管理画面は、Springboot&Bootstrapで構成されていますので、Thymeleaf を学習する際にご利用ください。
フロント画面は、Springboot & React.js で構成されていますので、React.jsを学習する際にご利用ください。
対象としている方
- Kotlinを利用してSpringBootを学習してみたい方
- Dockerを利用した開発環境を構築したい方
- フロントだけでなく管理画面も作成して統合的なサンプルを作成したい方
- オブジェクトストレージへの画像アップロードを作成してみたい方
- フロントエンドをReact.jsで作成してみたい方
- Stripeを利用した決算処理を作成してみたい方
- ソーシャルログインを作成してみたい方
利用している技術
インフラ
- Nginx ・・・ WebサーバーとしてNginxを採用しました。自己証明書を設定済みなので開発環境でSSLとして動作可能です。
- MySQL ・・・ DBサーバーにはMySQLを採用しました。データファイルや設定ファイル、 ログなどはコンテナの外に出して 開発時に参照出来るようにしています。
- phpMyAdmin ・・・ 起動したMySQLのデータを参照・編集するためのツールです。
- MailHog ・・・ ダミーのSMTPサーバーです。送信したメールをブラウザで閲覧することが可能です。実際にはメールは送信されないので開発時の誤送信してしまう心配がありません。
- Minio ・・・ S3に完全互換性のあるオブジェクトストレージです。アップロードした画像の保存先として利用しています。
- Redis ・・・ 永続化可能なインメモリデータベースです。DBから取得したデータのキャッシュとして利用しています。
- Solr ・・・ 検索サーバーです。事前にバッチを実行してDBの値をSolrにインデックスしておくことでWeb検索時の速度アップや負荷軽減が期待できます。
アプリケーション
- SpringBoot 2.5
- React 18
- Typescript
- Bootstrap 4
- Adminlte 3
phpMyAdmin
データベースに接続してデータの参照や編集が可能です。
mailhog
ダミーのメールサーバーです。実際にはメールは送信されず、送信されたメールはブラウザで閲覧できます。
minio
S3に準拠したダミーのオブジェクトストレージです。
Solr
Solrの管理コンソールです。インデックスされたデータを検索したり出来ます。Dockerを起動後に利用可能です。
Swagger
作成したAPIの一覧を確認したりデータを検索できます。フロントを起動後に利用可能です。
ソースコード
MIT ライセンスにてコードを公開していますのでご利用の方は以下のURLからForkしてご利用下さいませ。