article

What powers Exodai Academy? The technology explained.

Many learning platforms often use a ready to use LMS or learning platform such as Coursera, Udemy, Thinkific or Wordpress with an LMS plugin such as LearnDash. There is nothing wrong with this initially, of course. Using a standard or ready-to-go LMS takes a lot of work off your hands, such as development, testing and maintenance. But it also has many limitations and disadvantages.


The major disadvantage of a ready to go LMS is that it is not flexible. You are mainly bound to standard models, standard design and standard functionality. Another disadvantage is often the additional costs such as subscriptions, bandwidth and even costs for new future versions.


Exodai Academy, on the other hand, is a fully in-house developed LMS. The website, the RESTAPI, the future applications. Everything is developed by ourselves and it is hosted on our own servers. In this article we explain what technologies we use, what design patterns we use, we talk about infrastructure, hosting and we want to show how we build, maintain and expand our systems.


The major disadvantage of a ready to go LMS is that it is not flexible. You are mainly bound to standard models, standard design and standard functionality. Another disadvantage is often the additional costs such as subscriptions, bandwidth and even costs for new future versions.


We do this because, firstly, it can be interesting for future developers and secondly, because we want to teach people to build these types of systems in the future.


Solace, the API that powers Exodai Academy


Solace is actually the heart of Exodai Academy. It is the RESTAPI that is responsible for all data transfer between the website, the backend and our databases. In the future, Solace will also power our new IOS, iPadOS, MacOS and TvOS applications and is actually the backbone for Exodai Academy for the coming years.


Solace is built in Vapor. Vapor is a serverside Swift framework that enables developers to build server applications in Swift. The reason why we chose Swift instead of other better known frameworks such as NodeJS and Ruby on Rails is because Vapor is Swift first and carries all the benefits of Swift. And secondly, because of performance and system usage. Vapor, like Swift, is terribly well optimized,


For our API we use an in-house Design pattern that actually looks like this:


  • Model
  • Services
  • Presenters
  • Controllers
  • Router

MSPCR is designed in a way where all the important functionality is hidden behind the Controllers.


This way, Routing functions can never accidentally use functionality that it is not supposed to use. Another cool advantage is that all Services are also reusable. For example, Solace is already Mobile App ready purely because the Website Controller can use the same services as the Mobile Controller and the Backend Controller.


The Presenters are actually the presentations of the website. Our website is rendered on the server instead of by the user's browser. This should make the website more performant.


Models are actually the information models that we use for the objects such as a UserModel, ArticleModel and CourseModel. Models are stored in our database and can then be used to process all stored and retrieved data.


PostgreSQL or PSQL


For our database we use a Relational Database called PostgreSQL or PSQL. PSQL is a variant of MySQL that is optimized for transferring large models and processing large amounts of data. And this is also why we chose PSQL.


Especially once users start using Exodai Academy on a daily basis via the website or our future applications, a lot of information will be processed. And once we start adding new features, using PSQL can help us provide a good user experience.


Own Servers or Cloud?


Exodai actually uses its own servers for all our new and future products. The reason for this is purely because it is simply better to be able to control your own infrastructure yourself.


We have set up two servers for Exodai Academy. One Application Server called Mavis and One Database server called Maya. The Application server has 8 Cores, 32 GB RAM and 600 GB SSD. So more than enough power and storage to power Exodai Academy.


Maya, so the Database server has 4 cores, 16 GB RAM and 300 GB SSD of which 4 GB is a RAMDISK. The Database is cached in real time in the RAMDISK, so that Database requests can be processed faster.


Conclusion


This was a small summary of Exodai Academy and the technologies/infrastructure we use. If you ever have any questions in the future, always feel free to send an email or contact us via our social channels. We are always willing to help and support you. See you later ;)

instructor

Exodai INSTRUCTOR!

Johan t'Sas

Owner and Swift developer!