Autumn Quilt - ResponderZero/AutumnQuilt GitHub Wiki
Autumn Quilt
In the warmth of fire light the patient farmer rests wrapped in an old quilt. A quilt made from years of garments lost in diligent work. Autumn is here. He worries little for the harvest is over and the work complete. The expectations for the next season have not changed. Ample understanding in his craft gives strength to his ambition.
Purpose
Web applications in a business environment consistently require the same features. These features are coupled so tightly with the solution that they can not be reused. The lack of re-use is waste; it is like writing disposable code. Writing code requires time. Lack of reuse is a waste of time. Autumn Quilt is meant to make major web application features easy to install and reuse.
Architecture
PHP is a very powerful language with cheap hosting solutions. The PHP development environment has matured to an amazing point where frameworks and IDEs are able to do much of the heavy lifting. A smart development shop could use these free tools to develop business process specific solutions for corporations. To go one step further, a development shop that creates feature modules that can be re-used can build a solution library to make product development insanely fast and defect free.
The Yii framework has been selected for the Autumn Quilt project. The Yii framework is well documented and it's coding conventions make it ideal for code generation. Each feature concept group will be a Yii module. The modules will grow dependent upon each other. The modules are not meant to be independent. The patch is not the blanket. The combination of the patches becomes the quilt. The grouping of code into modules is to make maintenance and testing easier.
Modules
- attachment
- People use more than just the web.
- Users need the ability to attachment documents.
- collaboration
- People need to be able to share their expert opinion.
- The ability to add comments to resources is required.
- The ability to leave messages for users is required.
- compartmental security
- People need to be able to clearly identify which users can access or see which kinds of data.
- The ability manage information in compartments/teams is required.
- The ability to track information access is required.
- export
- People need their data outside of the web.
- The ability to export data into other formats is required.
- lookup
- People manage data by grouping it with pre-defined lists.
- These lists are used to standardize data capture for analysis and reporting.
- Profile
- People need to be defined as users.
- The ability to authenticate users is required.
- The ability to store are retrieve a person's contact information is required.
- property
- All web applications have properties that require configuration.
- Administrators need the ability to manage these properties in a clear and consistent way.
- storage
- All web applications that persist data need to develop storage standards.
- The ability to store data is required.
- The ability track who created and modified data is required.
- The ability to track data changes and recover to previous save points is required.
- webservices
- The ability to make the application available to other systems is required.
- workflow
- The ability for a complex business process to be managed inside a web application is required.
- The ability to track status change and automate notification is required.
- The ability to perform audits on workflows is required.