The goal is to develop a chat application where users would be able to connect and communicate with each other without revealing their digital identities and leaving digital footprint. Another challenge for this project is to make sure that users are always in control of their application and can manage their connections, meaning they should be able to remove any connection at any time without leaving a possibility for the other side to reach them again. In addition, a research about mobile platforms and how to build a back–end has to be carried out.
Since our goal was to build a mobile chat application where users would be able to exchange messages over the internet, we needed a central point of storing data – our back-end. We had to develop an application that would run on a server and handle all user data manipulation, provide authorization services, etc., and be accessible for our mobile applications. Meaning we had to implement a server-side software layer to serve as an interface for our mobile apps to manipulate data in the database (for mobile apps, de facto standard is a RESTful API). In addition, it had to be scalable enough not to break after the first 1000 registered users.
Overall, the project turned out to be a success for us as developers since we were able to complete a working product on time. We managed to create appealing visual designs for our iOS and Android applications, design a reliable and stable architecture, and provide a new user experience when it comes to chatting. We also created a solid back-end system to empower our applications, with complete documentation of its REST service and a scalable architecture to support a large amount of concurrent users without having to redesign the whole application. We were able to deliver a well-edited video of all functionalities present in the app, which can be used for further demonstrations and possibly even marketing of the product.
Regarding the process of creating this system, we learned a lot of new things an practiced our existing skills. First of all, we have spent several long weeks on preparations for the project: we started with a research on the mobile platforms and back-end technologies we could use, followed by several online courses where we gained knowledge in the field and grew our skills. Only after creating several sample applications and diving deep into what services we are going to use, we started actually developing the system, because we knew that in the end this would have saved us an enormous amount of time during development. Then, following Agile methodologies, we executed 7 sprints (mostly bi-weekly), each of which were thoroughly planned in the beginning and had a visible result at the end (a new system version). We were strict on our project management and never added or removed items from an active sprint. We kept a backlog of issues and eventually were able to clear it by the end of the project. Therefore, we are now ready for commercial projects from the management perspective.
This project was executed in cooperation with PhaseFour.