collective awareness platforms for quality internship ref.: 2016 … · 2018. 6. 29. · developed...

30
Page 1 of 30 Collective Awareness Platforms for Quality Internship Ref.: 2016-1-ES01-KA203-025562 Intellectual Output IO3 Report Date: updated June 13th, 2018

Upload: others

Post on 10-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 1 of 30

Collective Awareness Platforms for Quality

Internship

Ref.: 2016-1-ES01-KA203-025562

Intellectual Output IO3 Report

Date: updated June 13th, 2018

Page 2: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 2 of 30

Foreword

This document is produced in the context of the CAPQI project (Ref.: 2016-1-ES01-KA203-

025562) and aims at providing all CAPQI partners with an overview of the current state-of-play

of the internship situation in Europe and a common repository of terms and vocabulary.

This report describes the design, setup and development of an open-source plug-in available to

connect different web platforms to obtain the internship rating data. Different scenarios and

widgets and API (Application Programming Interface) are described.

Internships are a key element of the Youth Guarantee proposed by the European Commission

in December 2012 and adopted by the EU's Council of Ministers in April 2013. Currently, one in

three internships is substandard with regard to working conditions or learning content, according

to a November 2013 Eurobarometer survey1. Many of these substandard internships are used

by employers to replace entry level jobs.

The CAPQI project tries to increase transparency regarding internship conditions and wants to

promote good practices: for example by requiring internships to be based on a written internship

agreement.

The development of an open source plugin, software applet will enable anyone to retrieve the

information produced by the internship rating system. Additionally, the different stakeholders,

intermediaries and labelled companies could use that information to enhance the traineeships

experience. The system has been tested in several websites, such as university or career

services in Europe that have successfully installed and use the software developed to display

relevant information about their own internships and promote the quality on future ones.

One of the main objectives of the project is to empower youth-led platforms and their users.

Therefore, giving access to a shared pool of internships rating will foster youth mobility even

among EU countries. The websites of intermediaries can join these rating data to any internship

offer of a qualified employer that is present in the shared open database (hosted by

InternsGoPro). The API and plugin widgets will help in the dissemination of the CAPQI goals. To

promote the use of it for companies, also the label and the rating of the current employer is

displayed automatically with internship offers.

Therefore, the collected data on internship conditions filtered by company, career field and

location are publicly available on all the partnering sites. To become a partner is free and a

procedure has been established.

To make sure to include as many intermediaries as possible, CAPQI partners have developed

an open source API and widget of the rating and labelling system (IO2) in order to create a

public and collaborative mechanism controlling the quality of internships.

1 http://ec.europa.eu/social/main.jsp?langId=en&catId=1036&newsId=2007&furtherNews=yes

Page 3: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 3 of 30

Table of content

1. Introduction 4

2. Widget and API development 4

Statement of objectives. Blueprints for the implementation 4

Differences between the Widget and the Web API - Libraries 5

Targeted websites: widget or API installation recommendation 6

Widget/API - How information is displayed 7

3. General challenges 10

Technical challenges 10

Technical challenges of the widget: 11

“Partner acquisition” challenges 11

Alternatives to API and widget (Transparency at Work accounts) 12

4. Installation 13

How to integrate the Widget in a website 13

How to integrate the API PHP library in a website 15

5. Documentation available 18

6. Practical tests on real websites 22

ErasmusIntern 22

Praxis 26

Other platforms 28

7. Conclusions and remarks about CAPQI IO3 28

ANNEX 1 - Current partners interested to get IO3 solutions 29

Page 4: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 4 of 30

1. Introduction

CAPQI partners believe that transparency on working conditions will increase the overall

quality of internships in Europe. Firstly, if young people/students were able to access

information about the quality of an internship before applying, they could easily avoid low quality

internships with low learning content. Secondly, companies having their employer reputation at

stake would be incentivized to invest more in quality internships.

To create this transparency within the labour market, intermediaries between young

people and employers (such as youth-led platforms and university career services) are essential

to bring on board.

The project strategy is to empower those intermediaries and their users by giving them

access to a shared pool of internship reviews; and thus giving them a better knowledge of an

employer quality in a given country.

To make sure to include as many intermediaries as possible, CAPQI partners have

developed an open source API and widget of the rating and labelling system (IO2) in order to

create a public and collaborative mechanism controlling the quality of internships.

2. Widget and API development

This chapter will cover the development phase of the widget and the API with its library

created for this IO.

