WEBデータベース ExmentをWin10にインストールしてみる

#Exmentとは
ブラウザでデータベースの構築・入力ができるWEBデータベース(WebDB)
ExcelやAccessでやっている作業を、ACCESSを操作する感じでWEBデータベースで作ることができる。
公式サイト：https://exment.net/
デモサイト：https://exment.net/demo-env
![alt](https://exment.net/wp-content/uploads/2020/03/list_of_data.gif)
#WEBデータベース(WEB DB)とは
データベースをブラウザで見たり入力したりすることができ、テーブルの定義もブラウザでできる。ノンプログラミングでデータベースを開発・運用できることが特徴です。

以下、公式のデモサイトです。実際に見てみるのが早いかと。

基本的なデモ環境です。
管理者権限を付与しております。
URL: https://demo-jp.exment.net/admin
ログインID : admin
パスワード: adminadmin

##類似ソフト
・[有償]UnitBase,kintone,XCGate,i-repoter
・[無償版あり]Pleasanter
#特徴
・オープンソース　無料でアカウント数無制限
・Apache+PHP+MySQLで動くのでXamppやレンタルサーバーで稼働できる
・データベースはPC、タブレット、スマホから入力・閲覧できる
・ワークフロー機能あり
・APIあり
#インストールしようと思った理由
・会社でペーパーレス化導入のため数社から説明・見積もりを取った。
・UnitBaseが面白いと思ったが採用されず別なシステムが導入され、UnitBaseの試用期間が切れた。
・Apache+MySQL+PythonでCGIで何か書こうと思った時、WEB DBの事を思い出して「WebDB フリー」で検索してみた。
・ExmentがUnitBaseと同じようなWebデータベースで、オープンソースなので無償で使えるようなので試してみることにした。(Pleasanterも３０日無料トライアル試してみたけど複雑そうと思った)

#インストール
##環境
・OS:Windows10
##説明
公式インストール説明：https://exment.net/docs/#/ja/quickstart
##ダウンロード
以下をダウンロードする
###composer
以下のサイトに説明があるのでダウンロードして実行ファイルを実行する
https://weblabo.oscasierra.net/php-composer-windows-install/
###Xampp
最新版はPHPのバージョンが新しすぎて動かないので「7.3.17 / PHP 7.3.17」版をダウンロードしてセットアップする。
https://www.apachefriends.org/jp/download.html
以下にセットアップ手順が記載してある。MySQLの環境変数パスは「C:\xampp\mysql\bin」
https://exment.net/docs/#/ja/install_xampp

###Exment
https://exment.net/downloads/ja/exment.zip
ダウンロードして解凍し「C:\xampp\local\exment」へコピーする
##データベース設定
以下を開き、「新規作成」で「homestead」データベースを作成する
http://localhost/phpmyadmin/index.php
##httpd-vhosts.conf,hosts修正
以下をみて「httpd-vhosts.conf」,「hosts」を修正する。
https://exment.net/docs/#/ja/install_xampp?id=%e3%82%b5%e3%83%96%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e8%a8%ad%e5%ae%9a

##インストール
以下を開く
http://exment.localhost/admin
データベース設定は以下を設定する。
データベース種類：MariaDB
ホスト名：127.0.0.1
ポート：3306
データベース：homestead
ユーザー名：root
パスワード：(空欄)
#感想
・思ったより簡単に動いた
・データベースの入力の仕方に悩んだ。「管理者設定」－「メニュー」－「新規」で作成したデータベースを追加すると入力できるようになる。
・ワークフロー機能に期待。Excel,Accessには無い機能だから。
・ワークフローはほとんど状態遷移(ステートマシン)なので色々使えそう。
・最初にUnitBaseでWEBデータベースを見た時、「これとワークフロー組み合わせたら業務のプログラミングができそう」と思った。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10836/37da7e0e-2803-d57d-6117-4caed7abad0d.png)
・スマホからも開けるので、パソコン無くても入力できる。
![Screenshot_20200519-122150.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10836/5d53441c-876a-2091-c20a-90328bcdd461.png)
#要望
・クロス集計ビューが欲しい。横軸が日付だと助かる。縦軸が作業者・横軸が日付(一か月)で静電防止対策のチェックをつけている表を作ってみようとしてクロス集計が欲しいと思った。
・スマホで見ているときに、フォームにスマホのカメラをバーコードリーダーにして入力できると、ロケーションフリーで使えるので用途が広がる。
#やってみたいこと
・課と課をまたぐ業務のワークフロー化
　課と課をまたぐ作業の帳票をワークフロー化することでメールベースの事故を防ぐ
　全社的なワークフローはあるが、さすがに部内の仕事に導入するには小回りが利かない。
　製造→技術→品証→資材を経由する出荷データ確認用ワークフローを試しに作ってみた。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10836/366956a0-ac4c-5cad-4a1b-e86216d99cd1.png)

・APIをPythonから動かすことに挑戦してみたい。元々組み込み屋(エンベデッドプログラマ)なので、Iotデバイス(RaspberryPIなど)からDBにデータを登録したい。
#WEBデータベースの使えそうな所
・台帳管理　採番台帳にはもってこい
・ワークフロー　状態遷移図でかけるくらいのもの。データは添付ファイルで渡してもよい
・タスク管理　ワークフローの応用
テーブル１つで書けるものをお勧めする
・Iotのデータ収集　ネットワーク対応のAPIに期待
#WEBデータベースの苦手そうな所
・複数のテーブル、複雑なロジックが必要なもの
　データベースは元々プログラムとデータを分離してデータだけ共用できるようにしたもの。
　使うためにはロジック部のプログラムが必要。ノンプログラミングの分そのあたりは弱くなる。APIを使って外部にプログラムを作ることが必要になる。
　一見簡単に見える帳票でも複雑な構造をしていることがある。
　一例で他部所でペーパーレス化を試みた帳票を私が解析したものが以下になる。
　最低でも７テーブル必要なものを１つのテーブルに突っ込もうとしていたので、お話にならないと思った。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10836/b644a2f2-53cb-2e8c-faad-041a408a65f8.png)