In my last blog I explained why and in what way I'm building TendoCare. Now lets dive into the technology choices I'm making. A small side note; from this stage anything is still possible yet, but I think it is always good to have a global plan!
I can code in a few languages, but the last years I have been quite busy developing in C# so for now that will be the language of code. Another good thing about C# is that, I can use it in my API's, Web Interface but also in my mobile app.
Xamarin for Mobile
For the mobile platform I will use Xamarin, this means I can code in C# and deliver the first app to Iphone users and Android users, without duplicating too much code.
.netcore for the API
For my API I will use .NETCORE. It seems to fit the purpose of creating a fast and scalable API and I would love to get my hands dirty on this version 2 framework.
Azure for Hosting
The application has to scale and run in Africa. It also has to run fast! At the moment Microsoft is building Azure datacenters in 2 regions in South Africa. The first roleout off the application is going to be in Uganda where MTN, a South African telecom provider, is one of the main internet carriers. Next to the speed and availability in Africa, Azure also has a lot out of the box components that will save a lot of time in development.
Azure Cosmos DB
The plan, for now, is to store all the data in Cosmos DB. As all goes to plan we are going to have a lot of data to query, a lot of data to add, but almost no data to edit. Also all data is geo based and Cosmos advertises to be great with that kind of data.
Azure Blob Storage
I will store all the images in private blobs and use SAS tokens to expose them over https for limited time.
The API is going to run in an Azure WebApp. WebApps are great for scaling and when implementing a Azure Traffic manager they are easy for geo distribution.
Azure Active Directory B2C
For adding security, until we can depend on other forms, we are going to use Azure Active directory to secure the mobile app and the Web API.
For version management and to opensource the project we will use github reposities.
Visual Studio Team Services
For build and deploy I choose VSTS, it connects nicely to GitHub and integrates with Azure as no other tool.
The A.I. tools and implementation of these services I will debate in seperate blogs while I'm implementing them!
For now I think the foundation is there to start building.