Android documents reader for courses or exams. PDFs can be synced by the administration application and devices can be locked and then unlocked.
DocsLock is divised into three components :
- an android application which can be installed on desired devices
- a client application to administrate the devices and sends the documents
- a server to make the communication between devices and application, serves client application and REST API The android application need to be installed on devices. The LAN can be disconnect from internet.
- android application are tested and works on android 7.0
- a local WiFi LAN needs to be configured and needs to contains the server and devices (no other devices for security reasons, c.f. Limitations)
- Client : Angular4, Angular Material and socket.io
- Server : MongoDB, Sails.js 0.12 and socket.io
- Android : retrofit2 and barteksc/AndroidPdfViewer
For reasons of time, there are multiple security issues. Communications are not in HTTPS, devices are not authenticated and client administration application are not secured by a password. For these reasons you need to configure a private Wifi LAN only used for this application. If not, others computer could change devices states. Packets could be snooping and attacked by a MITM.
Other warning : don't give unlocked devices. They could go to the administration application and change unlock/lock the other devices.
We want to fix theses security issues in next release. The current release is conceived as a Proof of Concept.
- clone the project
git clone https://github.com/maximeburri/DocsLock
- for the android application, install android studio and open with existing source on
android-app
- for the server :
- install MongoDB (installation MongoDB)
- install npm (Installation NPM)
- install npm global dependencies
npm install -g sails npm install -g @angular/cli
- install npm dependencies :
npm install
indocslock/client
, then indocslock/server
- in a terminal, start MongoDB (
sudo service mongod start
for ubuntu) - in a terminal to
docslock/server
makesails lift --prod
. The API is disponible on port1337
- in a terminal to
docslock/client
makeng serve --host 0.0.0.0 --prod
. The API is disponible on port4200
. A better alternative is to makeng build
and host thebuild
folder with nginx for example - install .apk on devices. Set the server ip to
http://<ip api>:1337
Equivalent to deployment with sails lift
and ng serve
commands.
The project is in pause mode and just some bugs will be fixed. If the project will be restarted, the priority will be give to :
- make communication over HTTPS (easy)
- authenticates with OAuth devices (long)
- add users managment for administration application (long) or protect by a single password (easy)
This project is made for HEPIA initied by Florent GLUCK and developped by (c.f. Contributors):