Skip to content

Latest commit

 

History

History
193 lines (124 loc) · 7.36 KB

README_EN.md

File metadata and controls

193 lines (124 loc) · 7.36 KB

Build Status dependencies Status devDependencies Status

AUEB

Greek version here

Moniteur

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!


Contents


Techonologies

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.

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.


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:


Frontend

The frontend has been written in VueJS.


Building

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:

  1. We install golang, npm using nvm method.
  2. Clone το project git clone https://github.com/aueb-cslabs/moniteur.git
  3. Navigate to the project folder.
  4. Edit main.go and add here the URL that the frontend is going to hit.
  5. Edit main.js and change here the URL that the backend is going to use to access the API.
  6. Edit the same file and change here the port of the backend that the API is.
  7. Edit the same file and change here and change the logo.
  8. Edit the same file and change here and add an extra logo if you need it.
  9. Edit the same file and change here and change the locale to en.
  10. If you want to change the background colour, change the hex value here.
  11. If you want to change the navbar colour, change the hex value here.
  12. 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

Deployment REQUIRES Linux operating system.

After building we follow the steps bellow to deploy moniteur.

Backend

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.

  1. Navigate to Moniteur folder.
  2. Create logs folder: mkdir logs
  3. Install tmux (if needed): sudo apt install tmux
  4. Create tmux container: tmux new -s moniteur
  5. Start Moniteur: ./bin/moniteur
  6. Exit tmux container: Press Ctrl B + D

Frontend

Moniteur has been tested on Apache2 and Ubuntu 16.04! The following steps apply only on that system configuration!

  1. Install Apache2: sudo apt install apache2
  2. Stop the service: sudo systemctl stop apache2
  3. Copy the files from dist folder: sudo cp -R /somewhere/moniteur/app/dist/* /var/www/html/
  4. Enable overrides for Apache2: sudo a2enmod rewrite
  5. Navigate to html folder: cd /var/www/html/
  6. Create file named .htaccess: nano .htaccess
  7. 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>
    
  8. Save the file: Ctrl + X. After Y & enter
  9. Start Apache2: sudo systemctl start apache2
  10. Enable Apache2 on system start up: sudo systemctl enable apache2

Documentation

Documentation is coming soon!


Features

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!


FAQ

We will add FAQ in the following days, only if needed.


Team

Moniteur was created for the needs of AUEB's Computer Science Laboratories (CSLab).

The development of the project was conducted by the Moniteur Team.


License

Coming Soon.