Initial Software Design - 401ChemistryGenealogy/ChemistryGenealogy GitHub Wiki
architecture overview
The application will be a 3-tier web application. A 3-tier application typically exposes a GUI application to the end-user that acts as a client to a server that consists of business and database manipulation logic. This makes up the first and second tier. The third tier is the database.
Note: the pc-towers in the diagram do not denote different machines, but only different programs, ie, the backend, frontend and database servers can all be on the same physical device or cloud instance.
deployment
As covered in the tech choice we will be deploying a 3-tiered system. All the non-client systems are deployed to the same virtual machine.
Once git is installed in the virtual machine we'll be able to simply git clone
the respective repositories and run the scripts. However, we will wget
the MySQL
code and build/install the database, which we will then run on the virtual machine. As such we will have two code repositories and a third information
repository.
component diagram
notes:
-
The frontend -- Angular -- application will interface with the backend using an injectable data service. Because, this dependency is injectable testing will be far easier due to mockability. Also we can develop the frontend without relying on progress on the backend.
-
There are no views in the Django backend. Views are rendered client side.
-
The
ref_model
component refers to an abstract model that can be sub classed into a person, lab or paper.