Qcodo
Qcodo is an open-source PHP web application framework which builds an object-relational model (ORM), CRUD (create, retrieve, update, delete) UI pages, and AJAX hooks from an existing data model. It additionally includes a tightly integrated HTML and JavaScript form toolkit which interfaces directly with the generated entities. It is a robust, comprehensive framework which can be utilized by small and large Web applications alike.
Original author(s) | Mike Ho, Quasidea Development |
---|---|
Developer(s) | Qcodo Community |
Initial release | October 18, 2005 |
Stable release | |
Preview release | |
Written in | PHP PHP5 JavaScript SQL |
Operating system | Cross-platform |
Type | Web application framework |
License | MIT License |
Website | http://www.qcodo.com/ |
The project is unmaintained as of 2015 and has not been updated since 2011.
Structure
The framework consists of three main components: a code generator, QForms (OOP generated stateful Ajax- or server-processed webform), QQuery (OOP based SQL query builder) -- all of which can be used independently of each other. The code generator parses an existing relational database structure, and builds an object-relational mapping (ORM), as well as several remote interfaces (SOAP, AJAX) to the ORM. The ORM in Qcodo can be extended to provide user-maintained functionality (via object subclassing). QForms is an ASP.NET-inspired templating engine in which each form element is an object exposing its functionality and state via methods and attributes.
QForms maintain page as well as form state, and include the ability to validate fields, trigger events, and associate AJAX calls. QForms bind tightly to the ORM, allowing developers to rapidly and iteratively change any of three components in the model–view–controller (MVC) architecture with little impact to the other components.
The Qcodo Package Manager (QPM) was introduced starting with Qcodo v0.4.0 to allow community members a much more streamlined and efficient way to post and share modules, enhancements and fixes of the Qcodo development framework with each other. The Qcodo.com website can be used to view user-submitted QPM packages that community members have contributed at the QPM Section of the website.
Qcodo was conceived and developed by Mike Ho, and his company Quasidea Development acts as the central maintainer with dozens of contributors from the Qcodo Community that provide new features and releases via the Qcodo website.
The website, itself, is written in Qcodo and custom developed for the community, including suite of tools like online forums, bug/issue tracking, online showcase and QPM management. It is integrated with GitHub to manage releases of the Qcodo Framework itself. The code for Qcodo.com is also open sourced and available at GitHub as well.
Uses
The framework is mature and has been deployed in many production environments in everything from highly trafficked social networks to large Fortune 500 and government organizations, including:
- NASA Online Project Information System[2]
- NASA Exploration Life Support
- Stanford University School of Medicine, Biomedical Informatics Research
- Uloop, the largest student-to-student Classifieds network
- Chess.com, the largest Chess-focused social network
- Academy of Country Music, the official website
- Delo.si, the official website of Delo, the major daily newspaper of Slovenia
The framework has been presented at many conferences across the nation, including the Zend/PHP Conference, the MySQL User's Conference, MySQL's Dev Zone, AjaxWorld conference and expo, and DC PHP. It has over 250,000 downloads from thousands of users spanning over a hundred countries.
QCubed
A community driven fork, QCubed, was publicly launched on November 6, 2008. It has 11 core contributors working in SVN/trac based environment with shared responsibility for the codebase. It features a plugin system and installer. All custom JavaScript has been replaced by JQuery code
References
- Qcodo Development Framework - Downloads
- Levri, J.A.; Deng, B.; Welch, J.; Ho, M.C.; Hogan, J.A. (2009) "Online Project Information System (OPIS) Description, Annual Reporting Outcomes, and Resulting Improvements" 39th International Conference on Environmental Systems, SAE 2009-01-2513.
.