Living SPEAK guideline used internally to share same structure and code style. It is work in progress and you are welcomed to pull request it.
The following guidelines apply to business applications created by Sitecore for release as part of the Sitecore platform.
Whenever possible, keep all definition items for an application in a single folder. This includes all page definition items, templates, component settings items, and so on. Make exceptions only when required by Sitecore, such as for dictionary definition items.
Create the application folder in the Core database, under the /sitecore/client/Applications folder.
The application folder name should match the application name.
Set the application folder item’s icon to the UX approved application icon.
Create the application Dashboard page, which is the application’s default initial page and is also known as the root page, directly under the application folder. Use the name Dashboard and the /templates/branches/applications/DashboardPage branch.
Create all other pages accessible from the Dashboard page as sub-items under the Dashboard page, so that the navigation components, such as the Breadcrumb, can generate an appropriate structure.
Create a Settings folder directly under the application folder. Create folders under the Settings folder to store non-page related definition items, such as for common text, templates, field value enumerations, and so on. Give these folders appropriate names, such as Templates or Common Text.
Add an application shortcut that links to the application dashboard page to the Launchpad with a UX approved icon and title.
Create a folder with the name of your application underneath the …\Website\sitecore\shell\client\Applications folder.
Create a folder structure underneath this folder with folders for each page that requires page code or other definition files.