Statement of objectives. Blueprints for the implementation

The main pursued objective is to empower stakeholders and intermediaries with relevant

information about quality internships for their end users, in order to give them access to a

shared pool of internship reviews with different relevant information to do a better selection in

future internships. By giving them a better knowledge of an employer quality the trainee will

have more data to do their choice.

In order to create this collaborative mechanism controlling the quality of internships, data

is key and need to be shared very easily to reach a systemic impact.

For this, the solutions developed in the CAPQI project need to reach the following

objectives:

Page 5: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 5 of 30

1. Easy access to information: Instead of accessing four different websites four separate

times, CAPQI partners want to develop a solution that enable users to access all the

information at the same time from one place.

2. Enabling scalability. While the generation of data is still very dependent on human

inputs, it is required a solution that can share rating internships data without human

intervention. Code-sharing on a large scale can be extremely inefficient and also highly

time-consuming. In order to reach full scalability and extend the impact of IO1 and IO2

the developed solution should help to automate the creation and sharing of content

relevant to the context of internships.

3. Nevertheless, the solution should still have flexible features in order to adapt to new

contexts, policies and geographies (beyond contexts the solution developers have

thought of). Taking into consideration that proposition, the web tools developed in the

IO3 should balance between automation and flexibility to guarantee its scaling.

4. Reinforcing the collaboration: creating a cascade network effect. The best way to reach a

systemic impact is to create a “cascade network effect”. A network effect2 is the positive

effect described that an additional user of a good or service has on the value of that product

to others. When a network effect is present, the value of a product or service increases

according to the number of others using it.

CAPQI partners will have to design a solution fostering synergies between organisations

and showing them the benefit of accessing each other’s existing data. Users could get access to

more information and open up new opportunities for collaboration with employers with less

investment in partnership development from either side. IO3 users should become partners and

not being considered as “competitors” between each others.

For all of these purposes, widget and APIs are the best-suited IT solutions.

Differences between the Widget and the Web API - Libraries

Along the duration of CAPQI project, two different tools have been developed in order to

display the information gathered by the internship reviews in the associated websites: a Widget

and a Web Application Programming Interface (also known as Web Api or solely API). Both

strategies can be used for retrieving and displaying information later in the websites that uses

those tools.

By definition3, a Widget is “a small application with limited functionality that can be

installed and executed within a web page doing something useful with information fetched from

other websites and displayed in place”, meanwhile a API is defined4 as “a set of subroutine

definitions, protocols, and tools for building application software or, in general terms, a set of

clearly defined methods of communication between various software components”. An API is

2 Network effect page on Wikipedia.org https://en.wikipedia.org/wiki/Network_effect 3 Widget page on Wikipedia.org: https://en.wikipedia.org/wiki/Web_widget 4 API page on Wikipedia.org: https://en.wikipedia.org/wiki/Application_programming_interface

Page 6: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 6 of 30

not enough, as we can see, it is needed to create libraries that can be integrated easily in the

websites, whatever technology they are using. For this, we have also developed an Open

Source library.

CAPQI consortium have decided to write the library for the API in PHP (or PHP:

Hypertext Preprocessor, a language designed for Web Development) because is one of the

most extended languages for web development nowadays and also is the language the partner

websites are build with, but thanks to the fact that the library Open Source, and also all the

documentation is public, its functionalities can be extended by any developer but also they can

create other libraries in different programming languages so the API can be used in other

websites that may not be supported right now.

Once it has been introduced what is a Widget, a Web API and a library, we can explain

what are the differences between them to help in the selection for the IT administrator in the

intermediaire website.

The simplest tool in functionality, and also the most easy one to be installed, is the

Widget. It doesn’t require high IT skills to be integrated in a website and the information will be

displayed automatically each time the widget is displayed and is compatible with almost all the

websites on Internet. Because of this, the widget doesn’t allow to be customized apart of some

minor elements, but it will be displayed in all the websites with the same lookalike and style.

The widget is the best option to be implemented in small or low-traffic websites, and also

for those which number of internships is not very high.

On the other hand, the libraries that uses the API requires some knowledge in web

development and coding skills. The library has to be installed in the web server and added to be

used in the website and, in order to be able to fetch the information, the user needs to be

authenticated via username and password. Once the library is successfully installed, they will be

able to get all the available data in different ways, according to the provided documentation.

Thanks to this, the developers have available more options for manipulating and displaying the

data. Also, they have complete freedom about how to display the information, so they can follow

