Being pioneers in their field, our client partner runs an organisation that aims to revolutionise their user’s lifestyles by providing them with AI driven solutions and machine learning. The company was the first to bring the concept to the Middle-East. The trailblazing idea behind the company is to provide users with a superior and fuller experience using an in house AI mechanism and their business model is not just centered around monetizing people’s data but enabling them to live a better life using proactive intelligence.
he client, who was looking for Flutter developers, approached us after hearing about our extensive work in the field of app development using machine learning. The idea behind the collaboration was to provide a digital solution in the form of a single app that could provide AI based services for various verticals, utilising both touch and voice UI, hence making the entire process orderly. It was crucial to ensure that the application had the required privacy settings considering it would deal with personal data from the users. An AI proprietary engine was also to be designed which would enhance the UI, hence providing users with an enhanced experience.
The engagement model that was chosen for this project was the T&M model using scrum methodology as it provided flexibility which was integral for an extensive project of the sort. We initially held multiple discussions with both the scrum team and the client using Azure to track development, and came up with a plan to hold 2 week sprints which would be planned and executed accordingly.
The project was of a significant scale and it was necessary to pick out the right group who would take the undertaking further. After consulting with our partner, we finally decided on a team of 8 Flutter engineers, 1 QA, along with a UX/UI designer and a tech lead who’d be spearheaded by a capable project manager. With all the requirements set in place, the team members were formally introduced to the client.
To provide an AI technology platform driven by machine learning
Design both Frontend and Backend for the application, keeping privacy of data in mind
Develop and improve features such as alarm, weather, cinema, amongst others
As the platform was to be built from scratch, there was a massive amount of research and experimenting involved, as with any creation which is being designed from ground up. After much consideration, Flutter was chosen as the desired tech stack for its cross-platform features and the Native feel, which the client was going for. After this we proceeded on building up the Frontend and Backend of the application.
For the Frontend of the platform, Dart was singled out as the apt programming language for its compatibility with Flutter, along with Bloc for State Management. Meanwhile, SharedPreferences along with Hive, a data warehousing software, was used for local storage for the FrontEnd. With the technologies set in place for the Frontend, it was time to do the same for the Backend of the AI platform.
There was complexity involved in this process, as this part of the project would also include integration of the Machine Learning aspect. Python and Go were chosen as the suitable programming languages for coding, in tandem with Django, which was the right choice considering its compatibility with Python. Meanwhile, Firebase adopted the tech stack of choice for designing the Backend. SQL was also one of the languages for management of data, with Postgres used to ensure its compliance. As security and privacy of data was of extreme importance to our partners, we ensured this through the usage of AWS WAF and AWS Shield, both of which are flagship products from Amazon that protect the software from external attacks. Meanwhile Amazon S3, also known as Amazon Simple Storage Service, was used as the preferred cloud storage unit during the run of the project while Zipkin was then picked out to troubleshoot any latency problems that might arise. Amazon CloudFront was singled out to be the content delivery network for its increased efficiency in caching data. As most of the framework was built using AWS, it was important to stick to the trend and hence Amazon CloudWatch was used for monitoring and managing all AWS resources. Meanwhile, Kubernetes was used for the deployment of the platform along with KIbana, a data visualization dashboard software.
In lieu of the plans set by our partner, the first feature that was implemented was Voice Query which allows users to issue voice commands which would be further analysed by ML. After achieving this, our team set upon creating UI screens, which were developed using Flutter. The next step was to integrate SDK tools into the platform which would enable it to include a whole lot of things like libraries and code samples. We pulled this off by writing an in-house wrapper which would allow integration through either platform channels or via FFI. Lastly, we put together the required logic which would leverage the security of all user data while also providing a great experience while utilising the application. Now, that the framework of the platform was roughly structured, our team got onto the next step which was to implement various services in weekly sprints. Some of the services that have been implemented so far in this lifestyle application include calendar, food delivery, travel, cinema, and music amongst others.
Quality Assurance was of extreme importance as the application was quite extensive and used complex machine learning techniques to understand human behavior, so each domain of the platform was put under rigorous checks by the QA team who employed ML techniques to achieve this. After the very first round of manual testing by our expert developers, Appium was adopted along with Selenium for android to conduct testing. As the application is currently at an advanced stage, we currently conduct manual testing for enhanced functionality at the end of each sprint where a new service would be introduced. The versioning of the entire application was controlled with the usage of Code Magic CI/CD while Microsoft Azure was the chosen tool for task management. GitHub was singled out to be the repository for code management.
As with any project of this scale, the venture came with its own set of challenges. One of the first challenges our team ran into was realising that some of the gestures portrayed on the screen were too complex for users to understand, so we had to implement tutorials as a fix to this. Some of the other issues that the developers ran into were realising some of the screens were functioning at a slow rate and any plugins were failing the security standard and it was crucial to identify and address each issue individually. The team also used Analytics extensively to understand the user's behavior as this would define the way some of the features were to be implemented. Some of the features requested by the client could not be designed using the existing packages; our developers had to conduct research and experiment in order to make these changes as some of the packages had to be built from scratch. As the project progressed along the course, the app was growing in parallel due to which it was becoming increasingly difficult to detect bugs. We implemented dashboards and crash analytics to make this enhance this process. As there were many developers working on the same app, we had to bring about significant changes to the architecture in order to clearly define boundaries and streamline the application.
- The engagement model chosen to interact with the client was the scrum methodology using Azure to track development progress.
- Amazon S3 was finalised as the desired cloud storage platform for the project along with Zipkin to detect any latency errors.
- The development team conducted extensive quality assurance checks using Appium and Selenium.
The project is currently in progress, with our development team currently working on the 37th sprint. Features are constantly being put through rigorous tests and enhanced, with new releases coming up every week. The client is ecstatic with the progress of the platform which is currently in its Beta stage and has commended the team for their excellent crisis management skills and the technical expertise shown along the run. It has been a pleasure being a part of this endeavour with our partner on their goal to revolutionise the way life is lived using cutting edge machine learning techniques.