Skip to content

System architecture

In this section, we outline the system architecture using ER Diagrams, Software Component Diagrams etc. and key libraries / frameworks used in this project.

Frameworks used

The following is a list, with brief descriptions, of the key components used in creating this platform. Please refer to their individual documentation for in-depth technical information.

Logo Name Notes
Django Django Django makes it easier to build better web apps more quickly and with less code.
Reactjs ReactJS React lets you build user interfaces out of individual pieces called components. Create your own React components like Thumbnail, LikeButton, and Video. Then combine them into entire screens, pages, and apps.
Docker Docker Accelerate how you build, share, and run applications. Docker helps developers build, share, and run applications anywhere — without tedious environment configuration or management.
Docker-rest-framework Django Rest Framework Django REST framework is a powerful and flexible toolkit for building Web APIs.
Maplibre MapLibre Open-source mapping libraries for web and mobile app developers.
Postgis PostGIS PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data.
PostgreSQL PostgreSQL PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
Tegola Tegola An open source vector tile server written in Go, Tegola takes geospatial data and slices it into vector tiles that can be efficiently delivered to any client.
Mapbox Mapbox Mapbox is a mapping and location cloud platform for developers
Maputnik Maputnik Maputnik is a free and open source visual editor for the Mapbox GL style specification.
Plumber Plumber The plumber package allows you to create APIs from your R code.
Jenkins Jenkins It is used to continually create and test software projects, making it easier for developers and DevOps engineers to integrate changes to the project and for consumers to get a new build.
Argo Argo Argo Events is an event-driven workflow automation framework and dependency manager that helps you manage Kubernetes resources, Argo Workflows, and serverless workloads on events from a variety of source.

High-level system architecture

This is the high-level system architecture relating to the interaction between the applications. Overview

This is an overview of the interaction between the backend and frontend. Backend-frontend

This is the high level overview of the DevOps implementation. DevOps

Data model

The project's ERD can be found here

ERD

Click SchemaSpy Documentation for the full documentation of the data model.