any Visual Identity Manual (or VIM) the company may use in the website or customize the

layout with the information. Also, the libraries allow other techniques, like data caches, to make

this process even faster. This option is recommended for big websites with a high amount of

internships published and high traffic volume as well, specially with the cache implementation

mentioned before.

Targeted websites: widget or API installation recommendation

Page 7: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 7 of 30

The IO3 developed tools have enough flexibility to ensure that any type of intermediary

platform (between young people and employers) can use them and make their users benefit

from it.

The API is targeted to platforms proposing job opportunities to their users. They have

already the infrastructure to propose direct contact between their users and employers (e.g.

https://erasmusintern.org/ and http://www.praxisnetwork.eu/). The main added value for these

platforms will be to provide extra value to their audience and thus differentiate among other

similar platforms. The target websites for the API will be university career websites and job

portals.

Examples of platforms that we would recommend the use of the developed widget, are

mostly websites who don’t post job opportunities. It can be either university websites who don’t

have a career page (e.g. Universidad de Alcala) or advocacy groups. In both cases, these

actors would like to raise awareness on the importance of their quality internships and enable

their audience to look for reliable information. It is important to notice that the audience here can

be larger than students and young professionals. It can include professors, career services staff

(university platform) and politicians (advocacy group). Nevertheless these websites don’t

propose direct connections with employers to their audience.

Widget/API - How information is displayed

In this subsection we describe how information about employers is displayed well in the

widget or using the library/API.

With the widget, once it is installed in the website, the rating of the employer is

automatically shown using the default template provided, and the personalization allowed is

somewhat limited. The widget display shows some elements as it can ben see in the next figure.

First, we can see the logo of the website Transparency At Work5, where all the reviews

are displayed as well and is where all the information is stored as main portal of the project.

Followed by the logo, we have the general rating of this employer displayed, and next to it, if the

employer is distinguished by their good-fair and quality of the internships, a label will be

displayed showing their category. Then, there are two links. The first one shows a pop-up with

detailed information about this current employer, as we can see in the next image.

5 https://www.transparencyatwork.org/

Page 8: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 8 of 30

By clicking into the second link, it will open a new page in where students can submit a

new review for that employer.

If the tool chosen has been the library / API, after having configured the access with the

provided username and password, the partner will be able to perform the functions that give us

all the employer list or individual data as well, among other features. As we have said, this

option returns raw data without style, and needs to be styled before being displayed. If we don’t

manipulate the data, the next image shows an example of which and how the information is

gotten by the library, understanding why is needed some manipulation and why this option is

better for people with some IT skills.

This data structure is all the same among all the employers, so once we know how to

display the information for one case, it will be the same for all of them. Thanks to this, it will help

the developers to follow the VIM of their platforms, or whatever style and distribution of the

Page 9: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 9 of 30

information they prefer, but achieving the same results as by using the widget. Next, we show

an example of the same output by using this and applying a customized style.

In the image displayed, we can see that we have the same information as in the widget,

but with a different style. If we take a look to the individual statistics, we have a simplified

version of the pop-up but keeping the relevant information, as we can see in the next image.

Because of the freedom we have within this option, many different styles could be

displayed here, this is just an example of all the possibilities available.

Page 10: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 10 of 30

3. General challenges

During the development of this Intellectual Output, we faced and therefore solved

different challenges, that we will now explain.

Technical challenges

One of the main challenges of the API (and therefore also a challenge of the library) was

how to design the API to make it efficient and easy to integrate, having clear endpoints and the

necessary information returned or the proper error messages when something went wrong.

For this, multiple sessions between IGP and ESN were planned in where the API was

designed and the endpoints needed were analyzed before starting with the development. There

were also more sessions during the development to check to perform tests, check the behaviour

of it and discover any potential issues that may appear during this phase, so we were able to do

modifications in order to fix them.

When the API was in the phase known as Beta (in software development known as the

phase were the product is completed but likely to contain a number of known or unknown bugs),

ESN started the design and development of the library as well. As we mentioned before when

we were defining what is an API and a library, the API is a mechanism used for fetching

information from a service online (like a website), but using it directly can be quite difficult and

not recommended. Because of this, the library was created, so now there were available some

simple functions for making all this fetch process as simple as possible for all the users without

knowing all the internal details or the complexity of the API behind.

The library was created in PHP, but any other language could have been used instead.

The main reason of choosing PHP has been also explained; it is the language in which some of

the platforms the partners own, like ErasmusIntern6, are developed, but also because PHP is

one of the most used coding languages nowadays (according to W3Techs7, 30% of the top 10

Million websites uses Wordpress, a Content Management System or CMS, that is written in

PHP), so is quite easy to create a library thanks to the multiple examples and tutorials

availables.

Another issue we had to face before the final version of the tools was where to test the

library. For that, we needed a development/test environment with the same data as in the

production environment where we could do all the requests before launching all the tools and

which behaviour is the same one as the production one. This step is important because during

the test phase of both, API and Library, lot of fake or useless data is created, and we don’t want

this information in the production server (because we have to delete everything later on and can

be available for the final users meanwhile).

6 https://erasmusintern.org 7 W3Techs report at https://w3techs.com/technologies/overview/content_management/all

Page 11: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 11 of 30

Technical challenges of the widget:

The widget we developed allows partners installing it to search the Transparency at

Work Database, see results and review companies from their own website. The challenge of

this consists in designing a user interface and user experience that is simple: users that never

heard of TAW need to understand what the widget can provide and how to use it.

In order to address this challenge we intensely worked with a UX team and interviewed

some of the partners using the tool.

“Partner acquisition” challenges

While there are technical challenges that can prevent the adoption of the IO3, that are

also other challenges related to habits and customs of intermediaries.

a) Competition with other “review solutions”

