If you’re reading this you’re either evaluating eFront (or eFront, our revamped, flagship product) or you have already joined the ranks of those who use it and love it. In either case, it might be interesting to take a look under the hood, and see what makes its engine tick: the technologies, APIs, programming libraries and tools we used in creating it.
Don’t worry, you won’t need a degree in programming to understand this post. We’ll just give you a high level description of what powers eFront, the software analogous of opening the hood of a Ferrari to take a peak at its engine; you don’t need to be mechanic to appreciate that. And in case you do have a degree in programming (or can hire someone who does) our software let’s you modify, enhance and alter whatever part of it you want to build the hot-rod of your dreams.
Let’s begin at the beginning.
eFront is distributed as an Open Source project, in the form of “eFront community edition”. Open Source, in case you’ve missed the whole Linux thing, refers software that’s available for free, both as in free beer and as in freedom. Open Source software not only gives you the program, it also gives you the program’s source code, and lets you do anything with it.
In the case of eFront, which uses the Common Public Attribution License, everybody can download it for free, customize it to their needs, add new functionality and share it with the community (they cannot however distribute it under another name, as their own work — that’s the “attribution” part).
Open Source doesn’t mean amateurish. On the contrary, most respected software companies, from Microsoft and Apple to IBM, Google and Oracle release tons of Open Source products themselves, and rely on many other Open Source tools. eFront is no exception: although distributed as free software, it’s being supported by a professional team of highly skilled developers. This gives you the best of both worlds: the freedom to tinker and change our code to suit whatever you need, with the commercial backing and support of an established software company like Epignosis.
eFront is built using the PHP programming language, the de facto language for web development, which powers over 80% of the web. Although PHP sometimes gets a bad rap (mostly for its earlier versions), it is a language with a strong community, well entrenched in the enterprise, and battle tested for nearly 2 decades. It’s also the language that powers Yahoo and Facebook, two of the biggest sites on the internet.
For our users, the choice of PHP means that eFront is dead easy to deploy, it’s fast, and has a phenomenal community and a huge programmers’ pool to chose from if you ever need to hack upon our codebase. In fact PHP is so easy and approachable, that a lot of our users have created eFront pro extensions and plugins all by themselves. With eFront there’s absolutely no “vendor lock”.
eFront is not just Open Source itself: it also builds upon several quality Open Source components, including the Zend framework and several packages from the PEAR PHP package repository. The Zend framework is an enterprise level web framework (supporting code that helps you build a robust web app) created by the same company who oversees and steers PHP development, and it’s one of the most complete and mature frameworks available for the language.
At Epignosis we don’t have the so-called NIH (Not-Invented-Here) syndrome, in which companies prefer to re-invent the wheel (often poorly) rather than use somebody else’s code. We cherry pick upon the best of what’s available in Open Source to make sure eFront’s codebase is robust, and to be able to concentrate on what matters, which is its e-learning functionality.
With a mature team of experienced PHP engineers, we don’t just churn out code, we architect it and design it properly, following best practices about code style, security, separation of concerns and such. In that spirit, we’ve built eFront to be modular and extensible in multiple ways:
1) You can customize the look of eFront by creating your own theme.
2) You can extend the core functionality available with modules — either your own or some of the dozens of readily available ones, from grade-books and videoconference integrations to puzzle and flash card generators.
3) You can even add support for your own language, with our build in language administration module — in case that the 40 languages already supported are not enough for you.
On top of the PHP codebase, there’s the usual sprinkling of HTML, CSS and JS that’s required to create a compelling web experience. And with eFront, we took the time and rebuilt eFront’s codebase with even newer and more flexible web technologies (from the latest jQuery to Bootstrap-3), building a truly powerful and flexible flagship product to ensure the future of the platform.
So there you have it, a peak under the hood of eFront. Like looking at the engine of a powerful sports car, you might not understand what everything is, or does, but you can sense the power. Well, eFront internals are like that – at least to us, who live and breath in code.
Maybe take it for a test drive?