The client came to us with precise requirements and the user journey mapped out, which allowed us to kickstart right away. And, since other teams had already worked with similar MVPs and the Arabic language before, so team members could trade technical and practical tips from the get-go.
We chose Flutter as a trusted frontend technology to build Android and iOS versions. Its rich widgets library with Material Design support helped us save time and deliver faster since we could focus on business logic instead of creating UI elements from scratch.
On the backend, we chose Node.js as it offers many ready-made libraries and frameworks and also elegant Content Management Systems, speeding up the whole project building and implementation. It proved to be a good choice for an MVP, allowing for a faster time-to-market.
We combined Node.js with an open-source data platform (Directus) to power up the admin panel, where all user and financial information is managed.
Other integrations helped ensure a smooth and safe verification process. Checking identifies is done automatically with the Identomat KYC (Know Your Customer) solution; phone number verification is safer with one-time password codes generated by SMSala; and banking data verification is hassle-free, as all data such as bank and branch is filled automatically when users add the IBAN number (done with IBANAPI).
Having a bilingual application was a must and that can be a challenge, so we needed a stack and processes to make it happen effortlessly.
For one, the two languages have different displays: English is LTR (Left to Right) and Arabic is RTL (Right to Left). This heavily impacts design, from text to progress bars and even the choice of icons. From early on, our designers ensured a smooth experience no matter the language.
Additionally, the translation is not always one-to-one. For example, the words “first” and “second” in English have different translations in Arabic depending on gender. To help address this, we used neutral forms as much as possible.
Flutter handled most of the edge cases well. We also streamlined the process by using a third-party translation integration tool (Loco). In practice, it allowed stakeholders to translate text directly on the application instead of resorting to the usual spreadsheets, which can be cumbersome.
The communication followed standard Agile practices to ensure our partner was always in the loop. They participated actively in our daily development updates and weekly demo meetings.
This is how we made it happen: