Loading
Abi Travers

My Blog. Full Stack Software Engineer. Ex-Growth Hacker.

System Architecture – Designing A Data Security App Which Speaks To A Number of APIs

I recently took part in the London Business Schools Hackathon, HackLBS. A weekend event, ran by London Business School with the premise of creating products to solve future needs.

London business school hackathon. System architecting

We organised into teams and spent the time designing a product and action plan for starting a company.
My team decided to create a tool which shows users a map of their online presence. A credit check for your online information. The idea behind this is to give people access to some of the information  companies (especially those advertising to them) have on them.
My team won, which meant we took home the prize money of £2,500. We decided to use this money to go forward with creating a startup.
I was the only developer on the team so I was responsible for designing what the System would look like. With the help of our mentors I drew up the architecture of a simple MVP, a webapp which pulled in data from a number of social media APIs.

System Design of the App and Database:

system architecture of a MVP tech startup

How this would work

A user would be presented with a login or Sign up page.

The application would send this login information to the database. To do this it would first it would encrypt this information. It would encrypt it (especially the password) by first creating a HMAC hash then base64 string then url encrypting this. An example of what this code would look like can be found at this git repo.

Then it would create a model which would map to the database and save the encrypted user information to it.

A new view page would then appear asking the user to grant access to their social media accounts.

It would then need to call the social media APIs which have been granted access to. To do this the application must put together API requests to post to the relevant social media servers. An example of how to put together an API request can be found here.
The application would first need to put together the url of the request, ie. the data wanted from the API.
In the case of many APIs It would have to attach an encrypted string containing the users information. This string would either be appended to the end of the query string url or would go in the header of the request.
It would receive the desired information from the API. It would not commit any of this information to a database (in line with GDPR, which also saves money on database storage).
It would post this information from the API to a view that the user would see.
This view for now could be a simple web page. The web page would display the users information as a visual map of the users social media footprint.
This is an over-view of my first attempt to understand the steps in building an application which makes a number of API calls then displays this data to a website.

How to set up a virtual machine on your mac

A virtual machine is essentially a new machine on your current one. A new environment (area(in memory)) which is separate to your current.

Why would one do this you ask?

Simplezz, to create a windows operating system on a mac computer. This would mean you no longer use an IOS environment but have what is basically a windows computer on your mac.

To set this up your computer will allocate processing power and memory away from your current operating system (what currently looks like your whole machine) and gives it to a new one (what looks like a windows machine).

Why did I do this?

My whole coding life I have been a mac user, however recently started coding in C#.

C# is a programming language written to operate on Microsoft’s .Net programming framework. This means to work on older* .Net programmes I need to use a Windows machine to run the code.

*.Net core now allows you to develop Con a mac or linx.

This is a guide on exactly how to set up VMWare Fusion on your mac computer:

  1. Download VMFusion software

Download VMware Fusion here: http://mac.filehorse.com/download-vmware-fusion/7623/download/

(choose ‘skip this version’ on the upgrade prompt)

License number:

`XXXXXXXXX`

When the upload gets to this stage:

  how to set up a virtual machine on your mac computer:

2. Download Microsoft ISO (64-bit)

Go to : https://www.microsoft.com/en-gb/software-download/windows10ISO(64 bit one)

Select to download the ‘windows 10’ and language ‘English’ (or whichever language you like).

  how to set up a virtual machine on your mac computer: download Microsoft

3. Putting the Windows operating system (Microsoft ISO) into your virtual machine

Drag and drop the download file icon:

Into the space for the ‘install from disc or image’:

  how to set up a virtual machine on your mac computer

Click ‘Continue’:

  how to set up VMWare Fusion on your mac computer

Chose ‘Windows 10 x64’ as the Operating System:

 

Click continue, then finish on the final page:

 how to set up a virtual machine on your mac computer

Save as follows:

 

4. Customising Settings of your Virtual machine

a) Customise hardware. Click on the ‘Hard Disk’ icon:

  how to set up a virtual machine on your mac computer

Check the size of mac storage:

In this example it is 500GB:

  how to set up a virtual machine on your mac computer

Allocate approximately half disk of your total storage space to VMware Fusion. In this example 200GB has been allocated:

  how to set up VMWare Fusion on your mac computer

Click the ‘advanced options’ dropdown.

Select both the ‘pre-allocate disk space’ and ‘split into multiple files’ options:

  how to set up VMWare Fusion on your mac computer

Click ‘Apply’.

VMware will then take some time to ‘Reconfigure the virtual disk’. This can take up to 15–20 mins.

  how to set up VMWare Fusion on your mac computer

Click the ‘Show All’ button at the top left of the window to go back to the main menu.

b) Customise Processors & memory. Click the ‘Processors & memory’ icon:

  how to set up VMWare Fusion on your mac computer

Change ‘Processors’ to 4 Processor Cores (as opposed to the default 1) and allocate around half of your total Ram capacity, so in this example, 8200MB:

  how to set up VMWare Fusion on your mac computer

Click the ‘Show All’ button at the top left of the window to go back to the main menu.

c) Sharing folders between your mac and this virtual computer. Click the ‘Sharing’ icon:

  how to set up VMWare Fusion on your mac computer. Sharing Folders

Tick ‘Enable shared folders’. Then tick the folders you want to mirror:

Back to ‘show all’ and your done with the customisation.

5. Installing Windows on your Virtual Machine

The black window with the play button is your virtual windows machine. Click the play icon and you should go through the following screens:

 This is a guide on exactly how to set up VMWare Fusion on your mac computer

When the below appears click ‘Next’, then ‘Install Now’:

 how to set up VMWare Fusion on your mac computer

Select ‘I don’t have a product key’:

 

Click ‘Advanced custom setup’ then select the window’s operating system ‘Window 10 pro’:

  how to set up VMWare Fusion on your mac computer

Select ‘Next’, then ‘Custom Install Windows only’:

 

Then ‘next’:

 

This is the end of installing your windows virtual machine.

It should restart itself and then open. Go through the normal windows setup selecting the correct country and language.

 how to set up VMWare Fusion on your mac computer

Thanks for reading.