Table of Contents
Full-stack project of a data viewer for information collected from various weather stations. This study project is built using Angular 18 for the front-end, .NET for the back-end, and MySQL and MongoDB as databases.
The goal of the project is to build a data viewer for weather stations. These stations can be installed on farms, ports, airports, or large urban centers. Regardless of the data logger technology, the data should be consolidated into a single interface for the system administrator.
The project is using Docker containers and Docker Compose for orchestration.
- Docker >= v20.10.17
- Docker Compose >= v2.6.1
If you want to run the APIs and the front-end project outside of Docker, you will need to:
- .NET SDK 6.0
- Angular CLI 18
Furthermore, the project's functional map uses Mapbox. An API key will be required for the configuration of the MeasureCard
component.
- Clone the repo
git clone [email protected]:Danilo-Oliveira-Silva/weather-track.git
- Run on docker
docker compose up -d --build
-
Access via browser on port
5004
This project requires authentication, and at this stage of development, only users with elevated access can view the data. You can either register a new account with all permissions or use a pre-registered account. The system comes with a seeder that includes two accounts you can use with the following credentials:
Email
: [email protected]Password
: 123
After that, the system will display the meteorological data, which can be queried by date. By clicking on any record, the screen will show detailed data along with a satellite image of the coordinates where the weather station is installed. The image is provided by Mapbox, and you will need to use your own API key to view it.
This system works with several services for its operation:
-
Auth API: This API was built in ASP.NET 6.0 using a layered architecture and Entity Framework Core to connect to a MySQL database, also in a Docker container. The repository pattern was used for database communication.
-
Weather.API: This API, also built in ASP.NET, uses clean architecture. There are features to be developed, and not all will have the API as the presentation layer. Its infrastructure layer connects to a MongoDB database with a direct connection. The CQRS pattern and mediator were also used to invoke routes during its construction.
-
Gateway API: Built in ASP.NET with the Ocelot package for routing, it serves as the single point of connection to other APIs in the container orchestration.
-
WebApp: Front-end built with Angular 18 using components with Bootstrap 5.
Distributed under the MIT License. See LICENSE.txt
for more information.
Danilo Silva