Skip to content

Latest commit

 

History

History
107 lines (84 loc) · 6.26 KB

README.md

File metadata and controls

107 lines (84 loc) · 6.26 KB

i-on Web

i-on Web

License Contributors Issues Pull requests Last commit

Overview

The i-on initiative aims to build an extensible platform in order to support academic activities, in other words, the goal is the restribuiton of the academic information in more computationally convenient formats. The i-on Web project consists of a web application to provide a user interface through web browsers.

Table of contents

Functionalities

i-on Web has the following functionalities available:

  • Exposition of the curricular plan for multiple programmes;
  • Exposition of multiple programmes general information;
  • Authentication;
  • Allow the student to select courses and the possibility to cancel that selection;
  • Construction of the student's schedule (in accordance with the courses selected);
  • Make it possible to view the list of selected courses;
  • Notify the student, on the home page, of upcoming events (tests, exams, among others) of the courses he / she attends;
  • Construction of the student's calendar with the events of the courses to which he is enrolled;
  • Make it possible to download (pdf file) the student's schedule;
  • Allow the user to change his/hers username.

i-on Web is continuously being developt, as such, more funcionalities will be / are being added, namely:

  • Switch the language (between Portuguese and English) of the web interface.

Getting started

Next we will see how we can run the i-on Web application according to its operation modes and using docker compose.

Docker-compose

The docker compose file contains the following enviroment variables:

  • OPERATION_MODE - Where we can specify the operation mode. By default, its integrated mode which connects to i-on Core;

  • CORE_URL - Where we can indicate the location of i-on Core. By default is set to http://172.17.0.1:10023 since i-on Core listens on port 10023 and since both applications are running locally but in isolated containers, in order to make requests from i-on Web to i-on Core we can use the IP 172.17.0.1;

Note: Usually Docker uses the default 172.17.0.0/16 subnet for container networking, in which 172.17.0.1 is the default gateway. By using this IP we can use the bridge connection to make requests to i-on Core.

  • CORE_READ_TOKEN - Access token used in order to obtain data from i-on Core. By default, it has the value indicated in the i-on Core documentation l7kowOOkliu21oXxNpuCyM47u2omkysxb8lv3qEhm5U;

  • CORE_CLIENT_ID - The unique id of the client provided by the core system. By default, it has the value indicated in the i-on Core documentation 22dd1551-db23-481b-acde-d286440388a5;

  • CORE_CLIENT_SECRET - The client secret provided by the core system. By default, it has the value indicated by i-on Core;

  • DB_ELASTIC_URL - Where we can indicate the location of the Elasticsearch database. By default is set to http://elasticsearch:9200;

  • PATH_PREFIX - Where we can indicate a path prefix to the applicattion. By default it has no value.

Operation Modes

The i-on Web application has two operation modes and you can use either one of them.

Standalone mode

The standalone mode allows us to run the i-on Web application using mock data stored in .json files, which we can view here.

When building the docker image we can specify the development operation mode by setting the build-time variable OPERATION_MODE with the value standalone by using the following command on the root directory:

docker-compose -f .docker/docker-compose.yml build --build-arg OPERATION_MODE="standalone"

Integrated mode

This mode allows us to run the i-on Web application using the data provided by i-on Core, as such, both i-on Web and i-on Core need to be running locally. In order to download and run i-on Core please head to the i-on Core GitHub repository.

The environment variables present in the docker compose file should be enough for us to establish a connection to i-on Core, as such, we only need to execute the following command on the root directory:

docker-compose -f .docker/docker-compose.yml build

In similarity to the command previously shown, we can assign values to the enviroment variables, as shown in the following example:

docker-compose -f .docker/docker-compose.yml build --build-arg PATH_PREFIX="/i-on-web" --build-arg CORE_READ_TOKEN="l7kowOOkliu21oXxNpuCyM47u2omkysxb8lv3qEhm5U"

Running i-on Web

After executing the build command, in order to run i-on Web locally we can execute the following command on the root directory:

docker-compose -f .docker/docker-compose.yml -p i-on-web up web_app

After running the previous command i-on Web should be available on port 8080.

i-on Web online

The i-on Web application is also available online since we deploy it to heroku. You can check it out here. Please notice that since its a demo version the only programmes that contain classes and class sections to subscribe to are the programmes 'LEIRT' and 'LEIC'.