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.
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.
Next we will see how we can run the i-on Web application according to its operation modes and using 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 tohttp://172.17.0.1:10023
since i-on Core listens on port10023
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 IP172.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 documentationl7kowOOkliu21oXxNpuCyM47u2omkysxb8lv3qEhm5U
; -
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 documentation22dd1551-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 tohttp://elasticsearch:9200
; -
PATH_PREFIX
- Where we can indicate a path prefix to the applicattion. By default it has no value.
The i-on Web application has two operation modes and you can use either one of them.
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"
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"
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
.
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'.