project
BookPals
Full-stack cloud-based business accounting and bookkeeping SaaS platform with a Ruby on Rails backend and native iOS mobile app.
Domain / Industry: Accounting/FinTech
Full-stack Developer · Dec 2014 – Mar 2016 · ~1 yr 3 mo
The Problem
Small business owners, freelancers, and independent bookkeepers often operate in a fragmented landscape of financial tools. They are typically forced to choose between enterprise-grade ERPs that are prohibitively complex and expensive, or simplistic apps that lack the robust features required for true professional bookkeeping. Users needed a centralized, cloud-based platform capable of:
- Executing a true double-entry accounting system.
- Generating professional, industry-standard financial reports (Balance Sheet, P&L, etc.).
- Capturing and digitizing physical receipts while on the move.
- Collaborating securely with accountants and business partners in a multi-user environment.
- Managing recurring subscriptions and payments within a single, unified ecosystem.
The Approach
BookPals was designed as a mobile-first, API-driven SaaS ecosystem. The architecture centers on a Ruby on Rails monolithic engine that handles complex business logic, while a native Swift iOS application serves as the primary tool for remote financial data entry and receipt management.
- Financial Engine: Built a robust double-entry ledger system using PostgreSQL to ensure strict data integrity. Every transaction is tracked through journal lines, effectively managing assets, liabilities, equity, income, and expenses.
- Multi-Tenancy: Implemented an "Organisation" model that acts as an isolated container for a business's financial data, tax configurations, and user permissions, allowing seamless collaboration between clients and their accountants.
- API-First Design: The iOS app consumes a secure, token-based API created for the Rails backend. This allows users to authenticate using the same credentials as the web platform, capture photos of receipts with their phone camera, and upload them directly to AWS S3, where they are automatically associated with the appropriate ledger entries.
- Extensibility: Integrated Stripe to handle SaaS subscription billing and utilized third-party services like SendGrid for transactional emails, Cloudinary for image optimization, and Wicked PDF for server-side generation of exportable financial documents.
Key Outcomes
- Comprehensive Accounting Platform: Delivered a production-ready solution that bridges the gap between basic trackers and heavy enterprise software.
- Synchronized Ecosystem: Enabled a seamless workflow where mobile-captured receipts instantly populate the web-based accounting dashboard, significantly reducing manual data entry for small business owners.
- Professional Networking Layer: Developed a unique "Pals" feature that embeds a social networking layer into the financial platform, facilitating professional connections and inter-accountant communication.
- Production-Grade Integration: Successfully managed the complexity of integrating six major external service providers (Stripe, AWS S3, SendGrid, Cloudinary, NewRelic, and Akismet) while maintaining a high standard of security and performance.
- Administrative Control: Empowered non-technical admins with a sophisticated backend panel, enabling them to manage users, edit CMS content via CKEditor, and monitor system health without direct code intervention.