CITS Framework

CITS Framework

Current Version: 1.8.7
Current Version Support: SaaS model (Partial)

CITS Version 1.0.1 Code Documentation
Table of Contents
About Construe IT Solutions
Our services are
Documented details
Purpose of the Document
Our Target Audiences
How to Contribute
How to Use
For Developers
Architectural Details for CITS Framework
Model–view–controller (MVC)
Object Oriented Programming Structure (OOPs)
Physical Distribution of Code
Folder Structure
Control Flow

About Construe IT Solutions

Construe IT Solutions (CITS) Private Limited is an innovative consultancy started with an objective to add value to businesses and help them grow exponentially. We are a group of experts specializing in CRM solutions, Web Application development and consulting services. We constantly update ourselves and strive to keep pace with global industry trends and standards. We adopt innovative ways to achieve superior customer satisfaction by providing quality services.
CITS consults in Business Process Management, Automation of Business Processes and Process Optimization Procedures.
CITS was founded with an objective to provide the ‘smart fit’ IT solutions to give our clients a competitive advantage. We are a group of experts specialized in web and mobile based application development. We at CITS create world class applications using robust and best-in-class technologies that enhance the customer’s experience and optimize business performance.
CITS offers best-of-breed platform to enable design, development and implementation of powerful, robust applications and business processes across the entire organization on cloud or in premises.
CITS offers flexibility, agility and ease of use that enables you to quickly and easily make your own customized solutions by streamlining business-focused processes. Ethics, high standards of corporate governance and extreme customer centricity are mainstays of CITS. We believe in Continuous Improvement based on Customer feedback ensuring progressive approach. Offering quality services at highest possible returns on IT investment is our goal. We have years of experience in implementing and delivering innovative software solutions across varied technology and business platforms.

Our services are

  1. Web Application and Website Development
  2. Web Services and Application Integrations
  3. CRM Integration, Implementation, Development and Maintenance
  4. Content Solutions
  5. Mobile based business applications

 

Documented details

Created on: July 21, 2013 by Amarjyoti Ashrit
Modified on: May 2, 2014 by Sanjay Beedi

Purpose of the Document

The purpose of the document is to give an overview of the Framework and Guidelines to customize current framework architecture and code base. Also to Building and add additional features to the framework, the document also provides the details:

  1. An overview of some of the major modules/components and their activities involved in creating the framework and a good code writing practice to follow.
  2. To identify existing resources those support the development of sound local practices for creating and managing the website.
  3. To encourage developer participation in the ongoing development of best practices for building for building the framework

Our Target Audiences

The rise of shared information spaces such as Video Sharing and Image processing portals; the popularity of social networking sites (personal and professional) and the growth of new creativity demonstrate that good digital websites/applications has become an active collaboration between the information professional and the user, resulting in collections that are reliable and authoritative, yet also compelling and useful to a wide range of users wherever they live, work, and play.
As the digital environment/Internet is the new place for the business and to capture/target more customers and consumers, the focus of digital websites and application efforts shifted toward the creation of useful and relevant frameworks that served the needs of one or more communities of users. The bar was raised to include levels of usability, accessibility, and fitness for use appropriate to the anticipated user group(s).

  1. Businesses that want to encourage the development of better customer base.
  2. Organizations planning and implementing customizable websites for their organization or customer.
  3. Companies who develop websites and web-based applications.
  4. Developers who like try new customizable frameworks.
  5. Contributors And Students, in particular the younger generations who have integrated digital technologies so completely into their lives that they are ready and even eager to move into a role as creators and collaborators.

How to Contribute

Detailed research and effort has been made to select resources that are useful, reliable, reusable and current. However, the list of resources is not exhaustive and, given the dynamic nature of the digital information environment, can be expected to change rapidly over time with the help and support of the contributors.
With the first version of the Framework, we open the document up for ongoing contributions from the community of librarians, archivists, curators, and other information professionals. We encourage you to contribute your own ideas and experiences, suggest resources, and evaluate those that have been suggested.
Frameworks contain key distinguishing features that separate them from normal libraries:

  1. Control Flow: In the framework, unlike the libraries and other normal user code, the overall program’s flow of control is not dictated by the request or file, but by the framework’s architecture.
  2. Request and Response: The framework has a default behavior/action for every request and response. This default action must be some useful response and not a series of unrelated information.
  3. Customization and Modifications: The framework can be extended by the user for selective overriding or specialized by user code to provide specific functionality/action.
  4. Modifiable framework code: The framework code, in generic, and can be modified, while accepting user-implemented extensions. In other words, users can extend the framework, but should not modify its structure.

How to Use

There are no absolute rules for using the framework. Every implementation is unique, with its own set of audience, rules, functions, target, goals, and needs; which in turn have different constraints for the project building and collections of materials. BPOs, IT firms, Education, Museums, Libraries, Construction and many more have different target users, communities, imports, organized philosophies, funding, income and control structures.
The ‘key to a successful’ of a project is not to strictly follow any particular path, but to plan strategically and make wise choices from the set of available tools and processes to support the unique goals and needs of each collection.
There are a few cases where policies may not be required. In some cases follow principles for building good collections as appropriate. User can develop their own intelligent module, include library, build their own knowledgebase and Web services. These still benefit and the users may be the best judges of relevance.

For Developers

