OA21 Breakout 1 OAE where we are and where we want to be

Show video

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

Show video