University careers services and other intermediaries sometimes have already starting

implementing a review system. They have developed review habits with their users and

are satisfied with it. It is thus considered time-consuming to recreate new habits.

CAPQI partners tried to reach out to potential university partners and we received

comments such as:

“However, their main concern was that students already have to fill out so many

different forms and steps that, at this point, they did not want to give them even

more things to do for their internships abroad.”

b) Fear that transparency could jeopardize their relationships with employers.

Intermediaires spend time building relationships with employers. They develop fruitful

relationships with repeated collaboration with some of them while collaborating only

once with others. Intermediaries already differentiate between good and bad employers

based on their working relationships. They are afraid that the differentiation brought by

full transparency could differentiate employers in an unusual way and put at risk the

relationship they have built with some.

c) Chicken and Egg problem

IO3 will only provide most of its value once the review database is big enough. Indeed

IO3 won’t initially create enough reviews (and thus value) to convince new

intermediaries to install IO3. It’s not strategic for new intermediaries to use IO3 when

there are no reviews. However,reviews can’t be produced largely enough if no

intermediary join in and make its young professional rate their employer. This is called

the chicken-and-egg problem.

To exemplify, CAPQI partners tried to reach out potential university partners and we

received comments such as:

Page 12: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 12 of 30

“Another concern for them was that at this point the number of reviews in the

database was still rather small and therefore there were some doubts about the

reliability of the reviews. I have tried to find at least one of our institutes willing to

do a testing phase/trial with you but unfortunately no one really dared to be the

first, I’m sorry about that”.

d) Relationships between career and IT services

Finally, CAPQI partners were confronted to cases where career services and university

staff are ready to implement IO3 but are stopped of doing so because of the reluctance

of the IT services. Reasons can range from lack of IT resources, different priorities or

poor personal relations.

Alternatives to API and widget (Transparency at Work accounts)

In order to overcome these challenges, CAPQI partners have developed a temporary

alternative to the API and widget: the Transparency at Work (further referred as TAW) platform.

Transparency at Work is a campaign website using IO2 to collect reviews in order to

build the IO3 database.

It also allows partners to test the IO2 and IO3 concept confidently and without IT development

on their side. Partners can request their Transparency at Work account and have their own

space hosted on TAW platform.

They can customize IO2, adding their visual identity, own questions and create an url

that is only visible to them. A video has been created to present them how partners can easily

customize the rating form: https://youtu.be/InJAxYO0ghI

They can then run experiments, access some basic data analytics on their internship

programme and even decide to publish or not the data. Though this last point is questionable in

relation with CAPQI objectives, it allows partners to measure the effect of a potential full

transparency.

Example of interface for “partner backend”

Page 13: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 13 of 30

Example of customization: https://www.transparencyatwork.org/partners/praxis/reviews/new

This solution has the advantage that there is no coding involved for partners. They can

experiment CAPQI tools while getting feedback on the quality of their internship programmes.

It is important to stress that this is a temporary alternative. It is used to build the database and

create a trust relationship between CAPQI and new partners; showing them the benefits of the

full IO3 solution.

