» Portfolio » Web development
Aesir is an all-in-one, always upgraded context marketing platform designed to perfect interaction with your users and increase conversion of your leads.
The project is a marketing solution, developed in-house and currently based in Joomla, where content is fully customized, and business intelligence and analytics are collected from its usage.
The solution is composed by several individual projects, that can be combined to build a more complete and comprehensive product.
With the increase of the Company's Client portfolio, and the increase in the requirement's complexity, came the need to make the solution a truly multi-platform one. Being developed right on top of Joomla, it became apparent that our current code base could not be used outside this platform, without any major refactoring, or it would could lead to major code replication.
For version 7, the decision was made to make the solution platform-agnostic, and therefore, a refactoring was needed.
We also took this chance, to fully adopt Test Driven Development (TDD) methodologies, both on the backend as well as on the frontend.
Service Oriented Architecture and Domain Driven Design
The chosen Architecture for the new solution, was a Multi-Tier Service Oriented Architecture (SOA), with Domain Driven Design (DDD). Application specific code still needed to be used, but the Domain logic could be completely agnostic of which platform it's being run on, and therefore, could be reused in any other LAMP based platform/framework/cms.
This allowed a complete separation of concerns in the solution's core, resulting in the separation of the Business Logic layer (Domain) from the Application layer, where this first layer could be completely reused in other platforms. But even in the Application Layer there was a great quantity of code that could also be reused.
Coding Standards are also strongly enforced in the newly produced code. We're following strict PSR standards, and adopting industry's proven Software Design Patterns such as Singleton, Factory, Builder, Facade, Repository, Bridge, Visitor, Decorator, ..., just to name a few.
We're making a big effort keeping our code base clean, and maintainable, adopting SOLID, DRY and YAGNI principles, as well as Normalization and ACID over the Persistence layer.
In the frontend, there's also a clear separation of concerns between the structure (HTML), behaviour (Native JS) and looks (CSS) of the application.
The team is initially composed by Ronni Christiansen as CEO, Tito Alvarez as a CIO/PO, me as Team/Tech lead, and Nuno Lopes as a junior backend developer.