Web application description (phase I)
• We need to have a DB driven web application developed. It will be a single page application with extensive use of AJAX.
• The application is largely a 'view' application where the user will make several choices to affect the content displayed on screen. There will however also be a few simple forms for managing certain entities required by the application.
• The content to be displayed is mainly a graphical (tree) representation of some data. We have identified a library ([login to view URL] ) that can be used as the base for further developing our graph. Additional attributes/display states will need to be added to the graph/node objects shown in the example above
• For the forms, they will be simple forms that need to be edited in place (with modal popups maybe) with simple/standard input validation attached to form fields. The collected data will be submitted back to the server for processing
• The AJAX/JavaScript front end will exchange data with the business layer via JSON. The business layer (JSP or PHP) will in turn talk to the database via a DAO layer
• This will be a public website with access restricted by user-id/password
• We are leaning towards using the Dojo toolkit and would like to maximize use of available widgets
• Use dojo elements wherever possible
• Use [login to view URL] for linking events/functions/coordination
• The code should be well structured
• All controls to be declaratively created in html
• All script to be separated into include (minified/obfuscated eventually)
• All data through json bound to elements.
• All hyperlinks /navigation through a controller object, not direct hyperlinks
• Use OOP for creating/managing all presentation objects
• Client side data caching mechanism is required. All requests should first check the client side cache and call to the business logic server
• The hash key for looking up the client side cache should be the list of parameters submitted to the server in the JSON call along with the method call
• A feedback capability is also desired (similar to Google+). On clicking a help/feedback button, a simple feedback form pops up with a category drop down and a textarea for comment/problem description and submit/cancel button
• The detailed page specs will be provided to the shortlisted vendors who respond and can show examples of similar work and demonstrate understanding of the requirements
• Client side AJAX/javascript requirements as described above
• Server side JSP/PHP business logic (mainly input validation, form handling, controlling requests etc.)
• DAO layer generation (using some kind of DAO generator). Hand coding data access layer is not preferred
• Database design and SQL for retrieving information is not in scope. We already have that worked out
Overall product vision/plan
• This is for a cloud hosted (SaaS) application
• The application will have a Rich UI front end getting all it's underlying data from a relational database. For the first phase only display functionality will be required. For a later phase data entry using smart forms and/or smart data grid (potentially visual drag drop also) ability will be required. This user entered data (configuration type information) will also be stored in the underlying database. There will also be some file system storage of large character objects.
• The website will have a few descriptive pages that are publicly available but a bulk of the application will be for authenticated users and those pages will be database driven as described above
• Capability to build interface to Amazon's management console to manage this application and take care of elastic scaling/contraction depending on user load
• Later on, integration with open source packages providing social aspects such as forums, wikis, blogs, FAQs etc. will be required