4. Installation

In this section, we will explain how to install any of the options (widget or API) we have

made publicly available in a target website that wants to use the widget or the library to display

the ratings and allow its users to rate the internships quality. The first tool we will explain is the

widget and then, we will continue with the library that uses the API.

How to integrate the Widget in a website

As we have already mentioned, the widget option is the easiest tool to be integrated in a

target website and doesn’t need high specific web developer skills as well.

Page 14: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 14 of 30

The first step requires to have a valid username and password for the partners area at

the central website Transparency at Work8 that will give us access to the partners dashboard.

From there, we will see in the menu on the left part, a section called “Widget”. If we click

there, we will reach the page with the instructions to install & use the widget, divided in 3 steps.

The first step requires two simple actions. First, we are able to choose the language of

the text that will be used by default in the text displayed in the widget. The intermediaire should

choose one of the language availables in the list, as we can see in the next image.

Then, we have to copy the text that we have in the text area by selecting it or by clicking

in the button, and place it in the suggested area of the HTML page in the website, within the

<head></head> tags.

Usually, those are always in the file that handles the template or the header of the

website, but depending on how the website is done, it may be in a different file or even in

multiple files. The IT technician will need to find the proper file and then place that fragment of

code.

Once we have finished this step, the next one will give us a list of all the employers that

can be or have been rated so far in the platform. We have available a search box for the name

8 https://www.transparencyatwork.org/partners/

Page 15: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 15 of 30

and a filter selection for the country, so it is easier to find any company in the list, and each

employer has a unique widget code that it should be replaced later for the widget when the

page is rendered. Once we have found the desired company, we will see some basic

information about it: name and location country, general rating, internal ID and a button that will

give us the code to use in the partner page.

When we click on the button, the fragment of code needed will be automatically copied

to the clipboard with a nice message that will inform the user about this action. If we take a look

to that piece of code, will be something similar to the one we display now

When this code is added to the partner platform (in the code section we want to show

the widget), once the page is rendered in the browser by any website visitor, the widget will be

automatically loaded and the final result will be shown in the area where we have placed the last

piece of code, having exactly the same output as the image that is finally shown in this

document.

There is a variation in the render of the widget for those companies that may also have

any label in their profile, as we have mentioned in this document before. If this is the case, that

label will also appear within the text, as we have show as well before.

How to integrate the API PHP library in a website

As it has been already mentioned before this tool is slightly more advanced and powerful

than the snippet code given by the widget option. Therefore, this part will contain also more

technical explanations than the rest of the document.

The first step for using the library is common to the widget, we still need to have an

username and password that will give us access to the Dashboard in the Transparency At Work

website, but we don’t need to do login there at all.

Page 16: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 16 of 30

In the next step there are some requirements we need in order to install successfully the

library, but don’t worry if your server doesn’t have all, you can upload the final result to your

server of this step if you have a computer with the requirements where you can perform this

step. We will need basically a computer (Windows, Linux or Mac) with Command-line Interface

(or CLI ) and “Composer” installed. Composer9 is “a package manager for the PHP

programming language that provides a standard format for managing dependencies of PHP

software and required libraries.”

Once we have both in one computer (or if our server have both, directly into the server),

first we download the library that is available in the GitHub repository of ESN10 then, we open

the CLI program (Terminal, CMD, Powershell, Bash…), we navigate to the folder with the

downloaded files, and finally we run the install command just like we show in the image

After this, if the operation finishes without errors, we should have new folders created in

the library folder. That means that all the dependencies (other libraries) needed have been

downloaded and installed as well.

Now, we are ready to upload the library in our website (if we have used an external

computer, if we did this directly in the server, we are ready) and start editing the code.

To include the library, we have to load the main file of our library so we will have access

to all the functionalities. For that, we need the next line added where all the libraries are added

in any platform (but can be a bit different depending on the CMS or code the developer uses for

the website)

and with the next two lines we will be able to use our library in any platform.

If the integration with the library has been done properly, now we will be able to use all

the functions and functionalities included. We start by initializing the library and preparing it for

9 Composer website: https://getcomposer.org/ 10 URL of the repository: https://github.com/esn-org/capqiApi-library

Page 17: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 17 of 30

authenticate us with the same username and password as in the Dashboard. For this, we can

use this fragment of code:

As we can see, in the second function we need to write our credentials (username and

password), and in the response ($auth), we will have the result of the login. By doing:

