Project Cross-Platform App Source Code GitHub Repository
Project MySQL Cloud Server Source Code GitHub Repository
Project POST Request Response Debugger Source Code GitHub Repository
Arran (Musa) Fletcher – Lead Developer – Our Team
The purpose of this project was to provide an interface for Fossickpoint clients to view plans and associated tasks which have been set by the administrators at Fossickpoint.
The client should be able to browse plans and save the plan they wish to utilize in their life. This plan will then calculate dates for each task to be completed by the client and aid in tracking their progress completion.
The mobile app will also provide features such as a quote of the day to help motivate and inspire clients.
My role in the project was as a programmer handling the UI, back end mobile client code, MySQL server code and database design and implementation, as well as ensuring security of the app implementing secure authentication algorithms and SSL certificates for client-server communication (Courtesy of Let’s Encrypt).
My role as a lead web developer during the project meant I was responsible for creating a clean, fluid design to suit Fossickpoint and utilize their branding materials in a way that’s aesthetic and simple for users to learn. The client hadn’t provided any specific direction for design, leaving it open to be creatively designed and reviewed by the client as a test page. The login page is the best example of the clean fluid interface as seen above.
A key feature, as with most apps, is real-time updates which requires a database that can store the user and app data and communicate this data in real-time. This involved several key development points which I designed and implemented as seen above.
To ensure high availability and storage redundancy, an AWS RDS database running MySQL was created and the database structure was designed and implemented after discussions between myself and my team.
To facilitate communication between the client app, and the AWS Cloud Database a web server was implemented by myself and a PHP app to run on the web server and act as a middle man was created by myself as seen at the MF Softworks/MySQL PHP Query Server repository. For security purposes Let’s Encrypt was used to implement an auto-renewing SSL certificate and encrypt all communication between the client and server, for safe handling of personal data.
Finally after the database had been implemented and a middle-man communication server had been set in place, the final part to the app communication was to implement communication functions within the app itself. To implement communication in a simple and secure manner asynchronous jQuery.post requests were the chosen way to implement this. By passing simple queries to the middle-man server and processing the received response, this allowed for a modular and flexible design within the app. To facilitate easy transfer of data, a JSON format was used, designed by myself as seen above.
To further allow for live testing and debugging, a POST testing tool that sent queries and displayed the given SQL response was designed and implemented by myself to easily build a framework that allowed for live testing and modification of client and database implementation as was needed for the project to move forward.
To be able to complete this project and keep app development organized and structured, communication and app versioning was key. Utilizing Slack general and development communication channels were created and separated to facilitate design and development discussions happening separate from discussions on project policies and legal discussions.
Throughout the duration of the project communication with the client occurred every 2 weeks via Skype, while development discussions were constant and ongoing to contentiously improve the project and deliver working prototypes.
Utilizing GitHub and GitKraken Git UI versioning and development branches were key to maintaining straight-forward and detailed code changes and allowed for revision and re-modification if the client was unhappy or a feature was broken. This constant communication and organization was the framework which allowed for fast development and delivery of an app that was modular, adaptive and fulfilled the requirements needed.
My contribution to the project covered multiple areas. I designed and formatted large parts of the UI design utilizing Bootstrap and Bootstrap templates to create a neatly formatted and branded mobile UI that would function across multiple devices and sizes.