Every custom application starts with your custom Items. Whether we're building a Product Catalog or an Events sytem, chances are your items will have aspects that relate specifically to what you do. In the below example, this simple Event Item is made up of some basic elements. Name, Text are plain 'ol text elements. We have a Date/Time element, an Image element, a Google Maps element, and a handful of very standard, basic elements. On the right, you see how they all come together to make up the Item. Since they are separate elements and not just plain text typed into a page, we can choose to stream elements to widgets like a Calendar, Slideshow or List. The database stores your elements in separate tables--so Items can also be sorted in order by a specific elements, like an Event Date. If this Event Item had two Date/Time elements, you might give visitors the option to sort by Events in the afternoon vs Events in the morning. We can also set individual elements to require a certain access level. In the below example, let's say there's a Download that's only accessible to visitors who are logged-in.
Being able to create and publish content from the Front-End of your website had been accessible to most business' since 2007. However, until 2011, this was reserved strictly for administrators. Company employees and small business owners would login to the Front-End with restricted access, and edit or publish a new page or article. This changed with the introduction of custom Apps. With a CMS like Joomla, and powerful Content Construction Kits like Zoo, we began producing custom Apps.
Let's use the Craigslist-style marketplace as an example. We would want our application to allow website visitors to create and publish content - in this case a listing - on their own, without any help. We might also want to extend options to registered users, that public users don't get access to. This is a pretty standard, simple application need.
We'd need a bunch of categories for listings to be posted to. We'd also want to configure item creation for the listing model. Some elements that would make sense here would be the Title, Images, Price, Description, Contact and maybe some Tags. We might also want a Date element so the items can be sorted by Most Recent when visitors are browsing or searching to buy things. Lastly, we'd want a Related Item element to associate the User Profile with the listing itself. With the Related Items element, we could automatically show every listing from a user when you look at their Profile. In reverse, we could automatically show a link (or Name and Image, etc) to the user's Profile on every listing.
Below are some examples of common custom apps many of our clients have in their web systems. This is by no means a complete list. Often, we tie multiple Apps in together for a website or cloud system. The Oakland Athletics Intranet system, for example, uses 5 custom web applications.