Behind every web app are developers! We often talk about Didacte as the training platform, but today we are taking you behind the scenes.
Web development at Didacte involves a lot of research, writing, editing and maintenance. Our team is working hard to add new features while ensuring that the service is still reliable and functional.
How was the app developed? What technology are we using?
Louis-Michel and Guillaume share with us their opinion and their experience regarding the technology behind the app!
Louis-Michel Couture is Didacte’s Lead Developer and Product Owner. He is responsible for choosing which technologies will be used and supports the rest of the team for code design and revision.
Guillaume Loubier is a back-end developer at Didacte. He is often asked to contribute to developing new app features and participating in the code’s strategic thinking and revision.
What technologies were used to develop Didacte and what motivated these choices?
(Louis-Michel) Didacte is mainly based on two technologies. For the back-end, we use Ruby on Rails. As the name suggests, Ruby on Rails is a popular framework based on the Ruby programming language. It is also used by several well-known companies, such as Airbnb, Shopify, Github or KickStarter.
To understand the choice of technologies, we have to go back to 2014, when the idea of Didacte was born. For the back-end part, the choice was quite easy. All of the developers were comfortable with Ruby on Rails, which is why we used it.
How has the code evolved between the first deployment and the most recent version?
(Louis-Michel) Didacte has grown enormously in the past years. Over time, new needs have arisen, the team has grown, the programming languages used have evolved. Dozens of features have been added.
In 2018, we added a public changelog to identify the major changes made to Didacte.
Didacte, in technical figures, is:
- Around 300,000 lines of code and tests.
- 16,000+ commits.
- 2500 pull request.
- Approximately 3800 builds (number of times the app test suite is rolled on continuous integration servers).
What difficulties can be encountered when adding new features to existing code?
(Guillaume) Didacte being a constantly evolving code base, it can be a bit more complex to add new features to an older part of the app.
Languages and code structures are refined and evolve over time. This sometimes leads to greater complexity than what was planned when we want to integrate a new feature while making sure not to break anything already existing. We do, however, use several tools that help us minimize these kinds of irritants.
The fact that several parts of the app are interconnected can also bring its share of difficulties. A feature that seems simple on the surface can end up becoming a huge puzzle in which nothing should be forgotten, otherwise you end up with a new puzzle that is even more complex to solve.
What are the advantages of opting for Open Source solutions in a web development strategy?
(Guillaume) The beauty of Open Source is that everyone works together to build common tools that can be used in hundreds or even thousands of projects.
It is, therefore, a great advantage to have access to a wide variety of tools already ready to use that may help us in the progress of a project. However, we must keep in mind that just because a tool exists does not mean it necessarily meets all of our needs.
This is why we sometimes have to make fixes and adjustments or even develop features that can then be added to the code base of the Open Source project (if it is a relevant modification that could help other people).
Open Source projects also allow us to develop our qualities as programmers. Having to go read and modify code written by a developer from the other side of the planet, who has a specialty and a background quite different from ours, constantly allows us to discover new ways of working and structuring the code.
We can then bring these findings back into our projects - or use them as examples of what not to do. We must not make ourselves believe that there is only beauty in Open Source projects! 😂
How will the code need to change to support Didacte's growth?
(Louis-Michel) Didacte grew very quickly. The challenge over the next few years will be to continue managing the growing traffic that is coming from all over the planet.
The infrastructure must be adapted to allow maintenance and updates without impacting connected clients. The challenge is compounded by the addition of virtual classrooms that require a connection to the server for the duration of the class.
Another big project is the location of the servers. When Didacte was created, most hosting cloud providers did not have servers in Canada. The situation has reversed in the past years and most providers now offer servers in Canada. The repatriation of all our servers will be a crucial point to serve customers whose data must remain within the country.
At the app code level, the focus will be on:
- Adding support tools for our customers
- Automating payment plans for platform owners
- Strengthening security measures to avoid spam without causing harm to users
In short, we should not run out of improvement projects!