SlideShare a Scribd company logo
1 of 86
Download to read offline
TWO (CONCRETE)
EXAMPLES OF 

HOW ESUP-PORTAIL
CONTRIBUTES TO OPEN
SOURCE SOFTWARE 

FOR HIGHER ED
ALAIN MAYEUR
FRÉDÉRIC DOOREMONT
MATHILDE GUÉRIN
#APEREO16
ELI5: HOW TO CONTRIBUTE TO
OPEN SOURCE?
INTRODUCTION
We had this great idea for a project a while back and
then...


... we finally got the go to start developing it!
And then we realized this solution may help others
with similar needs so why should we keep it for
ourselves?
Let’s share it openly for the whole world to enjoy!
1
We checked out your project...
... and well, we really liked it.
Actually, we liked it so much we decided to get our
hands dirty and make some improvements and fixes.
And since we think you (and others) may be
interested in these changes, what do you think
of merging (some of) our work with yours?
It may not be much but all (genuine) contributions
are welcomed, right?
2
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
LET’S GO FIND SOME BUGS!
Photograph by

Barta IV
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
EVER HEARD OF CHINGLISH?
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
Intended meaning:

|| “You are responsible forever for that which you tame”

— The fox in The Little Prince (A. St-Exupéry)
Actual meaning: 

|| “Chicken noodle soup”

— Um... Like some billions of people I guess?!
... OR OF PEOPLE GETTING RIDICULOUS TATTOOS?
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
GOOGLE TRANSLATE IS NOT PERFECT 

BUT IT USUALLY DOES A PRETTY GOOD JOB
GOOGLE TRANSLATE EST PAS PARFAIT, 

MAIS IL LE FAIT HABITUELLEMENT UN ASSEZ BON TRAVAIL
N’
GÉNÉRALEMENT
Actual translation

by Google Translate
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
‣ Documentation
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
‣ Documentation
‣ UI/UX/Graphic design
RULE #1: OF COURSE USER-FRIENDLINESS MATTERS…
RULE #2: ... BUT SO DOES ACCESSIBILITY!
RULE #3: OH COME ON, GLOSSY BUTTONS ARE SO LAST SEASON!
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
Photograph by

M. Guerin
‣ Tests
‣ Translation
‣ Documentation
‣ Graphic/UI/UX design
‣ Ideas & inspiration
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
‣ Documentation
‣ Graphic/UI/UX design
‣ Ideas & inspiration
‣ Community efforts
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
‣ Tests
‣ Translation
‣ Documentation
‣ Graphic/UI/UX design
‣ Ideas & inspiration
‣ Community efforts
‣ Fundraising
Hey, I’m no hardcore programmer but I’d like to 

get involved in your project and help you out with...
3+
A FRENCH INITIATIVE DEDICATED
TO OPEN SOURCE FOR HIGHER ED
ESUP-PORTAIL
THE 5 WS: WHO? WHERE? WHEN? WHAT? WHY?
▸ Community of French Higher Ed institutions (~70 members)
▸ Created in 2002 (restructuring in 2007)
▸ Supported by the French Ministry of Higher Ed and Research
▸ Funding/Promoting collaboration on open source projects
▸ Facilitate learning and campus life for students
▸ Provide useful digital tools for staff and professors
▸ Pool/Share development of digital services
▸ Design, plan and deliver the next generation of portals,
collaborative platforms, mobile services,...
ESUP-PORTAIL
CORE PRINCIPLES
Illustration by

Jurgen Appelo
Illustration by

Nicole C. Engard
Illustration by

Missy Schmidt
ESUP-PORTAIL
WIDE RANGE OF PROJECTS
ENT (uPortal)
Portal of services
I

N

F

O 

R

M

A

T

I

O

N
S

Y

S

T

E

M
Collaborative
tools
OAE
Filesender
“Business”
applications
DematEC
PStage, eCandidat...
Agimus-NG
ECM
Nuxeo
Digital Desktop
Zimbra, Sogo, Horde, ...
Bedework, UniTime
E-Learning

plateforms
Moodle, Sakai
Pod
ESUP-PORTAIL
ORGANIZATION & GOVERNANCE
STRATEGIC BOARD
TECHNICAL COORDINATION TEAM
WORKING GROUP
MEMBER MEMBER M M …
WG …
10 working groups
| Authentication | Agenda/Mail | Development | ECM |

| Groups | Mobility | OAE | Portal | Statistics | Videos |
10 people
(incl. Executive Director: Alain Mayeur)
from 10 different institutions
13 people
from 10 different institutions
Countless community people
from 70(ish) member institutions
ESUP-PORTAIL
ESUP-PORTAIL: THE “SISTER” ORGANIZATION OF APEREO
▸ Memorandum of Understanding (ongoing since Oct. 2012)
▸ Promote Apereo in French-speaking countries

=> Joint conferences (Paris, Montréal), articles,...
▸ Take part in Apereo’s strategic decisions

=> Board of Directors, incubation process,...
▸ Contribute actively to Apereo projects...

=> source code (fixes/improvements), i18n work,...
▸ ... especially to OAE

=> Financial contribution, French translation,...
AGIMUS-NG
EXAMPLE #1
▸ Well, everyone!
▸ Numbers don’t lie
▸ They are worth a thousand words...
▸ They can help us make (better) decisions
AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
▸ Study case: “James, the guy next door”
AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
Weight(kg)
50
60
70
80
90
100
110
JUL14
AUG14
SEP14
OCT14
NOV14
DEC14
JAN15
FEB15
MAR15
APR15
MAY15
JUN15
JUL15
AUG15
SEP15
OCT15
NOV15
DEC15
JAN16
FEB16
MAR16
APR16
MAY16
Started living

on his own
Got a

girlfriend
Started diet + working

out at the gym
Broke up with

said girlfriend
Vacation time!
Back to gym 3 times

a week + running
Work overload

= no spare time
▸ Study case: “James, the guy next door”
AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
Weight(kg)
50
60
70
80
90
100
110
JUL14
AUG14
SEP14
OCT14
NOV14
DEC14
JAN15
FEB15
MAR15
APR15
MAY15
JUN15
JUL15
AUG15
SEP15
OCT15
NOV15
DEC15
JAN16
FEB16
MAR16
APR16
MAY16
Started living

on his own
Got a

girlfriend
Started diet + working

out at the gym
Broke up with

said girlfriend
Vacation time!
Back to gym 3 times

a week + running
Work overload

= no spare time
- ADVICE TO JAMES -
YOU’RE ON LEAVE, SO WHAT?
STOP BEING LAZY... GO HIT THE GYM!
▸ Study case: “Kim Kardashian West” 

AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
12.01.201214.11.201408.28.201511.13.201502.24.201603.07.2016
0K 52K 104K 156K 208K 260K
RT
Likes
2012.12.01 |

We can all make a difference today, help educate people & together
strive for an AIDS free generation http://bit.ly/U8hAes #WorldAIDSDay
690 236
2014.11.14 |

1st hot chocolate! #AuntiesSpoilingHer
14K 40K
2015.08.28 |

I miss short hair
4.9K 27K
Most trending hashtag

at the time: #PrayForParis
2015.11.13 |

WEAR ALL WHITE http://bit.ly/1QmobUZ
1.9K 7.6K
2016.02.24 |

Thank you @MichelleObama and #OpeneBooks for giving
children access to books they need to learn and dream!
810 3.9K 2016.03.07 |

