Skip to content

Latest commit

 

History

History
95 lines (85 loc) · 3.75 KB

README.md

File metadata and controls

95 lines (85 loc) · 3.75 KB

Team7

出席管理システム Team7の概要

  • 鍵導出関数(Argon2)と、暗号化(AES)により安全な通信/処理
  • ネットワークが一時的に使えなくても、カードリーダ内部のデータベースで処理を行える
  • 定期的にサーバとカードリーダ内のデータの同期
  • ユーザ名とパスワードを使って個人のPCからアクセスできる
  • 講義情報の変更も ブラウザ / クライアントアプリ で簡単にできる
  • .csv / .xlsx フォーマットで出力可能
  • WebAPI鍵の認証により不正な出席情報の追加を防ぐ

使い方

最新版のPythonとNode.JS、nginxをダウンロードし、インストールしてください
-> Python - Download
-> Node.js - Download
-> nginx - Download


[ Team7/Server ]
npm installでnodejs-moduleをインストールし、node app.jsでServer/app.jsを実行します。
Windows向けですが、起動までの処理を一括で行うバッチファイル Server/server_start.batがあります。
バッチファイルの実行方法は以下の通りです。

cd Server
./server_start.bat

現在 MySQLのデータベースは、プライベートレポジトリで管理しています。

nginxのnginx.confファイルを編集または、nginx/nginx.confで置き換えてください。
nodeはlocalhost:3000、nginxはlocalhost:8080からnodeへリバースプロキシを行っています。


[ Team7/CardReader ]
初めて実行する場合は、pip install -r requirements.txtで実行に必要なライブラリをインストールしてください。
実行方法は、以下の通りです。

cd CardReader
python main.py

WebAPI_Key.txtには、管理者に与えられたWebAPI_Keyの値をコピーして貼り付けてください。
現在 カードリーダ内部のデータは、プライベートレポジトリで管理しています。


[ Team7/Electron ]
npm installでnodejs-moduleをインストールし、npm startでElectron/main.jsを実行します。

Windows向けですが、起動までの処理を一括で行うバッチファイル Electron/electron_start.batがあります。
バッチファイルの実行方法は以下の通りです。

cd Electron
./electron_start.bat

Windows, Linux, MacOS向けにアプリケーション化するバッチファイルもあります。
バッチファイルの実行方法は以下の通りです。

cd Electron
./electron_build.bat

ディレクトリ構造 (簡易)

Team7  
 ├ CardReader (カードリーダ)  
 │ └ main.py  
 │ └ main_window.py  
 │   └ generator  
 │     └ idm_csv_gen.py  
 │     └ attend_csv_gen.py  
 │     └ csv_join.py  
 │
 ├ Electron   (クライアントアプリ)  
 │ └ main.js  
 │
 ├ Nginx  
 │ └ nginx.conf  
 │
 ├ Server    (サーバ)  
 │ └ app.js    (ルーティング)  
 │ └ routes  
 │   └ main.js     (メイン処理)  
 │   └ api.js      (webapi処理モジュール)  
 │   └ database.js (データベースモジュール)  
 │   └ cryp.js     (暗号化モジュール)  
 │   └ output.js   (csv, xlsx 処理モジュール)  
 │ └ public (表示用ファイル)  
 │   └ css  
 │   └ img  
 │   └ js  
 │ └ view   (ejs レンダリングファイル)