Highlights
- Comprehensive Audit: Conducted audits encompassing UI/UX, architecture, and technical solutions to ensure optimal performance and user experience.
- Legacy to Production Journey: Successfully navigated the transformation from legacy systems to production, ensuring a seamless and efficient transition.
- UI/UX Redesign: Implemented a visually striking and user-friendly interface design, aligning with contemporary design and usability standards.
- Expedited Development: Achieved swift and effective development within a challenging timeline, showcasing our commitment to delivering results efficiently.
Client
FreeForm Agency focuses on Branding, Consumer Engagement, online communities, Public Relations, and Social Media Management.
Product
RabbitCards presents a groundbreaking free-to-play golf experience, utilizing PGA Tour Shotlink data for captivating closest-to-the-pin competitions. Participants vie to land their ball closest to the pin on the initial shot, fostering a competitive edge.
This innovative golf game introduces a unique dimension by allowing users to make predictions (‘pins’) on the potential winner, creating an engaging atmosphere for friendly competition. Whether immersed in a live PGA Tour event or enjoying the game from the comfort of home, RabbitCards offers an opportunity to assess one’s ability to predict the precision of top golfers worldwide, all accessible on your preferred mobile device.
App Store link
https://apps.apple.com/ie/app/rabbitcards/id1581845403
The client initiated the development of a mobile app with their previous tech team; however, the application was incompletely implemented and plagued with numerous bugs.
Goals and objectives
Stabilize and Launch:
- Address and rectify existing bugs within the mobile application.
- Implement missing features to ensure a comprehensive user experience.
- Successfully launch the stabilized app on the Apple Store.
Enhance PGA Integration:
- Optimize the PGA integration to ensure seamless data synchronization between the 3rd party and the mobile application.
Performance Optimization:
- Improve the overall performance of the application to enhance user experience.
- Enhance scalability to accommodate increased traffic efficiently.
- Ensure the application’s maintainability, facilitating the seamless addition of new features.
Multi-Gaming Support Implementation:
- As a subsequent step, introduce multi-gaming support to empower RabbitCards users with easy access to newly introduced games.
Project challenge
- Lack of Documentation and Architecture Diagrams: absence of essential documentation and architecture diagrams, hindering a clear understanding of the system.
- Poor Legacy Code Quality: the existing codebase exhibits low quality with the absence of best practices and the use of outdated architecture patterns, including spaghetti code and a thick client with business logic on the frontend.
- Limited Contact with Previous Tech Team: no communication channels established with the previous tech team, leading to a knowledge gap regarding the application’s intricacies.
- Bug-Ridden Codebase and Incomplete Features: the presence of numerous bugs and unimplemented features in the current state of the application.
- PGA Tournament Scheduling Constraints: real production testing is challenging due to the scheduling of PGA tournaments on a weekly basis, occurring from Thursday to Sunday.
- Stringent Deadline: A tight deadline of one month from the project’s initiation, intensifying the need for efficient and effective resolution strategies.
Solution
In the field of engineering, there is an inherent trade-off between the decisions to either build or buy solutions. In the dynamic environment of startup, where minimizing the development and infrastructure costs is paramount, SPD Technology leverages SaaS solutions as much as possible.
Our project team has provided the following solutions:
- Conducted a complex audit of the application
- Proposed and made a full redesign to a modern UI/UX in Figma.
- Implemented Push notifications with OneSignal. They play a crucial role for RabbitCards and provide engagement and retention, real-time alerts, and user communication. The functionality is used to inform the client’s customers about the kick-off of a tournament, the beginning or completion of a round, and the announcement of the results and the winner
- Added multiple CRON jobs pipelines to pull in data from the PGA API in accordance with the corresponding schedule and in the required order. Added the jobs monitoring as well with https://healthchecks.io/ to monitor if jobs
- Added Auth0 as auth/auz a as a service with SSO support.
- Migrated the infrastructure from one single server to Serverless infrastructure with AWS. Lambda, the API Gateway that provides high availability and scalability out of the box.
- Refactored the backend to solve the performance issues (N+1, SQL queries in a loop, data filtration on the backend) and maintainability issues (implemented transaction script architecture: Resource, Service, Repository layers, followed SOLID principles) and frontend: added skeletons, created component library, made the frontend thin, moved all business logic to backend, implemented KISS, YAGNI, DRY, functional programming principles.
- Fixed all the bugs and implemented all the missing features.
- Added a caching layer to cache frequent queries with AWS ElastiCache.
- Replaced join-monster Appolo GraphQL client with REST to simplify the API.
- Set up CI/CD with GitHub Actions to deliver changes to end users with a single click.
Our results
We have achieved significant enhancements in the existing legacy mobile application:
- Feature Completion and Bug Resolution:
Successfully completed all missing features, including PGA integration, within the stipulated time frame. Resolved existing bugs promptly and effectively. - Performance, Scalability, and Maintainability Improvements:
Enhanced overall performance, achieving a remarkable app response time of less than 2 seconds. Improved scalability, enabling the app to seamlessly handle 1000 requests per second. Ensured the application’s maintainability for easy incorporation of future features. - Contemporary Design Overhaul:
Delivered a new, contemporary, visually appealing, and comprehensive design, surpassing client expectations. - Successful Apple Store Release:
Ensured a smooth and successful release of the mobile application on the Apple Store, meeting all client requirements.
These results signify not only the resolution of existing issues but also a transformative evolution of the legacy mobile application, positioning it for sustained success in the dynamic and competitive landscape.
Highlights Client Our client is one of the U.S.’s largest asset management companies, with 12 000 + employees in...
Explore Case