Therefore, we are able to know if the login process was successful or not, depending if

this returns TRUE or FALSE. If is the first one, congratulations, you have been authenticated

and you are able to use the rest of the functions included in the library. On the contrary, if you

got FALSE, first check that the username and the password are valid ones and are written

properly (you can do login in the dashboard to verify them).

To finalize this part of the document, two more examples about how to use the library

are shown. First, we have to initialize the library by fetching the information (we will need to use

the $auth response obtained in the previous step as it contains all the relevant information

related to the authentication. By adding this fragment of code

we are able to create an $employers object and all the functionalities related to it. For example,

if we want to get a full list of all the employers and the information related to them, now we can

execute this fragment of code

and we will get them automatically. If, for example, we want to get the detailed information of an

employer, we can get it by specifying which one by their Identificator (is one of the values we

get always in all the responses). For example, by executing

we get the information related to this one.

This information, as we mentioned in previous parts of this document, is returned in raw

text format and needs to be manipulated a bit so we have a proper output displayed in the

Page 18: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 18 of 30

website as desired. We show in the next image for example how is a typical response after

executing the last example we have used before (for getting the info on the employer

‘internsgopro_be’)

The library contains have more functions available (like search, creation, etc…), we have

just used some of them for this document. All of them, with detailed examples, are explained in

the documentation that is available in the GitHub repository.

5. Documentation available

Within IT projects, it is common to have always any kind of documentation or user

manual available for the users and developers. Without any documentation, it can be quite

difficult to integrate any tool within a website, that’s why having a detailed documentation with

examples is very important and needed in any IT development. To help in the dissemination of

the API/widget, in the CAPQI project we have made available different manuals for the tools

(Intellectual Output 5) we have developed, and some of those we have partially mentioned in

previous chapters here.

Additionally, anyone can find all this information, code of examples available for the

widget, in the website of Transparency At Work already mentioned, once we have been logged

in with our username and password.

Then, for the developers, we have made available different documentation repositories.

Page 19: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 19 of 30

The first one is for the API and we can find it in the documentation website11. Here we

are going to find all the API endpoints available with their respective URL’s, examples about

how to request the information and what we get depending on whether we have done it properly

or not and even play with the simulator as if we were using the real API. This documentation will

be mainly used by the maintainers of the PHP library that has been created or by any other

developers that are interested in collaborating with the library or create new ones in different

languages. Also, the moment new features are added, or the API has any change, this page will

be updated according to the new changes.

Also, developers and webmasters have available the documentation available for the

PHP library in the GitHub repository already mentioned before. This library is Open Source,

meaning that also the code is public so anyone can copy, modify parts with possible errors or

add new features to it or to the documentation, but respecting the license used for the library.

We have followed part of the documentation available in the previous chapter, when we have

explained how to install the library in our website, but in this page12 we will find the full

documentation available, with all the options, functions and examples of the code, trying to

make it as simple and easy to follow by all the people.

Finally, we created a simple demo page13 that was used as an example for both tools.

This website simulates to be a portal where users could find internships (as we have mentioned,

it’s a demo site for displaying purpose and no more functionalities available). In this demo site

we have decided to display first a normal page with a couple of internships there (not real ones,

but with real data from the platform).

11 API documentation: https://transparencyatworkpartnersapi.docs.apiary.io/ 12 Library Documentation: https://github.com/esn-org/capqiApi-library/wiki 13 Demo page: http://ares.esn.org/~gorkaguerrero/capqidemo

Page 20: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 20 of 30

Then two extra pages that uses both tools created, the first with the widget and the

second one with the library integrated.

Page 21: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 21 of 30

The aim of this demo was to show how a website can be modified easily to display the

rating information and provide end users with some real examples of the widget/API usage,

including also the documentation related and used to create this demo page.

Page 22: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 22 of 30

6. Practical tests on real websites

Now we will explain how the Widger or the API have been implemented in different

platforms that already exists and offers different internships to their users.

ErasmusIntern

ErasmusIntern14 is the Internship’s platform of ESN. More than 6000 recruiters are

registered within the platform and constantly publishing internships (around 1400 internships are

currently available) for more than 80000 students registered but also to whoever visits the

platform.

Because of the amount of users and page impressions the platform has, we have

decided to implement the API instead of the Widget but even though this solution can have

some face some issues during the implementation phase. The main issue was the high amount

of requests the API could do from ErasmusIntern to TAW. Each time an internship is displayed

means an API request, and by showing a list of internships can be multiple requests too, so the

platform will be finally loaded after all the requests are done and the information is sended and

rendered. This can cause a) some delay in the load time of ErasmusIntern, b) huge

