Creating custom widget and mobile support

Topics: Administration, Core, Customizing Orchard, Localization, Writing modules
May 8, 2016 at 8:44 PM
We would like to build a online CMS portal using Orchard CMS. This site should support following:
The site should be responsive (twitter bootstrap).
Should support multiple languages.
How the Orchard functionality can be exposed using Web API Json services. This will help us developing mobile apps in future.
The site will have 90% custom pages. Theses pages will have some custom control / widget and other stuff like a normal page.
We will need the custom widget, so that it can be included in a page.
We will need both admin page for entering data as well as actual rendered widget for customers.
The images are attached for your reference. Admin screen 1 and 2 shows sample admin screens.

The Page type drop-down will decide what is the type of the page (for example Hospital/ Hotel/ Place)
The actual user screens should looks like User Screens 1, 2 & 3.
Admin or Data entry person will create individual pages like for a hospital, Hotel or place.
When user searches suppose “Hospital XYZ”it should see a page as shown in User Screen 1 & 2.
Please note as user is viewing a particular hospital page the accordion tabs in the same page also shows data for “Other Hospitals Near by”, “Hotels Near by”, “Places Near by”. The should be calculated automatically based on the coordinates of each.
Also check in case of Hotel what things are changing.
I have mentioned Hospitals/ Hotels/ Places just for reference, but in reality the types can be of any number and we should be able to add or remove them whenever required.
Whenever a new type is added then content of that type should be visible in User screen 1 and 2.

Please go through the requirements and please help me what are the best possible ways to achieve this architecture wise. We would like to know what you will use? How the widget will be created? How it will be used in page at admin side and user side? This is question of a long term project for us, so knowing all things clearly before starting is a good way to start with.