A good script/code collection is created according to an explicit collection of development policy. Scripts should be properly commented so that a user (Tester or a co-developer or handing over the project to next team) can discover characteristics of the script, including scope, format, restrictions on access, ownership, and any information significant for determining the script’s authenticity, integrity, and interpretation.
A good script is curated, which is to say, its resources are actively managed during their entire lifecycle, and is broadly available and avoids unnecessary impediments to use. Scripts should be accessible to persons with disabilities, and usable effectively in conjunction with adaptive technologies. Maintain a mechanism to supply usage data and other scripts/references that allows standardized measures of usefulness to be recorded and/or commented.
Respects intellectual property rights

Architectural Details for CITS Framework

For each entity, general principles related to quality are defined and discussed, and supporting resources providing further information are identified. These resources may be standards, guidelines, best practices, explanations, discussions, clearing-houses activities, or examples.
The framework (CITS Version 1.0.1) is built by Construe IT Solutions Pvt. Ltd. It is customizable for any business application or website over internet. It is an abstraction in which software providing the generic functionalities and can be selectively changed by additional user-written code, thus providing application-specific software. The software/framework is reusable set of code, a platform to develop software applications, products and solutions. Software frameworks include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or solution.
Issues of cost/value, sustainability, and trust have emerged as critical success criteria for the framework. Objects, metadata, and collections must now be viewed not only within the context of the projects that created them, but as building blocks that others can reuse, repackage, repurpose, and build services upon.

Model–view–controller (MVC)

The framework is designed considering the Model–view–controller (MVC) software architectural pattern for implementing user interfaces. The framework/software-application is divided into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user end.

  1. The central component: the model consists of application data handling, data processing, business rules, logic and functions.
  2. The view is the representation part and can used to output HTML representation of information, such as Static content pages, user input forms for accepting user information and search various modules content, also used for graphical representation of static information pages or dynamic diagram/Chart based interfaces. Multiple views and modules of the same information are possible.
  3. The third part, the controller, accepts request/input and converts it into commands for the accessing different module and their respective action or view.

Object Oriented Programming Structure (OOPs)

The framework defines most of its features and functionalities using OOPs. Each Module is a class, and to use its features/behavior the developer need to initiate its object. A default constructor is defined to handle basic behavior of each class at global level.
There is a direct connection between the production qualities of a digitized object; the willingness and flexibility with which that object may be used, reused, and migrated across platforms. As a result, the creation of digital objects at the appropriate level of quality can pay off in the long run as the objects are rendered more useful and accessible over the longer term.
An object intended to have long-term value should be formatted to render it exchangeable across platforms and broadly accessible (Not all objects). A project needs to assess the value of the digital objects in its collections and make appropriate decisions about persistence and interoperability.

Physical Distribution of Code

The framework is organized in tree like folder structure. This done to make framework more reliable and fast, the libraries are included on the fly as per their requirement.
For example:

  1. The database library is called only if the data has to be extracted from the database.
  2. Currently supporting only MySQL
  3. Planning:
  4. MSSQL
  5. Access

iii. PostGRE

  1. SaiBase
  2. Distributed Databases
  3. The email library is called only when an email has to be fired.
  4. Currently supporting only PHP Mailer lib.
  5. The web service library is called only when a web service has to be accessed.
  6. Currently supporting only SOAP library

Folder Structure

All the files are grouped in folders as per then functionality and priorities. There are only 4 files in the root folder of the framework:

  1. 404.html: Page loaded when a request could not be handled or request view or action is not defined in the system
  2. config.php: Used for configuring the framework
  3. Administrator section can be implemented on different folder (outside the framework or inside which is configurable).
  4. Database details
  5. Email configuration
  6. Default module, view and action
  7. Web Service setting
  8. Template to user

Each folder is having 2 basic files:

  1. “index.html” for permanent redirect for not accessing the folder thru a request.
  2. “index.php” for handling the default response:
  3. In case of Module, the checks and loads a default view.
  4. In case of View, it shows a default page for the module.
  5. In case of Action, it returns a null response.

Control Flow

When a request hits the framework it accesses “index.php” file in the root directory. As set by the web-server, if not defined at the web server level developer can change the web-server setting or can generate a file (index/default.html as per web server setting) and permanently redirect it to “index.php”.
“index.php “ defines the global constant, set to ‘true’. Generally is a check: if no other file has to be accessed directly by a request from the user, internal files need not check if it can be accessible directly. Then it calls the framework’s configuration file, which internally includes the configuration file in the root directory to assigned system related variables (for example: database, email, web service etc.).
The web configuration file reads the user config file stored in root folder and assign accordingly. Also defines other system variables. Then the file calls the global controller, and hand over the control to the file.
The Global Controller file reads the request and load required files (libraries, action or/and view). The controller is designed to handle php, html, xml and json request types. Also defines action response format.
Based on the request the Global Controller accesses the files, if the file is present it includes the file. If not file does not exists, it checks if alternate workflow is defined. If the workflow is defined it follows the process else sends and error message and kill the process. The files are fetched in the following manner:

  1. If a library is required, it goes to “/Includes/lib/required_lib/required_lib.php
  2. If the request is just to access the application
  3. The controller loads the default Module and View as defined by user in the root config file, else it loads the default module “Home” and View “index.php” as defined by the system.
  4. If the request is for a module, it checks in “/Modules/Module_name/” folder.
  5. First it looks for the module’s controller file, if exists the control is given to the file else process further request.
  6. If the request is for a view, it checks in “/Modules/Module_name/Views/”
  7. If the requested view is available, it loads the file else it loads the default view (index.php in Views folder).
  8. If the request is for an action, it checks in ‘/Modules/Module_name/Actions/”
  9. If the requested action is available, it loads the file else it loads the default action (index.php)

In all the cases; if no file is found the Global Controller loads the “404.html” for page now found.