The client - a leading gym chain in Guatemala with 15 locations and over 30,000 members - aimed to modernize its management platform to support its expanding operations. The new system had to enhance efficiency, improve user experience, and offer a flexible, adaptable structure to meet the needs of all roles within the organization.
The key challenge was building a solution that not only solves these usability issues but also supports seamless migration from the current system, incorporates role-based access control, and integrates with local third-party services for payment processing and communication, all while efficiently handling transactions for over 30k members.
The SoftKraft team embarked on the project with 1 designer and 3 developers and later scaled the team to cover the DevOps and QA needs. Communication is mainly with Jira / Confluence, shared Slack channel where all developers can express their questions and concerns.
The development team adhered to our commitment to quality and followed our standard working processes. This approach ensured clear and consistent communication with the team throughout the project lifecycle.
An intense development process culminated in the successful launch of a main gym management web app as well as a fingerprint authentication app that met all initial project scope requirements.
The main/gym management system design focuses on a minimal microservice architecture with an API server and a worker service, emphasizing event-driven communication using RabbitMQ and Redis, with a CQRS approach to improve scalability and traceability.
By distributing certain tasks—such as PDF generation, S3 uploads, email sending, invoice creation, and integration with external systems—to a dedicated worker service, we reduced the load on the main API. This separation allowed the system to efficiently manage resource-intensive processes without affecting the overall performance of the core application.
Key technologies include React with TypeScript for the frontend, enhanced by TailwindUI for styling, and React Query for data fetching. Playwright is used for testing automation. The application runs on AWS EC2 and RDS.
Alongside the gym management web app, a fingerprint authentication Windows app was successfully delivered. This application is designed to streamline user access to gym facilities by integrating with fingerprint readers for secure authentication and door control.
The fingerprint app was built using C#, with the eNBSP SDK from Nitgen for handling fingerprint recognition and authentication. To manage door access, it utilizes the USB Relay HID library, allowing the app to control physical doors directly. The local database is implemented using SQLite, with Entity Framework employed for database management and data modeling. This setup ensures fast, reliable access control for users while keeping the app lightweight and efficient.