good morning everyone my name is derek ramsey i am the moderator of this session um my clock shows that it's uh right at the minute when we should get started so i guess we'll go ahead and get going um so today's session is welcome to oae when and where we want to want to be the presenter is miguel for everyone that's joining this session please leave yourselves muted in your cameras off during the presentation if you would like to ask a question if we can wait to the q a portion after the presentation is over you can also use there's shared notes that you can see over to the left which is just above the user list you can enter in any questions there as well you're going to also notice that there is another place that you can type in in the chat area feel free to go ahead and type in any questions there in the chat i'm sorry not questions just just chat don't use questions in that chat area um if you have any technical issues uh please send them to me my name is derek on the left-hand menu and send me a direct message and i'll assist in any way that we can this session and all sessions uh here at the apereo conference are recorded and they will be available at a later date on the apereo youtube channel so miguel feel free to get started all right thank you derek uh can you hear me alright yes sounds good okay so i'll just find a way to share my screen uh not sure exactly how to do that oh there's i think there is a uh there's an option at the bottom next to the microphone the phone the share webcam and i think that the fourth option at the bottom is just share your screen except that i don't have a fourth option option well i used to i i saw it once uh like in the uh in some other uh in the practice room but i don't think i can find it now let me do this to you let's see if this gives it to you check now ah perfect sweet thanks yeah okay so let me just do that and hopefully you'll be able to see what i see yes i see the if i see the launch screen open academic environment all right so okay so let's start um okay so i'm miguel um i am the project lead for for the open academic environment oae for short and i want to welcome you all to this presentation um this these are the topics that we'll cover in this uh in this session i'll quickly go through what oae is what's new in oae then i'll start my technical dive uh regarding where we are and where we want to be regarding the front end back end uh i'll talk about the project momentum uh then i'll show you the new interface that we've been building for oae in the last few months uh then i'll describe what the goals are uh going forward and finally uh standard stuff like how to contribute to oae and finally i'll try to make this quick so that there's time for questions at the end okay so for those of you who don't know what oae is this is a short overview um in essence oae is a collaborative platform for academia it is a platform that provides features and mechanisms for people to collaborate and work together um it has some unique features though uh one of them being the fact that it's multi-tenancy uh which means that a single instance can provide different domains for different departments or institutions um it provides collaborative editing for uh documents and spreadsheets uh it integrates with jitsi for virtual meetings in groups uh like this one we're having uh it is multilingual and it is mobile ready as well so there's a lot of unique features these are some one of the most important ones but there are plenty others uh that i won't be able to cover in this session the project goals are mainly these three uh to enhance academic collaboration so uh work on more features and more mechanisms and make every collaboration more seamless and productive uh we also need to and we want to become a friendly integration platform mainly because we know that nowadays uh there is no uh one platform to rule it all uh most of the open source projects uh from apereo and others uh what we can aim at is to become part of some ecosystem and because of that we oae has a built-in api um so the goal is to be adopted but also you know uh being aware that that adoption is a part of something bigger and finally uh to foster an active community because you know at the end of the day we're still an open source project uh and you know the best way going forward is to have lots of people collaborating and working together for the same cause okay so let me go through um briefly um the project status the project has been active since 2009 so it's a long-standing project um it is uh deployed in france uh through these initiative uh ian said in the previous meeting it covers around 80 percent of french public university system um and i'll show you some stats uh on this deployment uh in a few slides and unfortunately we have a very small community as it stands but this is something that we're constantly trying to uh to change and for the better all right so what's new with oae i'll go through i'll go through some of the features most important changes since last year and the biggest one is that the elasticsearch is finally up to date elasticsearch is a component responsible for search obviously and it has been stale since 2017 i think uh in version one and we have recently upgraded it to version 7.9 which is huge uh because that's that means it's seven major versions and um it is you know a huge refactor so that you know the project keeps um is is up to date and uses uh up-to-date uh third-party systems as well we have updated some libraries uh oae is built on javascript and as you might know javascript is very volatile not just the ecosystem but the language and the standards and best practices as well so this usually takes a lot of time and involves a lot of different moving parts um that oae is built on and finally we have developed um a single container that works as a demo right so uh oae has been working with uh docker um for you know for a long time but we've also we've always had this problem that uh some orchestration was needed uh especially for development so what we did was we um we have managed to put every component working together on the single container so that no configuration is needed now and for people that want to try out oae we can just give it give them a one-liner and suddenly it's up and running and so it's uh it's really good news so here are some stats on the esup-portail deployment uh 21 tenants more than 8 000 groups 43 000 users uh 126 000 documents more than one terabyte used so it's pretty pretty large deployment and um it's that is the reference deployment that we have it's the one that we maintain uh me along with fred from esup-portail uh and the one that we tried to uh regularly updates or at least you know uh get more or less updated um to the master branch all right so let's dive into the back ends um and i'm sorry if this is gonna sound a bit technical but i'll try not to well i tried my best to um not not to be uh not to be too technical so um regarding oae backend he ha so he has five different components and the main one is the node application so node.js is you know basically a javascript application and as it stands um it is still callback-based javascripts it is es5 javascript and it has some obsolete dependencies such as request.js what this means without the technical jargon is that it's still built on the previous generation javascript um standards basically uh so callbacks should be promises nowadays uh es5 should be at least the f6 so what this means is that there's still there's still a lot of work to be done on making this thought application more up-to-date more modern and also attractive to other people looking to contribute to open source there's elasticsearch the search component which is finally up to date there's redis which is the cache in message queue component which is also update and cassandra which is not up to date because it's still running on version 2.0 from 2015. fortunately that is not a problem uh because we will replace cassandra's very soon cassandra is not non-relational database that was picked when the project started but we don't think it's the right fit anymore so uh we'll be replacing it soon or at least start to replace it then and finally nginx it's the that's the web server which is also update so you know all in all uh where we are is that you know oae back end is stable and mature but there is also there's always a but right um oae backend requires quite a bit of maintenance because we have to keep up with several moving parts uh dependencies for instance uh lots of dependencies the the node.js ecosystem is quite um difficult to manage sometimes because the philosophy uh underneath the ecosystem that you know uh you should do only one thing well so that means lots of dependencies and lots of libraries because they just do one one thing right so uh and you know the downside to that is that we have to keep up with dependencies because they update you know regularly sometimes they some dependencies come and go and you just have to deal with that and try to you know keep afloat in this volatile ecosystem the same happens with integration so for instance uh we have um we have integrated with ifapad and vitacock to provide the collaborative spreadsheets and the collaborative documents and of course these third-party projects also have releases and updates so whenever they update we have to update as well and that means uh more maintenance and you know just more changes uh to keep up javascript uh as a whole uh as a language it also changes quite regularly has you know whenever something new comes along uh and it's often not easy to just change the whole code base or to change uh some pattern or you know lots of problems come up when you try to keep up with javascript uh in general and of course security updates uh from the perspective of the deployment we also have to um keep that be aware be aware that the security security is a main concern it's still hard to work on oae part of that is because we use this cassandra and when people work in um on cassandra the whole philosophy of data modeling is quite different from uh what most people know which is relational databases mysql in postgres so this is one of the biggest obstacles that we have uh because people usually go away when they see that you know what they know doesn't fit cassandra's modeling um perspective way of doing things so this is one of the things that keeps people away from contributing uh something else uh which makes things a bit uh you know more difficult than this should be is the fact that we have to have to uh use docker containers and the problem is uh docker um doesn't have a like a unique universal behavior in different operating systems for instance you can have native dockers in linux but in mac os it's like a hack so it requires a bit of configuration and you know whenever there's extra configuration there's extra trouble and it drives people away basically all right so where do we want to be like i said oae needs a relational database and we'll start working on this hopefully september onwards if everything goes well oae also needs to migrate to next generation javascript which is uh yes modules uh it has been done uh up to uh you know at two points uh but there's still major changes to be done uh and you know this is just javascript evolving and the project has been active since 2009 so as you might uh understand a lot of things change and uh um a lot of code needs to be refactored so that we keep up uh if we still as an open source project if we don't keep up with you know this kind of generation standards and best practices it's going to be more difficult to attract other people to contribute and overall the quality of the project will just go downwards and we also need to reduce the number of third-party dependencies obviously there will always be a reality because that's just how things are in javascript but we used to have like a huge number um then they go obsolete and then they go and maintain and because of that the project suffers uh quite deeply so um this is one of the goals that we have and we've been trying to uh work on this for the last years actually uh here's a snapshot of the readme of uh from github uh i just i'm just putting this here so you can check uh some of the things that i said like the dependencies is up to date and the developer dependencies are up to date on yellow on the right-hand side but you can also see like a c mark in maintainability that means that we still have a lot of work ahead of us and also security vulnerabilities 33 which is a bit high but some of them are lower risk but most of them are low risk and this just goes to show that uh there's still a lot of a lot to be done regarding the the background all right so let's move on to the front end um and not much to say about the front end except that it is stable and mature pretty much like the backhand but the front end stack is quite obsolete so the the code base makes use of previous generation technologies let's call it that oh sorry and that includes jquery require.js es5 modules and javascript and all in all
not being able to use npm uh dependencies which is like you know so such a basic feature nowadays and basically what we have is a stack that does provide agility so if you want to make a change or if you want to change something like um moving move the codebase one step further in some regard everything's going to be difficult because these technologies are like tightly um coupled so it's quite a it's a bit of a nightmare to to do something on this stack and on top of that uh the oae visual design is something that i find a bit outdated i don't think it aged that well um it's also missing out on a lot of best practices regarding um user experience uh design standards consistency mobile responsiveness and accessibility so what does this mean um where do we want to be so we need sorry we need to rely on a more modern standards combined framework uh that means ditching jquery and require js and all those obsoletes or at least old technologies we need to uh rely on a few third-party npm dependencies and not just dependencies like we do nowadays we need to rely on like a proper package um dependency manager like npm uh so that everything is automated and we can install things without much hassle and finally we need to rely on a better design system uh hopefully one that ages well and so that we we won't be able we won't be um we won't be replacing it in 10 years again so where uh where we're going we are rebuilding the interface this is has been going on for quite some time and i'll show you that in a bit in some charts uh oae is becoming more usable and accessible and oae is making use of a modern framework which is svelte and web components as well so that everything is easier to integrate if that ever comes to be a necessity okay so let me show you a bit of the momentum of the project uh so since open apereo 2020 uh that's the part of that i've highlighted on the top uh right corner uh two spikes over there uh that means basically that there were two intense uh moments with lots of commits and code changes you can also see that in the button chart uh with lots of ambitions and visions as well uh the first one the first spike i think he has has to do with the elasticsearch upgrade and all the refactorings that came after that and the second spike is probably the result of some refactorings due to upgrading packages such as linting and formatting and stuff this is the front-end repo um so for the new interface we have created a new repository of course and uh the culture and you know the the contributions are uh way bigger than the back ends especially since uh february uh you can see my chart on the left-hand side and rita's designer on the right hand side with so you see the front end is has been the biggest priority so far okay so um what am i doing on time derek you're doing pretty good you have nine minutes left all right perfect uh okay so let me show you uh the new interface uh i won't be able to uh to run the demo because i think that's risky it's always risky isn't it uh but i'll show you some some scrap some screenshots um so as you might know this is uh oae's landing page and this is the model window for logging in so this is the oae that you know and this is the oae that you haven't seen before the new interface which is i think much better and you know brighter and more colorful as well and this is the model window with uh the redesign modeling this is uh so as you log in you you get to see the recent activity and this has been basically what it looks like with a few uploads and links not much in it and this is what it's going to look like hopefully in the next few months and i think that you'll agree with me that things look way better in the new design in so many ways that i can even pinpoint but basically new design system better usability better interactions and above all um a better experience for uh for the user i think you'll you'll agree with me on this okay so let me tell you a bit about the obstacles that we've been facing uh since we started the front-end development as you might know uh front-end development is still a nightmare uh nowadays and there's a lot of reasons for that uh but it's still true one of the things that may makes front-end development uh hard is that you need to make different tools work together and technologies and that means that uh well you can start like with uh some boilerplates uh pretty easily but you know soon enough you're gonna need some linter or you're gonna you need the compiler or you're gonna need to use next to the generation javascript and you know it amounts to a lot of work uh when you start putting uh putting all those technologies together um and you know in it in a way it should be simpler but it's just the way it is and um you just have to hope the committee helps uh in in doing this um the other obstacle uh is that the oae is quite um tricky to uh to integrate not just the backend the especially the multi-tenant approach it kind of makes things a bit different from all the tutorials that you uh find on google on how to approach uh or how to start some new application it doesn't really apply uh to oae because it's multi-tenant you know it's just you just need to adapt basically um you also need to adapt from the old code base because we are keeping the business logic obviously we're just changing the um under um the underlying technology in the design system but the business logic is still the same and that means that you need to adapt all the models that we have uh and the logic as well uh into the new code base right and that is an obstacle because well in a way it would be easier to do everything from scratch but yeah that would take too long right so that's another obstacle because we need to um coordinate right oh we have the new shiny stuff on one hand but then we have an old code base on the other hand and we have to um to join together and merge it all right so going forward um the these are the goals that we have uh getting a prototype out obviously that would be like a dream uh hopefully next year we'll be able to showcase a more complete and functional prototype uh maximizing agility obviously that i've i've i've told you a bit about this uh every change is hard it should be simple but it's hard uh and that has to do with the technical that has to do with the technological stack uh so there's a lot of a lot of things that we need to do and they all contribute to this simple idea that contributing should be easy changing should be easy you need to be agile you need to go and you know take small steps uh at a time instead of you know um approaching it as a waterfall uh project um and obviously that would make oae more newcomer friendly a lot of contributors uh just you know they they are pushed away by by all this and uh that that makes it a priority for us as well and finally help potential parties uh demoing and deploying oae so from time to time we get contacts um we get contacts from people trying to understand what oae is what it looks like what what feature does it have and it's it's all always been a bit of a nightmare but since we have now the um the the docker container i think things will uh will be uh much more simple um much simpler in the future and uh you know hopefully there will be no no problem in people trying oae by themselves in the future all right so finally uh how to contribute to oaa uh provide ideas and feedback uh this is actually one of the best things you can do for oae because uh we we work on oae like 24 7 and uh sometimes we are too immersed in our in our own ideas in uh you know our our our roadmap so having people tell us about what they think oae should be or should have is actually a great uh great way for us to think outside the box right uh and ask questions because again by trying to answer those questions uh we are um we're allowed to think differently uh contribute to github that's not just code that's also docs the documentation usually is over well it shouldn't be but sometimes it's a second thought and we just forget to update it so it's a great way for for the project to um to be up to date as well and feel free to keep in touch there's the home page in the project blog and discord channel links um we we are on this discord channel pretty much every day so any questions that you might that you may have um just feel free to to do so and this is what i have for you today uh so thank you and please ask away yep thank you if you have any questions feel free now to type them in the chat in the share notes section and raise your hand we have just a minute the next session starts in five minutes you're welcome thank you so again let me just say that anything that you might want to ask feel free to drop us a line on the discord channel or in the what is it called the the the solutions expo slots the i'll be i'll be on them so okay i think we're good everybody the next session start in five minutes so i'll go ahead and stop the recording thank you miguel bye-bye thanks bye
2021-06-29