Skip to content

Full-stack project of a data viewer collected from various weather stations. Built with ASP.NET Core and Angular

License

Notifications You must be signed in to change notification settings

Danilo-Oliveira-Silva/weather-track

Repository files navigation

logo

Full-stack project of a data viewer collected from various weather stations.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Architecture
  5. License
  6. Contact

About The Project

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.

(back to top)

Built With

(back to top)

Getting Started

The project is using Docker containers and Docker Compose for orchestration.

Prerequisites

  • 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.

Instalation

  1. Clone the repo
git clone [email protected]:Danilo-Oliveira-Silva/weather-track.git
  1. Run on docker
docker compose up -d --build
  1. Access via browser on port 5004

    Weather Track

(back to top)

Usage

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:

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.

(back to top)

Architecture

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.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Danilo Silva

linkedin website bluesky email devto

(back to top)

About

Full-stack project of a data viewer collected from various weather stations. Built with ASP.NET Core and Angular

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published