Skip to content
Saumya Kanoria edited this page Sep 19, 2016 · 6 revisions

Almost any app needs an admin console for app admins to be able to configure/manage the app and its data.

We provide a skeleton admin console that provides some common/example functionality built-in. This built-in functionality also serves to outline the steps required to add your own app specific functionality to the admin console.

That being said, we do realize that there already exist great libraries for declaratively putting together such consoles, such as ActiveAdmin, RailsAdmin, Administrate and some others.

So, we've structured this admin console in such a way that you can swiftly and painlessly swap it out for any of the above. Read below for an explanation of this structure. But then this begs the question - why did we reinvent the wheel? The answer is - for the very simple reason that none of the above are designed to be Single Page Applications (SPAs), whereas ours is.

Admin Console Application Structure

We have structured the admin console to be somewhat of an "app within an app", so that it can be easily swapped out for any other admin console of your choice.

On the server side, it has its own routes, its own root Admin::ApplicationController and views. See:

On the client side, it manages its own assets. See:

NOTE: Server side models and authorization policies are shared between the "client app" and the "admin app". This is important to remember.

Any other code that is to be shared between the two is explicitly placed within one of many */shared folders. These shared folders are present in several locations in the directory tree, as appropriate.

Clone this wiki locally