computational cost on the server of TAW and c) a high server-traffic cost as well.

14 https://erasmusintern.org

Page 23: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 23 of 30

In order to solve this, we decided to implement a cache system15 between the platform

and the API. What the cache system does in ErasmusIntern is to reduce the requests to the API

making faster the loading time of the platform. For this, we do some “cron jobs” (scheduled

operations in the server that performs automatically a series of pre-programmed tasks)

periodically (every 24 hours, but can be configured for shorter periods) that requests the

information from all the employers in the database. If the information has changed or there are

new recruiters, then we update or save this information in the cache system stored in the

ErasmusIntern server. Then, the request is done to this cache system instead of to the API.

Thanks to approach, we will be able to reduce drastically the number of requests from

an estimation more than 75.000 per day (based on the amount of page impressions and number

of internships visited) to less than 500.

In the next image we can see a fragment of the administration panel of the cache system

with the last time each field was updated by performing this operation and the possibility of

performing a manual synchronization of the information instead of waiting to the next cron job.

Another issue faced in the implementation of the API library in ErasmusIntern is related

with how Drupal16 (the Content Management System in which the platform is built) is created.

Drupal’s functionalities are extended via modules17 that are created by the community or by

ourselves, so we had to create a new one in order to accommodate the library from GitHub, the

cache system, and the internal management of our recruiters.

For that, we did many modifications in the background of the platform in order to extend

the functionality of existing modules, but also we created a new one that could support the new

ones the library needed, like storing the information for the cache system. Programming the API

library in PHP was an advantage as this is the language the modules are also programmed in,

so the integration of it in the module was quite easy. Then, we had to code all the interactions

15 More information about cache system on Wikipedia: https://en.wikipedia.org/wiki/Cache_(computing) 16 https://www.drupal.org/ 17 More info about modules on Wikipedia: https://en.wikipedia.org/wiki/Modular_programming

Page 24: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 24 of 30

between our data and the new data (i.e: match our recruiters with recruiters from the API,

submit new recruiters via the API, etc…), and also create new functionalities so all the

information is easily administered. In the next image we show for example if one recruiter has

already information of the TAW database matched with ours or not and the operations we can

perform.

The last issue was where to place the information within our internship pages. Although

there are many possibilities to be chosen, some or the areas were rejected because of the code

behind them or for other features that will be added in the future.

In the end, we decided to display our implementation of the widget in the menu bar

located in the middle of the page (where the “Profile” section is displayed in the last image) in

the internship page but also in the recruiter page as well. For this, we had to also modify and

update the existing code that renders this area.

During the creation of the demo website and the tutoria, we used the newest version of

Bootstrap18 (an open source toolkit for developing with HTML and CSS) available (v4.0) but in

ErasmusIntern we have an older version installed (v3.3.7) so we had to modify the initial code in

order to have an output similar to the original from the widget. After some modifications, we

managed to have the expected result placed in the desired location of the page. The next image

18 Bootstrap website: http://getbootstrap.com/

Page 25: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 25 of 30

shows a proposal of the implementation, meanwhile is decided which colours will be used

according to the Visual Identity of the platform within the different elements.

As we can see, we have a similar output as in the widget placed in the mentioned area.

We can see perfectly the label (if exists) of the employer and the general rating as well. If we

want to access to the full statistics, we can get them by placing the mouse over the “View

Statistics” badge and we will have a new element like the one in the next image.

Page 26: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 26 of 30

Praxis

Praxis19 is a virtual internship market offering internships for all study levels, from VET to

higher education. The platform was developed under an Erasmus Network project that was co-

funded by the Lifelong Learning Programme between 2011 and 2014. The platform is being

supported by a group of volunteers since then, including staff from former partners, staff from

institutions that joined the network at a later stage and young talents that did their internships in

Praxis and decided to keep on board to support it. The Praxis network, originally with 44

partners, currently has 142 partners from four continents.

The Praxis platform is being accessed from all over the world by students looking for an

internship opportunity and companies searching for students. The platform is available to all and

registration is only required when students want to apply to an offer. We have above 10.000

registered students and 16.000 applications to internship offers from approximately 800

registered providers.

Our core concerns when integrating TAW in Praxis were related to the keeping the

visual identity of Praxis and minimizing the traffic between Praxis and TAW. Both these