When you’re like I have nothing to wear LOL
(Almost)

Nude

pic
133.7K 252K
▸ Study case: “Kim Kardashian West” 

AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
12.01.201214.11.201408.28.201511.13.201502.24.201603.07.2016
0K 52K 104K 156K 208K 260K
RT
Likes
2012.12.01 |

We can all make a difference today, help educate people & together
strive for an AIDS free generation http://bit.ly/U8hAes #WorldAIDSDay
690 236
2014.11.14 |

1st hot chocolate! #AuntiesSpoilingHer
14K 40K
2015.08.28 |

I miss short hair
4.9K 27K
Most trending hashtag

at the time: #PrayForParis
2015.11.13 |

WEAR ALL WHITE http://bit.ly/1QmobUZ
1.9K 7.6K
2016.02.24 |

Thank you @MichelleObama and #OpeneBooks for giving
children access to books they need to learn and dream!
810 3.9K 2016.03.07 |

When you’re like I have nothing to wear LOL
(Almost)

Nude

pic
133.7K 252K
- ADVICE TO KIM -
IF YOU WANT TO FEEL THE LOVE FROM YOUR FANS,

STICK TO WHAT REALLY MATTERS: 

FASHION, HAIRCUT,... AND SUN TANS!

AND DON’T FORGET TO ADD PICTURES/SELFIES !!*
* Additional recommandation: The less clothes, the better!
▸ Study case: “Apple Inc.”
AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
0M
9M
18M
28M
37M
46M
55M
Q4 12 Q1 13 Q2 13 Q3 13 Q4 13 Q1 14 Q2 14 Q3 14 Q4 14 Q1 15 Q2 15 Q3 15 Q4 15 Q1 16 Q2 16
2013.09.20

iPhone 5S/5C
2013.09.20

iPhone 5S/5C
2014.09.19

iPhone 6/6+
2015.09.25

iPhone 6S
▸ Study case: “Apple Inc.”
AGIMUS-NG
STATISTICS? WHO CARES ABOUT STATISTICS?!
0M
9M
18M
28M
37M
46M
55M
Q4 12 Q1 13 Q2 13 Q3 13 Q4 13 Q1 14 Q2 14 Q3 14 Q4 14 Q1 15 Q2 15 Q3 15 Q4 15 Q1 16 Q2 16
2013.09.20

iPhone 5S/5C
2013.09.20

iPhone 5S/5C
2014.09.19

iPhone 6/6+
2015.09.25

iPhone 6S
- ADVICE TO APPLE FANBOYS -
BE PREPARED: YOUR SHINY IPHONE 6S WILL BE OUTDATED IN 4 MONTHS

(EXPECTED) RELEASE DATE OF YOUR NEXT TOY: SEPTEMBER 2016
- ADVICE TO APPLE EXECUTIVES -
JANUARY ’17 SEEMS LIKE A GOOD TIME TO

BUY A BRAND NEW LAMBORGHINI
OR TAKE SOME TIME OFF*
* Additional recommandation:

Beaches in Panama do not live up to the hype. The ones in Bahamas are amazing though!
AGIMUS-NG
OBJECTIVES
▸ Technically speaking:

Generate & aggregate usage indicators/metrics
▸ Underlying goals:
▸ Improve service quality level for end-users
▸ Produce reports/dashboard to help IT governance
AGIMUS-NG
PROJECT TIMELINE
AGIMUS-NGAGIMUS (first of its name)
2007 2014 20162010
Development

by a private company
Deployment/Tests

in institutions
Development/Tests/Deployment

by institutions
Project coordinator: Khedidja Dib (MENESR)
Tech. coordinator: Julien Marchal

(Univ. de Lorraine)
▸ Open source is a must
▸ Must be non-intrusive, adaptive and customizable
▸ Usable/Linkable with heterogeneous systems
▸ Anonymous tracking
▸ Centralized data warehouse
AGIMUS-NG
KEY PRINCIPLES
AGIMUS-NG
Apps/Services Logfiles
Database/LDAP Directory
... ... ...
WHAT WE WANT
WHAT WE HAVE
AGIMUS-NG
E.L.K. FOR THE WIN!
lasticsearch
ogstash
ibana
AGIMUS-NG
Logfiles
Database

LDAPDirectory
...
> service

> action
> user-agent
> date/time
> location
> profile
> edu enrollment
> relevant/enriched

lines > query/extract data
AGIMUS-NG
John Doe uPortal
Moodle
AGIMUS-NG
John Doe
?
uPortal
Moodle
AGIMUS-NG
John Doe
?
uPortal
Moodle
AGIMUS-NG
John Doe
TRACEME
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01
OK
uPortal
Moodle
TRACE-YBu4Jvn-
S7WZlWYNplWao
DATE: 29/Apr/2016:17:26:54 +0100
IP: 51.255.201.X
URI: /Login?ticket=ST-1857-q4G4eWz
REFERER: https://www.google.com/#q=myportal+uniU
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACE: TRACE_YBu4Jvn-S7WZlWYNplWao
AGIMUS-NG
John Doe
OK
uPortal
Moodle
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01
TRACE-YBu4Jvn-
S7WZlWYNplWao
DATE:29/Apr/2016:17:28:20 +0100
IP: 51.255.201.X
URI: /p/my-courses/max
REFERER: https://myportal.uni-u.edu/Login
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
AGIMUS-NG
John Doe
DATE: 29/Apr/2016:17:29:11 +0100
IP: 51.255.201.X
URI: /login.php?ticket= ST-1859-r7P9sKw
REFERER: https://myportal.uni-u.edu/
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACE: TRACE-YBu4Jvn-S7WZlWYNplWao
OK
uPortal
Moodle
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01
TRACE-YBu4Jvn-
S7WZlWYNplWao
DATE: 29/Apr/2016:17:26:54 +0100
IP: 51.255.201.X
URI: /Login?ticket=ST-1857-q4G4eWz
REFERER: https://www.google.com/#q=myportal+uniU
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACE: TRACE_YBu4Jvn-S7WZlWYNplWao
DATE:29/Apr/2016:17:28:20 +0100
IP: 51.255.201.X
URI: /p/my-courses/max
REFERER: https://myportal.uni-u.edu/Login
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
AGIMUS-NG
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01
{
"_type": "trace",
"cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao",
"ldap_uid": "jdoe01"
}
AGIMUS-NG
{
"_type": "ldap",
"uid": ["jdoe01"],
"eduPersonAffiliation": ["student", “member"],
"eduPersonPrimaryAffiliation": ["student"],
"supannAffectation": ["M1 Computer Sciences"],
"customAttribute": ["whateverYouNeedToKnow"]
}
uid=jdoe01
eduPersonAffiliation=student, member
eduPersonPrimaryAffiliation=student
supannAffectation=M1 Computer Sciences
customAttribute=whateverYouNeedToKnow
AGIMUS-NG
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
1) Extract next useful line (= TRACEMEd line)
AGIMUS-NG
2) Get info from USER-AGENT

> os: Mac OS X 10.10

> os_name: Mac OS X

> device: Computer

> browser: Firefox
1) Extract next useful line (= TRACEMEd line)
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
AGIMUS-NG
2) Get info from USER-AGENT
3) Determine geolocation from IP

> latitude: 50.69421005249

