RESTful API

Developer friendly environment ready for extension

When it comes to code, Ohanah is not your typical Joomla component. It’s well organized, highly extendable, modular web application powered by a modern framework that offers HMVC code organization, consisted object oriented design patterns and RESTful architecture out-of-the-box.

Ohanah was built with an idea that the Ohanah extension itself should provide only what is necessary and essential for managing the events. Everything else can be built on top of that. That’s the reason Ohanah architecture is highly optimized for extensibility.

RESTful API

Each view in Ohanah has a JSON output. By simply adding format=json at the end of the string, you will get the same data that is rendered in the view as a JSON encoded string.

Same views outputing different formats.
Same views outputing different formats.

This feature is used internally by Ohanah calendars to fetch the events. If you wish to build an application that will use Ohanah as a source for the data, there is literally no code required for you to build endpoints. Making a specific endpoint is as easy as making new menu item. For example, if you want to fetch the events and display it on venue’s external website, all you need to do is make a menu item of type Event list, put it in the hidden menu, open the URL of that menu item and suffix it with format=json. That’s it! This approach can also be used by your mobile application that fetch the events from your website. You will save precious developing hours with Ohanah’s out-of-the-box features.

Component based architecture

As stated above, Ohanah uses approach called Component based architecture meaning that is adapted for extensibility. Again, we use this approach internally. From the end user point of view, Ohanah is one extension, but under the hood, it’s actually 3 components: com_ohanah itself, com_emails that is used for email notifications and com_forms that is used for form builder. That means that you can build a component that, for example, will send SMS notifications without any modifications in the core code. No more mess after the update.

Angular powered backend

You may notice that there are a lot of dynamic fields in Ohanah backend (and some in the frontend). Instead of spaghetti jQuery code, there is a beautiful Angular based application powering all the dynamics. Example:

Geolocation during event creation is powered by Angular
Geolocation during event creation is powered by Angular

BEM CSS

While making base Ohanah CSS we took the BEM approach. It makes Ohanah’s core CSS more understandable and thus more extendable. Ohanah has minimal CSS to pick as much template’s CSS as possible. Of course, this doesn’t work always, but the minimalistic, verbose and easy to understand CSS ease the process of changing the look of Ohanah to match look and feel of your site exactly.

Template overrides

Ohanah uses very simple templates that are modular and easy to override. Data is always available in very easy to understand the format ($event->title, $event->category->title, etc.) so you can embed it in a markup of your choice.

Modern Developer Tools

Do you still develop in WAMP/LAMP/MAMP environment? Manual configuration of tools, manual backups, manual debugging, no way to collaborate? Really? We’ll, we don’t. We use modern tools, made for productivity.

Vagrant box

Ohanah is developed and tested in a Joomlatools Vagrant box. It’s a Ubuntu virtual machine with all the tools already in and configured properly. You can share your Vagrant box output with others very easy, which is great to show work in progress to fellow developer or a client.

Among other standard tools, Vagrant box is packed with the Joomla Console which makes testing a breeze. Creating and destroying Joomla sites is super easy, and navigating all the sites is done from Dashboard.

Debugger

One of the advantages of developing for Joomla in Vagrant box is the built-in debugger. With a full stack trace, it’s easy to find where did you made a mistake.

Advanced debugger available in Vagrant box
Advanced debugger available in Vagrant box

Developer friendly environment ready for extension
HMVC architecture, easily extendable, REST API available out of the box. Build your custom solutions around Ohanah's powerful core.

Get Started Today