Greek version here
Moniteur is a system for providing real time information during the academic year such as normal and examination schedule.
Still WIP, but there is a working beta!
Moniteur takes advantage of state of the art technologies in order to complete this project.
Moniteur is consisted of three components, the backend , the frontend and a plugin for the backend.
The backend has been written in Go and uses the following dependencies:
For the function of the backend, we need to create a Plugin.
The plugin has been written in Go as well. In this plugin we write all the logic so every organization that wants to use Moniteur writes a plugin.
In our case (AUEB) we use the following dependencies:
The frontend has been written in VueJS.
In order to build Moniteur we need moniteur, the plugin and the frontend.
Building REQUIRES Linux operating system.
Minimum version of Go 1.12.
The steps for building are:
- We install golang, npm using nvm method.
- Clone το project
git clone https://github.com/aueb-cslabs/moniteur.git
- Navigate to the project folder.
- Edit main.go and add here the URL that the frontend is going to hit.
- Edit main.js and change here the URL that the backend is going to use to access the API.
- Edit the same file and change here the port of the backend that the API is.
- Edit the same file and change here and change the logo.
- Edit the same file and change here and add an extra logo if you need it.
- Edit the same file and change here and change the locale to en.
- If you want to change the background colour, change the hex value here.
- If you want to change the navbar colour, change the hex value here.
- Take advantage of the Makefile to build Moniteur. We analyze all the make function in the following table.
Make Command | Result |
---|---|
.build-moniteur | Builds go project |
.build-name-plugin | Builds go plugin |
.build-go | Builds go project & plugin |
.build-vue | Builds frontend |
.build | Builds everything! |
Deployment REQUIRES Linux operating system.
After building we follow the steps bellow to deploy moniteur.
Moniteur requires 2 configuration yml files in order to function.
- config.yml, contains the path of the plugin and the link of the exams program.
- calendar.yml, contains the academic calendar of the year.
In our case (AUEB) we need 2 more config files.
- mapping.yml, contains the mapping for every room for the needed english to greek translation of the URLs in order to take advantage of the existing API AUEB Schedule Master.
- ldap.yml, contains the credentials of the ldap server and the users who have admin rights to Monituer.
After the creation of the files described above we follow below.
- Navigate to Moniteur folder.
- Create logs folder:
mkdir logs
- Install tmux (if needed):
sudo apt install tmux
- Create tmux container:
tmux new -s moniteur
- Start Moniteur:
./bin/moniteur
- Exit tmux container:
Press Ctrl B + D
Moniteur has been tested on Apache2 and Ubuntu 16.04! The following steps apply only on that system configuration!
- Install Apache2:
sudo apt install apache2
- Stop the service:
sudo systemctl stop apache2
- Copy the files from dist folder:
sudo cp -R /somewhere/moniteur/app/dist/* /var/www/html/
- Enable overrides for Apache2:
sudo a2enmod rewrite
- Navigate to html folder:
cd /var/www/html/
- Create file named .htaccess:
nano .htaccess
- Copy the following block:
#<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^(.*) /index.html [NC, L] #</IfModule>
- Save the file:
Ctrl + X. After Y & enter
- Start Apache2:
sudo systemctl start apache2
- Enable Apache2 on system start up:
sudo systemctl enable apache2
Documentation is coming soon!
Moniteur provides REST capabilities at users and the frontend displays all the information required per room.
The most simple way of using Moniteur for a normal user is to access the link: http://moniteur.url/roomID
Moniteur automatically displays all the information for that specific room.
For Moniteur admins we provide creation of general and per room announcements and general comments. In order to access the admin panel you need to login at http://moniteur.url/admin
.
Automatically we provide POST, PUT and DELETE calls for the administration of Moniteur.
Detailed examples will be added then the projects comes at its first release!
We will add FAQ in the following days, only if needed.
Moniteur was created for the needs of AUEB's Computer Science Laboratories (CSLab).
The development of the project was conducted by the Moniteur Team.
Coming Soon.