> longitude: 3.1745600700378
1) Extract next useful line (= TRACEMEd line)
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
AGIMUS-NG
1) Extract next useful line (= TRACEMEd line)
2) Get info from USER-AGENT
3) Determine geolocation from IP
4) Convert TRACEME tracker
{
"_type": "trace",
"cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao",
"ldap_uid": "jdoe01"
}
TRACE-YBu4Jvn-S7WZlWYNplWao ?
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
AGIMUS-NG
1) Extract next useful line (= TRACEMEd line)
2) Get info from USER-AGENT
3) Determine geolocation from IP
4) Convert TRACEME tracker
{
"_type": "trace",
"cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao",
"ldap_uid": "jdoe01"
}
jdoe01
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
AGIMUS-NG
2) Get info from USER-AGENT
3) Determine geolocation from IP
4) Convert TRACEME tracker
5) Retrieve data about user jdoe01

{
"_type": "ldap",
"uid": [“jdoe01"],
"eduPersonAffiliation": ["student", “member"],
"eduPersonPrimaryAffiliation": ["student"],
"supannAffectation": ["M1 Computer Sciences”],
"customAttribute": ["whateverYouNeedToKnow"]
}
jdoe01 ?
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
1) Extract next useful line (= TRACEMEd line)
AGIMUS-NG
2) Get info from USER-AGENT
3) Determine geolocation from IP
4) Convert TRACEME tracker
5) Retrieve data about user jdoe01
{
"_type": "ldap",
"uid": [“jdoe01"],
"eduPersonAffiliation": ["student", “member"],
"eduPersonPrimaryAffiliation": ["student"],
"supannAffectation": ["M1 Computer Sciences”],
"customAttribute": ["whateverYouNeedToKnow"]
}
"eduPersonAffiliation": ["student", "member"],

"eduPersonPrimaryAffiliation": ["student"],

"supannAffectation": ["M1 Computer Sciences"],

"customAttribute": ["whateverYouNeedToKnow"]
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
1) Extract next useful line (= TRACEMEd line)
AGIMUS-NG
2) Get info from USER-AGENT
3) Determine geolocation from IP
4) Convert TRACEME tracker
6) Combine data & anonymize entry

