Architectures - digitalideation/studio_web1_2024 GitHub Wiki

Architecture

Reference architectures

Below you can find some reference architectures for your project. Depending on your goals, you may also have some variations, for example use different database, or use more than one API or use a backend server that communicates with the CMS.

API + webserver

Architecture variant 1 This is the simplest architecture. It is suitable when the API is accessible without any client API key. It also requires that you don't want to store any of your own data or you only have static data that you can serve with your webserver (e.g. stored in files).

API + webserver + CMS

Architecture variant 2 Similar to the previous architecture, this one adds a CMS that allows you to store (throug the CMS UI) and read your own data. Note that your data will be available to the public and the architecture is not suitable for writing data from the client to the CMS because you have no control over the data that this written from the client.

API + webserver + backend server

Architecture variant 3 This architecture is suitable, if you have some backend logic, that you want to keep isolated from the client. For example, if you require an API key to access a 3rd-party API that will bill your API usage. With this architecture, you can keep your API key hidden from the client (and the public).

API + webserver + backend server + database

Architecture variant 4 This is basically the same architecture as the previous, but with an added database. This is ideal if you want manage (create, read, update, write) your own data. With the backend server you have control what goes into your database.

API + combined webserver & backend server + database

Architecture variant 5 You can also use your backend server (e.g. node.js) to serve your static files and get rid of the separate webserver.

How to get access to webservices for deploying your project

You can get free credit for some services (Heroku, MongoDB Atlas) through the Github student developer pack.

Your task

  • Design a suitable architecture for your project and document it with a diagram.