Back to projects

Go Grants Online

GrantsOnline™ (GO™) is a web-based management solution for grants in the field of arts from WESTAF. GO™ represents a powerful, highly adaptive tool for grantmakers. It provides the complete grant management process workflow, from initial planning and notifying potential applicants about a grant opportunity to the grant award and closeout process, making easily accessible all datasets and communication options, reporting functionality, and other management tools needed to successfully complete these tasks.

objectives and daily challenges

The major challenge of the GoGrants project is that the application was firstly developed by another company and at the moment of the handling over it was in a not functioning state: inadequate database structure, no modularization, no standardization, incomplete features, buggy system, unstable system, no data security and recovery system, incomplete deployment protocol, no documentation, no extensibility, no scalability, duplicated code, no structure, difficult to maintain, performance issues, incomplete reporting, no usability

We had to make it useable in a really short period of time as it had to be launched.

Objectives: bring the system to a functioning state, backend refactoring: complete mapping of all modules problems and recommend and implement viable solutions, complete frontend refactoring, new data import tool, new architecture, new features

results

After we fixed the major problems and made the system stable, we started with a top to bottom approach to be able to bring to market faster and make visible the improvements to the users, hence increasing customer satisfaction.

  • New fronted: increased usability, look and feel, we added bootstrap and later on optimizations to it to make it faster and reduce page load time
  • For a smooth release, we provided the option of adding a switch between the new fronted and old fronted (as a temporary solution until fully adoption)
  • We included the autosave feature, tested it (load/stress tests) and added optimizations
  • New Features: Clone Cycle, Core Fields, Archive Engine

Backend optimizations

  • An object oriented programming approach was adopted
  • Parts of the new proposed architecture begun to get shape (the addition of an ORM layer, separation of modules, elimination of duplicated code etc.)
  • Data Tables optimizations => Obtain more easy to use data tables. Eliminate all the SQL hacks to handle data and provide easier and faster data access. Data Sanitization was already done with the inclusion of the new frontend. The implementation of a DB Recycle Bin was also proposed.
  • Refactoring of the major modules was started.
  • Smoother deployments (Protocols were added and we started preparing the field for continuous integration)

Visible results included: reduced number of bugs, no down time for over a year now because of code related issues, overall increased stability and better behavior at the addition of new features (extensibility), scalability was addressed also together with the help of the client

team and timelines

Resources - People:

  • 3 senior programmers (1 software architect, one database expert and one frontend and backend developer)
  • 1 tester (manual and automatic tests using Selenium)
  • 1 dedicated PM on location
  • 1 sys admin
  • on-call and support level 3

Young, but bright and experienced team, with ideas, vision and not afraid of changes, always up to date with latest changes

Working time:

  • adaptable working hours based on client
  • on-call time
  • 24 hours availability through skype/e-mail

Total Number of Hours spent:

  • over 12 000 MH in 4 years

Technologies:

PHP 5.5.27, MySQL 5.6.22, Zend Framework 1.6, Wkhtmltopdf 0.12.1.2, PHPExcel 1.7.6, XML Array 1.6, Guidestar API 1.0, Gisws Miamidade API 1.0, jQuery 1.11.2, jQuery-UI 1.9.1, CKEditor 4, Twitter Bootstrap 3.3.2, Reactive 0.7.2

consultancy

  • Implement best practicing (development, deployment and releases, testing)
  • Focus towards continuous integration (prerequisites, deployment protocol, config handling, scripts maintenance)
  • We provided monthly optimizations proposals.
  • A structure and data hierarchy diagram was created for the client and for developers as well to have a better picture on what parts of the application need immediate attention and refactoring or optimizations.
  • Major code duplication cleanup
  • Risk and impact analysis
  • Training and knowledge sharing for other developers
  • Performance analysis
  • We provided consulting and analysis: stability, usability, costs, planning, resources allocations, deployment protocol, strategy (modular programming), statistics, roadmaps, charting
  • Complete activity reporting (reports, logs, results)
  • Dedicated Project Manager on location
  • Adaptable working hours and on-call, availability
  • GGO Automated Tests (test cases preparation) + load tests
  • Proposed deployment and release protocol
  • Transition from the waterfall development model to agile
  • Maintenance and bug fixing
  • Detailed explanations, charts, diagrams for non-technical people
  • Configuration and maintenance of testing server
  • Writing of documentation for existing code and for newly added features
  • Introduction of unit tests for newly developed features and modules
  • New Features Release Planning
  • Visits to the client and invitation to visit us (transparency and communication)
  • Vision document and client oriented planning
  • Brought 3rd party consultants paid by Barandi to provide the best solution for deployment protocol
  • Internal meetings for consulting of our best programmers by the assigned developers to the project in providing the best solutions for the client problems
  • Direct involvement of the CTO and CEO
  • Meetings with 3rd party consultants brought by the client for solutions to improve the system
  • Improvements proposals
  • Kept up with the technology (upgrades, added new library, new tools, tested possible tools)