> jdoe => f8ETRJR3trafmLsLYsn69szhK6SG30
5) Retrieve data about user jdoe01
{
"_type": "moodle",
"clientip": "51.255.201.X",
"request": "/course/view.php?id=4653",
"referer": "https://lms.uni-u.edu/my",

"os": "Mac OS X 10.10",

"os_name": "Mac OS X",

"device": "Computer",

"browser": "Firefox",

"geoip": {"location": [3.175, 50.694]},
"uid": "f8ETRJR3trafmLsLYsn69szhK6SG30",
"eduPersonAffiliation": ["student", "member"],
"eduPersonPrimaryAffiliation": ["student"],
"supannAffectation": ["M1 Computer Sciences”],
"customAttribute": ["whateverYouNeedToKnow"]
}
DATE:29/Apr/2016:17:34:31 +0100
IP: 51.255.201.X
URI: /course/view.php?id=4653
REFERER: https://lms.uni-u.edu/my
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)…
TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
Moodle
1) Extract next useful line (= TRACEMEd line)
AGIMUS-NG
{ "_type": “uportal", … },
{ "_type": “moodle", … },
{ "_type": “uportal", … },
{ "_type": “myapp", … },
{ "_type": “myapp2", … },
...
1 index per daylogstash-YYYY.MM.DD
= composed of different “types” of records

(moodle, uportal, myapp,…)
{ "_type": “uportal", … },
{ "_type": “moodle", … },
{ "_type": “uportal", … },
{ "_type": “myapp", … },
{ "_type": “myapp2", … },
...
{ "_type": "uportal", ... },
{ "_type": "uportal", ... },
{ "_type": "myapp", ... },
{ "_type": "moodle", ... },
{ "_type": "moodle", ... },
{ "_type": "uportal", ... },
{ "_type": "myapp", ... },
{ "_type": "uportal", ... },
...
GET logstash-*/_search

{

"query":{ "filtered":{ "query":{ "query_string":{ "query": "_type:uportal" }}}}, 

"aggs":{ "2":{ "field": "os_name.raw", "size": 10, "order":{ "_count": "desc"}}},

"size": 0

}
AGIMUS-NG
{ "_type": “uportal", … },
{ "_type": “moodle", … },
{ "_type": “uportal", … },
{ "_type": “myapp", … },
{ "_type": “myapp2", … },
...
1 index per daylogstash-YYYY.MM.DD
= composed of different “types” of records

(moodle, uportal, myapp,…)
{ "_type": “uportal", … },
{ "_type": “moodle", … },
{ "_type": “uportal", … },
{ "_type": “myapp", … },
{ "_type": “myapp2", … },
...
{ "_type": "uportal", ... },
{ "_type": "uportal", ... },
{ "_type": "myapp", ... },
{ "_type": "moodle", ... },
{ "_type": "moodle", ... },
{ "_type": "uportal", ... },
{ "_type": "myapp", ... },
{ "_type": "uportal", ... },
...
{

"hits":{ "total": 59081020 },

"aggregations":{ "2":{ "buckets": [

{"key": "Windows 7", "doc_count": 22158014},

{"key": "Mac OS X", "doc_count": 7512285},

{"key": "Android", "doc_count": 4758202},

{"key": "iOS", "doc_count": 4643627},

{"key": "Windows 8", "doc_count": 1549201},

...

...
iOS
Android
Win 8
Mac OS X
Win 7
▸ Production ready: already deployed in several institutions
▸ Technical documentation available
▸ Examples of Logstash “templates” are provided
▸ CAS, Shibboleth, Moodle, uPortal, ldap,...
▸ Several examples of Kibana dashboards/charts available
▸ Data visualization for CAS, uPortal, ldap, Moodle,...
AGIMUS-NG
CURRENT PROJECT STATUS
https://github.com/EsupPortail/agimus-ng
▸ University of Lorraine: about 60k users (57k students)
▸ Agimus-NG deployed since Dec. 2014:
▸ 3 VMs (4 vCPU / 16Go RAM each)
▸ Disk space used : 250Go
AGIMUS-NG
AGIMUS-NG IN PRACTICE
Owncloud
52M
CAS
65M
Moodle
97M
Others
9M
Mailing service
98M
uPortal
325M
650 Millions of entries

(“enriched” lines from logfiles)
=
AGIMUS-NG
PRODUCED STATISTICS (EXAMPLES)
Time period Nb of courses Nb of uniq. users Nb of connections
Most commonly-used modules Distribution of courses by collegium
▸ Dashboard from Moodle data (1/2)
▸ Dashboard from Moodle data (1/2)
AGIMUS-NG
PRODUCED STATISTICS (EXAMPLES)
Consultation of courses through time by collegium
Distribution of users by network Number of visits through time
▸ Dashboard from CAS data (1/2)
AGIMUS-NG
PRODUCED STATISTICS (EXAMPLES)
Distribution of users by browser
Most commonly-used services by user profile (top 10)
Distribution of users by network
▸ Dashboard from CAS data (2/2)
AGIMUS-NG
PRODUCED STATISTICS (EXAMPLES)
Evolution of services access through time by profileDistribution of users by profile
▸ Carry out evolutionary & corrective maintenance
▸ Check performances in the long run => aggregation?
▸ Provide new templates to ingest other logfiles
▸ Pydio, OAE, Sakai, Nuxeo, Pod, etc.
▸ Organize workshops for the community members
▸ Create demo VM
▸ Add user management to grant/limit access to metrics/graphs/dashboards
▸ ...
AGIMUS-NG
NEXT STEP(S)
▸ Different goals
▸ Anonymous vs user-centered monitoring
▸ Reporting metrics only vs Predictive algorithms
AGIMUS-NG
AGIMUS-NG VS LEARNING ANALYTICS
OAE
EXAMPLE #2
OAE IN FRANCE
KEY DATES
▸ Feb. 2012: Beginning of the Nakamura translation
▸ June 2012: Creation of the ESUP-OAE WG
OAE IN FRANCE
KEY DATES
▸ Feb. 2012: Beginning of the Nakamura translation
▸ June 2012: Creation of the ESUP-OAE WG
▸ Objectives:
✦ Maintain the French version
✦ Share feedbacks with other partners (conference, mailing list,…)
✦ Define a strategy for implementing OAE in France, considering
institutions’ needs and requirements
✦ Develop widgets
OAE IN FRANCE
KEY DATES
▸ Feb. 2012: Beginning of the Nakamura translation
▸ June 2012: Creation of the ESUP-OAE WG
▸ April 2014 : Launch of the pilot phase
OAE ADOPTION IS GROWING
INSTITUTIONS ARE DEFINITELY INTERESTED!
List of Tenants
University of Lorraine
University of Valenciennes
University of La Rochelle
Jean Monnet University (St-Etienne)
University of Littoral
University of Franche-Comté
University of Maine
University of Lille 3
Esup-Portail
GIPRecia
INSA-Lyon
Promising Project
University of Burgundy
University of Rennes1
Netocentre
OAE ADOPTION IS GROWING
USERS (ALL TENANTS)
Apr 14
June 14
Aug 4
Oct 14
Dec 14
Feb 15
Apr 15
Jun 15
Aug 15
Oct 15
Dec 15
Feb 16
Apr 16
0 1 000 2 000 3 000 4 000 5 000 6 000
127
1056
1713
3257
4372
5529
548
OAE ADOPTION IS GROWING
GROUPS (ALL TENANTS)
Sept 14
Nov 14
Jan 15
Mar 15
May 15
July 15
Sept 15
Nov 15
Jan 16
Mar 16
0 260 520 780 1040 1300
159
359
601
800
966
1106
1219
490
HOW OAE IS
USED IN FRANCE
OAE
OAE IN FRANCE
VARIOUS USE CASES
▸ National working groups
▸ Regional collaboration
▸ Institutional working groups
▸ Specific strategic groups/projects

=> Multi-service cards
=> COMUE WG
=> IT governance
=> Sorbonne Universités


OAE IN FRANCE
VARIOUS USE CASES... ALSO IN EDUCATIONAL COLLABORATION
▸ Collaboration for collective projects
▸ Working groups for tutored/educational projects
▸ Sharing of course notes, presentations,…
OAE IN FRANCE
OVERALL FEEDBACK
SIMPLE PRODUCTIVE
EFFICIENT USER-FRIENDLY
INTUITIVE COMPREHENSIVE
OAE IN FRANCE
OUR VERY OWN SANDBOX!
DEVELOPMENT
OAE
OAE: DEVELOPMENT
LOODLE
▸ Loodle? What the…?!
LOODLE
server
NodeJS
Cassandra
OAE

server
Loodle widget
API Rest
OAE: DEVELOPMENT
LOODLE
▸ Screenshots
OAE: DEVELOPMENT
LOODLE
▸ Screenshots
OAE: DEVELOPMENT
LOODLE
▸ Screenshots
OAE: DEVELOPMENT
DEVELOPEMENT
▸ Screenshots
OAE: DEVELOPMENT
WORK IN PROGRESS
▸ Web Conference tools integration (widgets)
OAE: DEVELOPMENT
WORK IN PROGRESS
▸ Web Conference tools integration (widgets)
▸ open source project
▸ enabled/disabled tenant by tenant
OAE: DEVELOPMENT
WHAT’S NEXT?
▸ “How to master mouse clicking?” by Frederic Dooremont
OAE: DEVELOPMENT
WHAT’S NEXT?
▸ Time to invest in...
OAE: DEVELOPMENT
WHAT’S NEXT?
▸ Time to invest in back-end tools to
▸ merge accounts
▸ create groups using CSV import
▸ remove accounts with automatic tasks
OAE IN FRANCE
ROADMAP
▸Development
▸ Admin tools, widgets,…
▸ Tutorial videos
▸ New tenants
NEVER FORGET: SHARING IS CARING!
THANK YOU
FOR YOUR ATTENTION
Photographby

M.Guerin

More Related Content

Similar to How ESUP-Portail contributes to open source software for higher ed

Building Learning Experiences (IxDA 2015 Education Summit)
Building Learning Experiences (IxDA 2015 Education Summit)Building Learning Experiences (IxDA 2015 Education Summit)
Building Learning Experiences (IxDA 2015 Education Summit)Andre Plaut
 
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)Tuuli Aalto-Nyyssönen
 
Agile basic introduction
Agile   basic introductionAgile   basic introduction
Agile basic introductionPreparationInfo
 
Hype research session 17/03/2015
Hype research session 17/03/2015Hype research session 17/03/2015
Hype research session 17/03/2015Stephanie1301
 
SF Service Jam Day 1 Deck
SF Service Jam Day 1 DeckSF Service Jam Day 1 Deck
SF Service Jam Day 1 DeckIzac Ross
 
Is it done yet? (How about now?)
Is it done yet? (How about now?)Is it done yet? (How about now?)
Is it done yet? (How about now?)Michele Playfair
 
Stitching Together a UX Strategy for Wearables and the Mobile Mainframe
Stitching Together a UX Strategy for Wearables and the Mobile MainframeStitching Together a UX Strategy for Wearables and the Mobile Mainframe
Stitching Together a UX Strategy for Wearables and the Mobile MainframePhilip Likens
 
Webinar: How to build a digital culture in higher education
Webinar: How to build a digital culture in higher educationWebinar: How to build a digital culture in higher education
Webinar: How to build a digital culture in higher educationPrecedent
 
The Changing Role of Release Engineering in a DevOps World
The Changing Role of Release Engineering in a DevOps WorldThe Changing Role of Release Engineering in a DevOps World
The Changing Role of Release Engineering in a DevOps WorldPerforce
 
How i hack my education
How i hack my educationHow i hack my education
How i hack my educationYves Hanoulle
 
Developing for the Unknown
Developing for the UnknownDeveloping for the Unknown
Developing for the Unknownnolly00
 
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)Matthew Philip
 
Tactic matters - or why we need a digital apprenticeship model
Tactic matters - or why we need a digital apprenticeship modelTactic matters - or why we need a digital apprenticeship model
Tactic matters - or why we need a digital apprenticeship modelNicole Simon
 
UX Bootcamp Fall 2015 General Assembly
UX Bootcamp Fall 2015 General AssemblyUX Bootcamp Fall 2015 General Assembly
UX Bootcamp Fall 2015 General AssemblyJacklyn Burgan
 
How to integrate technology into your classroom
How to integrate technology into your classroomHow to integrate technology into your classroom
How to integrate technology into your classroomtnjestes
 
How to integrate technology into your classroom
How to integrate technology into your classroomHow to integrate technology into your classroom
How to integrate technology into your classroomtnjestes
 

Similar to How ESUP-Portail contributes to open source software for higher ed (20)

Building Learning Experiences (IxDA 2015 Education Summit)
Building Learning Experiences (IxDA 2015 Education Summit)Building Learning Experiences (IxDA 2015 Education Summit)
Building Learning Experiences (IxDA 2015 Education Summit)
 
SXSW 2015
SXSW 2015SXSW 2015
SXSW 2015
 
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)
Using personas in service design - Scotch on the Rocks 2013 (7/6/2013)
 
Social Media Plan
Social Media PlanSocial Media Plan
Social Media Plan
 
Agile basic introduction
Agile   basic introductionAgile   basic introduction
Agile basic introduction
 
Hype research session 17/03/2015
Hype research session 17/03/2015Hype research session 17/03/2015
Hype research session 17/03/2015
 
SF Service Jam Day 1 Deck
SF Service Jam Day 1 DeckSF Service Jam Day 1 Deck
SF Service Jam Day 1 Deck
 
Man&symbolspreso
Man&symbolspresoMan&symbolspreso
Man&symbolspreso
 
Is it done yet? (How about now?)
Is it done yet? (How about now?)Is it done yet? (How about now?)
Is it done yet? (How about now?)
 
Stitching Together a UX Strategy for Wearables and the Mobile Mainframe
Stitching Together a UX Strategy for Wearables and the Mobile MainframeStitching Together a UX Strategy for Wearables and the Mobile Mainframe
Stitching Together a UX Strategy for Wearables and the Mobile Mainframe
 
Webinar: How to build a digital culture in higher education
Webinar: How to build a digital culture in higher educationWebinar: How to build a digital culture in higher education
Webinar: How to build a digital culture in higher education
 
The Changing Role of Release Engineering in a DevOps World
The Changing Role of Release Engineering in a DevOps WorldThe Changing Role of Release Engineering in a DevOps World
The Changing Role of Release Engineering in a DevOps World
 
How i hack my education
How i hack my educationHow i hack my education
How i hack my education
 
Developing for the Unknown
Developing for the UnknownDeveloping for the Unknown
Developing for the Unknown
 
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
 
Tactic matters - or why we need a digital apprenticeship model
Tactic matters - or why we need a digital apprenticeship modelTactic matters - or why we need a digital apprenticeship model
Tactic matters - or why we need a digital apprenticeship model
 
UX Bootcamp Fall 2015 General Assembly
UX Bootcamp Fall 2015 General AssemblyUX Bootcamp Fall 2015 General Assembly
UX Bootcamp Fall 2015 General Assembly
 
Redefining content with Infographics
Redefining content with InfographicsRedefining content with Infographics
Redefining content with Infographics
 
How to integrate technology into your classroom
How to integrate technology into your classroomHow to integrate technology into your classroom
How to integrate technology into your classroom
 
How to integrate technology into your classroom
How to integrate technology into your classroomHow to integrate technology into your classroom
How to integrate technology into your classroom
 

Recently uploaded

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Recently uploaded (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

How ESUP-Portail contributes to open source software for higher ed

  • 1. TWO (CONCRETE) EXAMPLES OF 
 HOW ESUP-PORTAIL CONTRIBUTES TO OPEN SOURCE SOFTWARE 
 FOR HIGHER ED ALAIN MAYEUR FRÉDÉRIC DOOREMONT MATHILDE GUÉRIN #APEREO16
  • 2. ELI5: HOW TO CONTRIBUTE TO OPEN SOURCE? INTRODUCTION
  • 3. We had this great idea for a project a while back and then... 
 ... we finally got the go to start developing it! And then we realized this solution may help others with similar needs so why should we keep it for ourselves? Let’s share it openly for the whole world to enjoy! 1
  • 4. We checked out your project... ... and well, we really liked it. Actually, we liked it so much we decided to get our hands dirty and make some improvements and fixes. And since we think you (and others) may be interested in these changes, what do you think of merging (some of) our work with yours? It may not be much but all (genuine) contributions are welcomed, right? 2
  • 5. Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 6. ‣ Tests LET’S GO FIND SOME BUGS! Photograph by
 Barta IV Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 7. ‣ Tests ‣ Translation EVER HEARD OF CHINGLISH? Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 8. ‣ Tests ‣ Translation Intended meaning:
 || “You are responsible forever for that which you tame”
 — The fox in The Little Prince (A. St-Exupéry) Actual meaning: 
 || “Chicken noodle soup”
 — Um... Like some billions of people I guess?! ... OR OF PEOPLE GETTING RIDICULOUS TATTOOS? Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 9. ‣ Tests ‣ Translation GOOGLE TRANSLATE IS NOT PERFECT 
 BUT IT USUALLY DOES A PRETTY GOOD JOB GOOGLE TRANSLATE EST PAS PARFAIT, 
 MAIS IL LE FAIT HABITUELLEMENT UN ASSEZ BON TRAVAIL N’ GÉNÉRALEMENT Actual translation
 by Google Translate Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 10. ‣ Tests ‣ Translation ‣ Documentation Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 11. ‣ Tests ‣ Translation ‣ Documentation ‣ UI/UX/Graphic design RULE #1: OF COURSE USER-FRIENDLINESS MATTERS… RULE #2: ... BUT SO DOES ACCESSIBILITY! RULE #3: OH COME ON, GLOSSY BUTTONS ARE SO LAST SEASON! Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+ Photograph by
 M. Guerin
  • 12. ‣ Tests ‣ Translation ‣ Documentation ‣ Graphic/UI/UX design ‣ Ideas & inspiration Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 13. ‣ Tests ‣ Translation ‣ Documentation ‣ Graphic/UI/UX design ‣ Ideas & inspiration ‣ Community efforts Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 14. ‣ Tests ‣ Translation ‣ Documentation ‣ Graphic/UI/UX design ‣ Ideas & inspiration ‣ Community efforts ‣ Fundraising Hey, I’m no hardcore programmer but I’d like to 
 get involved in your project and help you out with... 3+
  • 15. A FRENCH INITIATIVE DEDICATED TO OPEN SOURCE FOR HIGHER ED
  • 16. ESUP-PORTAIL THE 5 WS: WHO? WHERE? WHEN? WHAT? WHY? ▸ Community of French Higher Ed institutions (~70 members) ▸ Created in 2002 (restructuring in 2007) ▸ Supported by the French Ministry of Higher Ed and Research ▸ Funding/Promoting collaboration on open source projects ▸ Facilitate learning and campus life for students ▸ Provide useful digital tools for staff and professors ▸ Pool/Share development of digital services ▸ Design, plan and deliver the next generation of portals, collaborative platforms, mobile services,...
  • 17. ESUP-PORTAIL CORE PRINCIPLES Illustration by
 Jurgen Appelo Illustration by
 Nicole C. Engard Illustration by
 Missy Schmidt
  • 18. ESUP-PORTAIL WIDE RANGE OF PROJECTS ENT (uPortal) Portal of services I
 N
 F
 O 
 R
 M
 A
 T
 I
 O
 N S
 Y
 S
 T
 E
 M Collaborative tools OAE Filesender “Business” applications DematEC PStage, eCandidat... Agimus-NG ECM Nuxeo Digital Desktop Zimbra, Sogo, Horde, ... Bedework, UniTime E-Learning
 plateforms Moodle, Sakai Pod
  • 19. ESUP-PORTAIL ORGANIZATION & GOVERNANCE STRATEGIC BOARD TECHNICAL COORDINATION TEAM WORKING GROUP MEMBER MEMBER M M … WG … 10 working groups | Authentication | Agenda/Mail | Development | ECM |
 | Groups | Mobility | OAE | Portal | Statistics | Videos | 10 people (incl. Executive Director: Alain Mayeur) from 10 different institutions 13 people from 10 different institutions Countless community people from 70(ish) member institutions
  • 20. ESUP-PORTAIL ESUP-PORTAIL: THE “SISTER” ORGANIZATION OF APEREO ▸ Memorandum of Understanding (ongoing since Oct. 2012) ▸ Promote Apereo in French-speaking countries
 => Joint conferences (Paris, Montréal), articles,... ▸ Take part in Apereo’s strategic decisions
 => Board of Directors, incubation process,... ▸ Contribute actively to Apereo projects...
 => source code (fixes/improvements), i18n work,... ▸ ... especially to OAE
 => Financial contribution, French translation,...
  • 22. ▸ Well, everyone! ▸ Numbers don’t lie ▸ They are worth a thousand words... ▸ They can help us make (better) decisions AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?!
  • 23. ▸ Study case: “James, the guy next door” AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! Weight(kg) 50 60 70 80 90 100 110 JUL14 AUG14 SEP14 OCT14 NOV14 DEC14 JAN15 FEB15 MAR15 APR15 MAY15 JUN15 JUL15 AUG15 SEP15 OCT15 NOV15 DEC15 JAN16 FEB16 MAR16 APR16 MAY16 Started living
 on his own Got a
 girlfriend Started diet + working
 out at the gym Broke up with
 said girlfriend Vacation time! Back to gym 3 times
 a week + running Work overload
 = no spare time
  • 24. ▸ Study case: “James, the guy next door” AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! Weight(kg) 50 60 70 80 90 100 110 JUL14 AUG14 SEP14 OCT14 NOV14 DEC14 JAN15 FEB15 MAR15 APR15 MAY15 JUN15 JUL15 AUG15 SEP15 OCT15 NOV15 DEC15 JAN16 FEB16 MAR16 APR16 MAY16 Started living
 on his own Got a
 girlfriend Started diet + working
 out at the gym Broke up with
 said girlfriend Vacation time! Back to gym 3 times
 a week + running Work overload
 = no spare time - ADVICE TO JAMES - YOU’RE ON LEAVE, SO WHAT? STOP BEING LAZY... GO HIT THE GYM!
  • 25. ▸ Study case: “Kim Kardashian West” 
 AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! 12.01.201214.11.201408.28.201511.13.201502.24.201603.07.2016 0K 52K 104K 156K 208K 260K RT Likes 2012.12.01 |
 We can all make a difference today, help educate people & together strive for an AIDS free generation http://bit.ly/U8hAes #WorldAIDSDay 690 236 2014.11.14 |
 1st hot chocolate! #AuntiesSpoilingHer 14K 40K 2015.08.28 |
 I miss short hair 4.9K 27K Most trending hashtag
 at the time: #PrayForParis 2015.11.13 |
 WEAR ALL WHITE http://bit.ly/1QmobUZ 1.9K 7.6K 2016.02.24 |
 Thank you @MichelleObama and #OpeneBooks for giving children access to books they need to learn and dream! 810 3.9K 2016.03.07 |
 When you’re like I have nothing to wear LOL (Almost)
 Nude
 pic 133.7K 252K
  • 26. ▸ Study case: “Kim Kardashian West” 
 AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! 12.01.201214.11.201408.28.201511.13.201502.24.201603.07.2016 0K 52K 104K 156K 208K 260K RT Likes 2012.12.01 |
 We can all make a difference today, help educate people & together strive for an AIDS free generation http://bit.ly/U8hAes #WorldAIDSDay 690 236 2014.11.14 |
 1st hot chocolate! #AuntiesSpoilingHer 14K 40K 2015.08.28 |
 I miss short hair 4.9K 27K Most trending hashtag
 at the time: #PrayForParis 2015.11.13 |
 WEAR ALL WHITE http://bit.ly/1QmobUZ 1.9K 7.6K 2016.02.24 |
 Thank you @MichelleObama and #OpeneBooks for giving children access to books they need to learn and dream! 810 3.9K 2016.03.07 |
 When you’re like I have nothing to wear LOL (Almost)
 Nude
 pic 133.7K 252K - ADVICE TO KIM - IF YOU WANT TO FEEL THE LOVE FROM YOUR FANS,
 STICK TO WHAT REALLY MATTERS: 
 FASHION, HAIRCUT,... AND SUN TANS!
 AND DON’T FORGET TO ADD PICTURES/SELFIES !!* * Additional recommandation: The less clothes, the better!
  • 27. ▸ Study case: “Apple Inc.” AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! 0M 9M 18M 28M 37M 46M 55M Q4 12 Q1 13 Q2 13 Q3 13 Q4 13 Q1 14 Q2 14 Q3 14 Q4 14 Q1 15 Q2 15 Q3 15 Q4 15 Q1 16 Q2 16 2013.09.20
 iPhone 5S/5C 2013.09.20
 iPhone 5S/5C 2014.09.19
 iPhone 6/6+ 2015.09.25
 iPhone 6S
  • 28. ▸ Study case: “Apple Inc.” AGIMUS-NG STATISTICS? WHO CARES ABOUT STATISTICS?! 0M 9M 18M 28M 37M 46M 55M Q4 12 Q1 13 Q2 13 Q3 13 Q4 13 Q1 14 Q2 14 Q3 14 Q4 14 Q1 15 Q2 15 Q3 15 Q4 15 Q1 16 Q2 16 2013.09.20
 iPhone 5S/5C 2013.09.20
 iPhone 5S/5C 2014.09.19
 iPhone 6/6+ 2015.09.25
 iPhone 6S - ADVICE TO APPLE FANBOYS - BE PREPARED: YOUR SHINY IPHONE 6S WILL BE OUTDATED IN 4 MONTHS
 (EXPECTED) RELEASE DATE OF YOUR NEXT TOY: SEPTEMBER 2016 - ADVICE TO APPLE EXECUTIVES - JANUARY ’17 SEEMS LIKE A GOOD TIME TO
 BUY A BRAND NEW LAMBORGHINI OR TAKE SOME TIME OFF* * Additional recommandation:
 Beaches in Panama do not live up to the hype. The ones in Bahamas are amazing though!
  • 29. AGIMUS-NG OBJECTIVES ▸ Technically speaking:
 Generate & aggregate usage indicators/metrics ▸ Underlying goals: ▸ Improve service quality level for end-users ▸ Produce reports/dashboard to help IT governance
  • 30. AGIMUS-NG PROJECT TIMELINE AGIMUS-NGAGIMUS (first of its name) 2007 2014 20162010 Development
 by a private company Deployment/Tests
 in institutions Development/Tests/Deployment
 by institutions Project coordinator: Khedidja Dib (MENESR) Tech. coordinator: Julien Marchal
 (Univ. de Lorraine)
  • 31. ▸ Open source is a must ▸ Must be non-intrusive, adaptive and customizable ▸ Usable/Linkable with heterogeneous systems ▸ Anonymous tracking ▸ Centralized data warehouse AGIMUS-NG KEY PRINCIPLES
  • 33. AGIMUS-NG E.L.K. FOR THE WIN! lasticsearch ogstash ibana
  • 34. AGIMUS-NG Logfiles Database
 LDAPDirectory ... > service
 > action > user-agent > date/time > location > profile > edu enrollment > relevant/enriched
 lines > query/extract data
  • 38. AGIMUS-NG John Doe TRACEME TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01 OK uPortal Moodle TRACE-YBu4Jvn- S7WZlWYNplWao
  • 39. DATE: 29/Apr/2016:17:26:54 +0100 IP: 51.255.201.X URI: /Login?ticket=ST-1857-q4G4eWz REFERER: https://www.google.com/#q=myportal+uniU USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACE: TRACE_YBu4Jvn-S7WZlWYNplWao AGIMUS-NG John Doe OK uPortal Moodle TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01 TRACE-YBu4Jvn- S7WZlWYNplWao DATE:29/Apr/2016:17:28:20 +0100 IP: 51.255.201.X URI: /p/my-courses/max REFERER: https://myportal.uni-u.edu/Login USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
  • 40. AGIMUS-NG John Doe DATE: 29/Apr/2016:17:29:11 +0100 IP: 51.255.201.X URI: /login.php?ticket= ST-1859-r7P9sKw REFERER: https://myportal.uni-u.edu/ USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACE: TRACE-YBu4Jvn-S7WZlWYNplWao OK uPortal Moodle TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01 TRACE-YBu4Jvn- S7WZlWYNplWao DATE: 29/Apr/2016:17:26:54 +0100 IP: 51.255.201.X URI: /Login?ticket=ST-1857-q4G4eWz REFERER: https://www.google.com/#q=myportal+uniU USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACE: TRACE_YBu4Jvn-S7WZlWYNplWao DATE:29/Apr/2016:17:28:20 +0100 IP: 51.255.201.X URI: /p/my-courses/max REFERER: https://myportal.uni-u.edu/Login USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao
  • 41. AGIMUS-NG TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao <=> jdoe01 { "_type": "trace", "cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao", "ldap_uid": "jdoe01" }
  • 42. AGIMUS-NG { "_type": "ldap", "uid": ["jdoe01"], "eduPersonAffiliation": ["student", “member"], "eduPersonPrimaryAffiliation": ["student"], "supannAffectation": ["M1 Computer Sciences"], "customAttribute": ["whateverYouNeedToKnow"] } uid=jdoe01 eduPersonAffiliation=student, member eduPersonPrimaryAffiliation=student supannAffectation=M1 Computer Sciences customAttribute=whateverYouNeedToKnow
  • 43. AGIMUS-NG DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle 1) Extract next useful line (= TRACEMEd line)
  • 44. AGIMUS-NG 2) Get info from USER-AGENT
 > os: Mac OS X 10.10
 > os_name: Mac OS X
 > device: Computer
 > browser: Firefox 1) Extract next useful line (= TRACEMEd line) DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle
  • 45. AGIMUS-NG 2) Get info from USER-AGENT 3) Determine geolocation from IP
 > latitude: 50.69421005249
 > longitude: 3.1745600700378 1) Extract next useful line (= TRACEMEd line) DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle
  • 46. AGIMUS-NG 1) Extract next useful line (= TRACEMEd line) 2) Get info from USER-AGENT 3) Determine geolocation from IP 4) Convert TRACEME tracker { "_type": "trace", "cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao", "ldap_uid": "jdoe01" } TRACE-YBu4Jvn-S7WZlWYNplWao ? DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle
  • 47. AGIMUS-NG 1) Extract next useful line (= TRACEMEd line) 2) Get info from USER-AGENT 3) Determine geolocation from IP 4) Convert TRACEME tracker { "_type": "trace", "cookie_id": “TRACE-YBu4Jvn-S7WZlWYNplWao", "ldap_uid": "jdoe01" } jdoe01 DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle
  • 48. AGIMUS-NG 2) Get info from USER-AGENT 3) Determine geolocation from IP 4) Convert TRACEME tracker 5) Retrieve data about user jdoe01
 { "_type": "ldap", "uid": [“jdoe01"], "eduPersonAffiliation": ["student", “member"], "eduPersonPrimaryAffiliation": ["student"], "supannAffectation": ["M1 Computer Sciences”], "customAttribute": ["whateverYouNeedToKnow"] } jdoe01 ? DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle 1) Extract next useful line (= TRACEMEd line)
  • 49. AGIMUS-NG 2) Get info from USER-AGENT 3) Determine geolocation from IP 4) Convert TRACEME tracker 5) Retrieve data about user jdoe01 { "_type": "ldap", "uid": [“jdoe01"], "eduPersonAffiliation": ["student", “member"], "eduPersonPrimaryAffiliation": ["student"], "supannAffectation": ["M1 Computer Sciences”], "customAttribute": ["whateverYouNeedToKnow"] } "eduPersonAffiliation": ["student", "member"],
 "eduPersonPrimaryAffiliation": ["student"],
 "supannAffectation": ["M1 Computer Sciences"],
 "customAttribute": ["whateverYouNeedToKnow"] DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle 1) Extract next useful line (= TRACEMEd line)
  • 50. AGIMUS-NG 2) Get info from USER-AGENT 3) Determine geolocation from IP 4) Convert TRACEME tracker 6) Combine data & anonymize entry
 > jdoe => f8ETRJR3trafmLsLYsn69szhK6SG30 5) Retrieve data about user jdoe01 { "_type": "moodle", "clientip": "51.255.201.X", "request": "/course/view.php?id=4653", "referer": "https://lms.uni-u.edu/my",
 "os": "Mac OS X 10.10",
 "os_name": "Mac OS X",
 "device": "Computer",
 "browser": "Firefox",
 "geoip": {"location": [3.175, 50.694]}, "uid": "f8ETRJR3trafmLsLYsn69szhK6SG30", "eduPersonAffiliation": ["student", "member"], "eduPersonPrimaryAffiliation": ["student"], "supannAffectation": ["M1 Computer Sciences”], "customAttribute": ["whateverYouNeedToKnow"] } DATE:29/Apr/2016:17:34:31 +0100 IP: 51.255.201.X URI: /course/view.php?id=4653 REFERER: https://lms.uni-u.edu/my USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:46.0)… TRACEME: TRACE-YBu4Jvn-S7WZlWYNplWao Moodle 1) Extract next useful line (= TRACEMEd line)
  • 51. AGIMUS-NG { "_type": “uportal", … }, { "_type": “moodle", … }, { "_type": “uportal", … }, { "_type": “myapp", … }, { "_type": “myapp2", … }, ... 1 index per daylogstash-YYYY.MM.DD = composed of different “types” of records
 (moodle, uportal, myapp,…) { "_type": “uportal", … }, { "_type": “moodle", … }, { "_type": “uportal", … }, { "_type": “myapp", … }, { "_type": “myapp2", … }, ... { "_type": "uportal", ... }, { "_type": "uportal", ... }, { "_type": "myapp", ... }, { "_type": "moodle", ... }, { "_type": "moodle", ... }, { "_type": "uportal", ... }, { "_type": "myapp", ... }, { "_type": "uportal", ... }, ... GET logstash-*/_search
 {
 "query":{ "filtered":{ "query":{ "query_string":{ "query": "_type:uportal" }}}}, 
 "aggs":{ "2":{ "field": "os_name.raw", "size": 10, "order":{ "_count": "desc"}}},
 "size": 0
 }
  • 52. AGIMUS-NG { "_type": “uportal", … }, { "_type": “moodle", … }, { "_type": “uportal", … }, { "_type": “myapp", … }, { "_type": “myapp2", … }, ... 1 index per daylogstash-YYYY.MM.DD = composed of different “types” of records
 (moodle, uportal, myapp,…) { "_type": “uportal", … }, { "_type": “moodle", … }, { "_type": “uportal", … }, { "_type": “myapp", … }, { "_type": “myapp2", … }, ... { "_type": "uportal", ... }, { "_type": "uportal", ... }, { "_type": "myapp", ... }, { "_type": "moodle", ... }, { "_type": "moodle", ... }, { "_type": "uportal", ... }, { "_type": "myapp", ... }, { "_type": "uportal", ... }, ... {
 "hits":{ "total": 59081020 },
 "aggregations":{ "2":{ "buckets": [
 {"key": "Windows 7", "doc_count": 22158014},
 {"key": "Mac OS X", "doc_count": 7512285},
 {"key": "Android", "doc_count": 4758202},
 {"key": "iOS", "doc_count": 4643627},
 {"key": "Windows 8", "doc_count": 1549201},
 ...
 ... iOS Android Win 8 Mac OS X Win 7
  • 53. ▸ Production ready: already deployed in several institutions ▸ Technical documentation available ▸ Examples of Logstash “templates” are provided ▸ CAS, Shibboleth, Moodle, uPortal, ldap,... ▸ Several examples of Kibana dashboards/charts available ▸ Data visualization for CAS, uPortal, ldap, Moodle,... AGIMUS-NG CURRENT PROJECT STATUS https://github.com/EsupPortail/agimus-ng
  • 54. ▸ University of Lorraine: about 60k users (57k students) ▸ Agimus-NG deployed since Dec. 2014: ▸ 3 VMs (4 vCPU / 16Go RAM each) ▸ Disk space used : 250Go AGIMUS-NG AGIMUS-NG IN PRACTICE Owncloud 52M CAS 65M Moodle 97M Others 9M Mailing service 98M uPortal 325M 650 Millions of entries
 (“enriched” lines from logfiles) =
  • 55. AGIMUS-NG PRODUCED STATISTICS (EXAMPLES) Time period Nb of courses Nb of uniq. users Nb of connections Most commonly-used modules Distribution of courses by collegium ▸ Dashboard from Moodle data (1/2)
  • 56. ▸ Dashboard from Moodle data (1/2) AGIMUS-NG PRODUCED STATISTICS (EXAMPLES) Consultation of courses through time by collegium Distribution of users by network Number of visits through time
  • 57. ▸ Dashboard from CAS data (1/2) AGIMUS-NG PRODUCED STATISTICS (EXAMPLES) Distribution of users by browser Most commonly-used services by user profile (top 10) Distribution of users by network
  • 58. ▸ Dashboard from CAS data (2/2) AGIMUS-NG PRODUCED STATISTICS (EXAMPLES) Evolution of services access through time by profileDistribution of users by profile
  • 59. ▸ Carry out evolutionary & corrective maintenance ▸ Check performances in the long run => aggregation? ▸ Provide new templates to ingest other logfiles ▸ Pydio, OAE, Sakai, Nuxeo, Pod, etc. ▸ Organize workshops for the community members ▸ Create demo VM ▸ Add user management to grant/limit access to metrics/graphs/dashboards ▸ ... AGIMUS-NG NEXT STEP(S)
  • 60. ▸ Different goals ▸ Anonymous vs user-centered monitoring ▸ Reporting metrics only vs Predictive algorithms AGIMUS-NG AGIMUS-NG VS LEARNING ANALYTICS
  • 62. OAE IN FRANCE KEY DATES ▸ Feb. 2012: Beginning of the Nakamura translation ▸ June 2012: Creation of the ESUP-OAE WG
  • 63. OAE IN FRANCE KEY DATES ▸ Feb. 2012: Beginning of the Nakamura translation ▸ June 2012: Creation of the ESUP-OAE WG ▸ Objectives: ✦ Maintain the French version ✦ Share feedbacks with other partners (conference, mailing list,…) ✦ Define a strategy for implementing OAE in France, considering institutions’ needs and requirements ✦ Develop widgets
  • 64. OAE IN FRANCE KEY DATES ▸ Feb. 2012: Beginning of the Nakamura translation ▸ June 2012: Creation of the ESUP-OAE WG ▸ April 2014 : Launch of the pilot phase
  • 65. OAE ADOPTION IS GROWING INSTITUTIONS ARE DEFINITELY INTERESTED! List of Tenants University of Lorraine University of Valenciennes University of La Rochelle Jean Monnet University (St-Etienne) University of Littoral University of Franche-Comté University of Maine University of Lille 3 Esup-Portail GIPRecia INSA-Lyon Promising Project University of Burgundy University of Rennes1 Netocentre
  • 66. OAE ADOPTION IS GROWING USERS (ALL TENANTS) Apr 14 June 14 Aug 4 Oct 14 Dec 14 Feb 15 Apr 15 Jun 15 Aug 15 Oct 15 Dec 15 Feb 16 Apr 16 0 1 000 2 000 3 000 4 000 5 000 6 000 127 1056 1713 3257 4372 5529 548
  • 67. OAE ADOPTION IS GROWING GROUPS (ALL TENANTS) Sept 14 Nov 14 Jan 15 Mar 15 May 15 July 15 Sept 15 Nov 15 Jan 16 Mar 16 0 260 520 780 1040 1300 159 359 601 800 966 1106 1219 490
  • 68. HOW OAE IS USED IN FRANCE OAE
  • 69. OAE IN FRANCE VARIOUS USE CASES ▸ National working groups ▸ Regional collaboration ▸ Institutional working groups ▸ Specific strategic groups/projects
 => Multi-service cards => COMUE WG => IT governance => Sorbonne Universités 

  • 70. OAE IN FRANCE VARIOUS USE CASES... ALSO IN EDUCATIONAL COLLABORATION ▸ Collaboration for collective projects ▸ Working groups for tutored/educational projects ▸ Sharing of course notes, presentations,…
  • 71. OAE IN FRANCE OVERALL FEEDBACK SIMPLE PRODUCTIVE EFFICIENT USER-FRIENDLY INTUITIVE COMPREHENSIVE
  • 72. OAE IN FRANCE OUR VERY OWN SANDBOX!
  • 74. OAE: DEVELOPMENT LOODLE ▸ Loodle? What the…?! LOODLE server NodeJS Cassandra OAE
 server Loodle widget API Rest
  • 79. OAE: DEVELOPMENT WORK IN PROGRESS ▸ Web Conference tools integration (widgets)
  • 80. OAE: DEVELOPMENT WORK IN PROGRESS ▸ Web Conference tools integration (widgets) ▸ open source project ▸ enabled/disabled tenant by tenant
  • 81. OAE: DEVELOPMENT WHAT’S NEXT? ▸ “How to master mouse clicking?” by Frederic Dooremont
  • 82. OAE: DEVELOPMENT WHAT’S NEXT? ▸ Time to invest in...
  • 83. OAE: DEVELOPMENT WHAT’S NEXT? ▸ Time to invest in back-end tools to ▸ merge accounts ▸ create groups using CSV import ▸ remove accounts with automatic tasks
  • 84. OAE IN FRANCE ROADMAP ▸Development ▸ Admin tools, widgets,… ▸ Tutorial videos ▸ New tenants
  • 85. NEVER FORGET: SHARING IS CARING!
  • 86. THANK YOU FOR YOUR ATTENTION Photographby
 M.Guerin