The decision to rewrite a piece of software should never be taken lightly—in fact, it’s often a last resort that requires careful deliberation and a clear plan. When undergoing a rewrite, organizations must ensure that they select the right technologies, platforms and dependencies to make the project a success over the long-term.
The Elentra Consortium, an open-source integrated teaching and learning platform created by an international consortium of medical schools, was initially developed in procedural PHP—like many other legacy web applications. Over time, the codebase became outdated and difficult to scale, leading to a decision to rewrite the application into a service-orientated architecture.
Let’s take a closer look at the rewrite decision, key challenges and how Sharkbyte helped overcome them.The decision to rewrite an application should never be taken lightly, but you can reduce risk by making the right decisions and following the right processes. Click To Tweet
The Challenge: Migrate a Legacy App to Laravel & Vue
The Elentra Consortium initially began as a curriculum management system developed by Queen’s University to map curricular content and give students access to the resources they use during sessions. When the university was approached by another Canadian university that wanted to use the product, they opted to create a consortium to create a shared product.
The Elentra Consortium now provides learners, instructors and curriculum administrators with a simple way to access, interact and manage information in a unified online environment. With more than 20 member universities across the U.S., Canada and Singapore, the application supports thousands of users and is maintained by hundreds of developers.
Universities can fork the code and make their own changes without impacting the original codebase with internal development teams. If these development teams build something the rest of the community can use, they can contribute it back to the original repository where the core team reviews the code before merging it into the final product.
The requirements for educational platforms quickly change, so a flexible platform is required to adapt to these changes. With a service-orientated architecture, the platform would be much more flexible when it comes to supporting different client-side applications. Member universities could easily adapt the platform to suit their individual requirements.
Of course, rewrites are fraught with risk because poor architectural decisions made early on can impact users and developers for years. There are many different backend and frontend frameworks and each has its own pros and cons to consider in terms of features, extensibility, support and developer-friendliness when it comes to ongoing development.
Delivering On-Time: Sharkbyte Adds On-Demand Resources
The Elentra Consortium initially consulted with Sharkbyte to decide on the best technology and platform to build out the new service-orientated architecture. Since the application was originally written in PHP, the group decided to use Laravel as a backend with a Vue frontend and React Native mobile application for smartphones.
After weighing in on design decisions, Sharkbyte worked with the core team to create the foundation for the rewrite, including Laravel, Vue and React Native fundamentals. The company’s team augmentation capabilities meant that its developers worked directly with the core team’s existing workflow—just as if there was another senior developer on the project.
“I very much liked working with Sharkbyte,” said Matt Simpson, Associate Director of the Elentra Consortium at Queen’s University. “The code was super clean and they were very helpful with documentation. That worked really, really well. There was also an education component and a knowledge transfer from what they did to our team.”
The Sharkbyte team seamlessly collaborated with other developers in Jira, Slack, GitHub and other tools to build out the initial vision. Unlike a conventional consulting relationship, Sharkbyte also played a vital teaching role in the process, helping bring junior core team members up-to-speed with best practices for Laravel and Vue.
After the engagement was complete, the Elentra Consortium invited the team to attend their annual conference in Chicago to meet other schools using the platform that might need help. The trip was at Sharkbyte’s own expense without any certainty of a further contract, but the team quickly signed up to attend and connected with other schools at the conference.
“They fit right in and gave great advice,” added Matt. “They also went above and beyond by attending Elentra’s conference in Chicago to meet other schools that they could work with directly.”
What’s Next for Elentra Consortium?
The Elentra Consortium remains in the throes of the transition from procedural PHP to a service-oriented architecture supporting multiple front-end interfaces. While no rewrite is easy, the Sharkbyte team helped ensure that the right architecture choices were made upfront and familiarized the team with what lies ahead in terms of the transition over time.
The core team is well-equipped to ensure that everything is up-to-date, and the rewrite is released on-time and on-budget, including the release of ElentraJS2 and ElentraAPI. In addition, the team remains busy training individuals in the academic community how to install and use the platform in order to expand its prevalence in the medical education space.
In the meantime, Matt recommends that any medium-sized development team looking for senior-level developer resources consider Sharkbyte to ensure that the right architectural decisions are made upfront and keep projects on-time and on-budget.
“It was basically like having additional sets of hands on the team,” said Matt. “They worked as team members, were plugged into everything, met with us in daily stand ups and took part in code review processes just like any other developer. It was like additional hands of experienced developers and who wouldn’t want that help within their project?”
If you’re interested in scoping out a project or accelerating development with team augmentation, contact Sharkbyte today!