TouchtapRuby / Rails / Sidekiq
We knew immediately that user experience and a simple, understandable web app would be key to a successful launch and adoption rate. School administrators will be rushed to manage an entire student body, manage an event calendar, perform bookkeeping tasks and engage with parents.
Ensuring that all parts of the web application are self explained, with clear instructions and several "wizard" like processes ensure that even the most non-technical public school veteran can adapt and enjoy this new management application.
A large part of the SPI goal is to eliminate the need for cash and check when paying school fees or signing permission slips for events and field trips. To achieve that goal, we had to accept payments in-app from a variety of payment sources, such as credit or debit cards, and even ACH bank transfers.
Schools can designate and route incoming funds to linked bank accounts for deposits, denote if the parent or the school will pay for SPI processing fees, view a comprehensive double-entry accounting ledger for each bank account, export transactions as a spreadsheet and print right from the browser.
Book keepers and school administrators should never be left wondering the status of a payment, refund, fee, or bank transfer, with full transparency on funds availability, linked ledger entries, and more.
In order to ensure a robust web application and mobile API, the codebase was created in 3 distinct units from the beginning: a shared "engine" of all applicable service and database logic, the API, and the web application.
Separating into 3 codebases allows us to have a very high test coverage on the shared codebase, a lightweight and well tested API that is tuned for high concurrency on production, and a web application that can ignore any API code and be tuned for high throughput.
Conceptually the codebases are distinct and have a clear role. Our test suite provides utilities to make testing in the API and web codebases simpler and keeps the Continuous Testing as quick as possible in each deployable codebase.
With a tight deadline and a team of 6 working asynchronously across 3 timezones to design, develop and launch an entire web and mobile platform in less than 90 days, we had to be organized.
Utilizing Google Hangouts, Slack, and TeamWork we managed to stay connected and deliver a large, well tested product platform on schedule within 2% of the budget and scope. This has allowed us to continue to support and explore new features for School PayIt post launch, building a long term relationship to best maintain the launch momentum.