AstBill: Design Principles
From AstBillWiki
[edit]
AstBill Design Principles
AstBill's development should concentrate on being a VOIP Billing, Routing and Management system for Asterisk and later SER. While the potential exists in the code to turn AstBill into many things, we should focus on the task of designing a system to track VOIP Billing, Routing and Management for Asterisk. While development occurs, we should stick to the following design principles:
- AstBill runs on Drupal. Speed and efficiency in upgrading to new versions of Drupal should be maintained at all costs. We don't change Drupal code or Database definitions. All AstBill data have to be in AstBill tables with names starting with ast.
- AstBill must run on freely available, open source tools. AstBill support should be widened to support commercial databases, tools, and operating systems, but not at the expense of open source ones.
- Speed and efficiency should be maintained at all costs. One of AstBill's major attractions is its lightweight implementation and speed. Minimize calls into the database whenever possible, don't generate speed sucking HTML, don't fetch more data than you need to, etc, etc.
- ANSI SQL calls and data types must be used in all new queries and tables. Avoid database specific calls and data types whenever possible. AstBill is Developed on MySQL 5 and are using Stored Procedures and View's from MySQL 5.
- This should be obvious, but we should be browser agnostic in our HTML and form generation, which means following all applicable standards.