concerns are addressed by the integration possibilities that are available.

We are integrating TAW into Praxis using the API. Our approach required a few minor

changes in our database but we can now offer TAW to our users with a personalized look and

feel and a low traffic demand.

When students search for internships and their search results include offers from

providers that are already rated we exhibit a summary of its ranking in the search results page

as seen below.

From here students have access to a more comprehensive view of the company profile

and/or to the full profile from TAW.

19 www.praxisnetwork.eu

Page 27: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 27 of 30

Students have also direct access from Praxis to TAW. Through this feature they can

rank their internship, directly from Praxis, using a form that is tailored to suit Praxis visual

identity. More than the visual identity it is also possible to personalize the rating form in order to

include in particular aspects/questions you might be interested in.

Page 28: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 28 of 30

Other platforms

In the annex I, there is a list of potential partners that have been put in contact with the

CAPQI partners to install or use the widget/API developed in this intellectual output.

7. Conclusions and remarks about CAPQI IO3

It is tempting to think that once the API is built, results will come by themselves.

However, as first tests with the CAPQI partners have shown, just creating an API is not enough.

A complete strategy is required including documentation, sample code, flexible functionality,

parameters, developer support and co-marketing resources.

CAPQI partners believe that the process requires a lot of time to take off but once it has

been done, it will have evident results for a rating system capable to evolve along time.

To foster the acquisition of IO3, CAPQI partners are making recommendations for the

rest of the CAPQI project and beyond.

1. Developing a strong data-collection phase. In order to have a large database for IO3 to

thrive, efforts on communication, marketing need to be spent. For this reason, CAPQI

partners have developed the Transparency at Work campaign.

2. Starting small and going after low-hanging fruit. IO1 was very useful to identify pioneers

who would believe and see the potential of IO3 and accept to provide reviews to build

the first step of the IO3 database. These pioneers just want to access a small part of our

database.

3. Using and continually testing the API. One of the great strength of the project consortium

is that the solution developed have been used by project partners. By facing the same

challenges than other intermediaries we have been able to adapt the IO3 developed

tools to overcome them (such as TAW accounts).

4. Being a great partner and understanding the co-dependency of the relationship. The IO3

value depends largely on the usage of other intermediaries and universities. It is thus

essential to foster strong partnership outside the consortium to guarantee the success of

the CAPQI project.

Page 29: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 29 of 30

ANNEX 1 - Current partners interested to get IO3 solutions

Those are the organisations that we are in conversation with and the status updated on the

8/June/2018

Organisation Name Type Country Product Status

1 Abbott Company UK TAW account Using it

2 Adecco Company Switzerland TAW account Using it

3 La France s'engage

Association/Public Service

France TAW account in negotiation

4 Mladi + Youth Organisation

Slovenia TAW account IT dev. Needed

5 www.tenerifejobtraining.com

Job board Spain TAW account in negotiation

6 Universidad de Alcala

University Spain TAW account Using it

7 Smile Company France TAW account Using it

8 Siemens Company France TAW account in negotiation

9 Praxis Job board Portugal API Testing phase

10 ESN Youth Organisation

Belgium API Testing phase

11 ONISEP Youth Organisation

France Widget in negotiation

12 MIAGE Connection Youth Organisation

France Widget in negotiation

13 Inter Research University Germany API IT dev. Needed

14 LEONET University the Netherlands

TAW account in negotiation

15 La Fage Youth Organisation

France Widget in negotiation

16 European Youth Forum

Youth Organisation

Belgium Widget in negotiation

17 Instituto Politécnico University Portugal TAW account in negotiation

Page 30: Collective Awareness Platforms for Quality Internship Ref.: 2016 … · 2018. 6. 29. · developed an open source API and widget of the rating and labelling system (IO2) in order

Page 30 of 30

do Cávado e Ave

18 Science Po. University France TAW account in negotiation

19 Workspace Europe Job board Slovakia API in negotiation

20 Polytechnic Institute of Leiria

University Portugal TAW account in negotiation

21 European Student Placement Agency Ltd.

Job board UK API in negotiation

22 Polytechnic Institute of Coimbra

University Portugal TAW account in negotiation

23 Bonanza Company France TAW account in negotiation

24 HappyOffice Job board Hungary API IT dev. Needed

25 Ares Youth Organisation

France Widget in negotiation

26 Brussels Interns NGO

Youth Organisation

Belgium Widget in negotiation