Skip to content

IMT-Atlantique-FIL-2020-2023/NADA-extended

Repository files navigation

Build Version Language Roadmap License


Logo

N.A.D.A Extended

National Atmospheric Data | Capture data from airport sensor and visualize it.

Browse the NADA-serve deployment »

View Front · Report Bug · Request Feature

Table of Contents

About The Project

General purpose

The NADA project is a student project. The team is composed of @creeperdeking, @RaphaelPainter, @maxerbox & @mlhoutel. They are IT students at IMT Atlantique, France. It allows an user to view on a web page (NADA-webapp) aggregated sensor data captured from sensors (NADA-sensio) served by a GraphQL Api (NADA-serve)

General architecture

This is an IoT application using Paho MQTT Client.

Architecture

Frontend made in VueJS 3 + Vite : NADA-Webapp

Getting Started

Prerequisites

Installation

  • git clone

We do provide an .devcontainer file ! This mean that if you have the vscode extension installed, project will be operational in a minute. Just click on "Reopen in container popup". Every .env.example file is configured to be operational with the container by default, so you just have to rename those files !

More infos :

Name: Remote - Containers
Id: ms-vscode-remote.remote-containers
Description: Open any folder or repository inside a Docker container and take advantage of Visual Studio Code's full feature set.
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

Configuration

Nada-sensio (MQTT Publisher)

  • Simulates a sensor, publishing data to the configured MQTT Broker

go run cmd/nada-sensio/main.go [sensorID] [airportID] [measureType]

Accepted measureType:

  • temperature
  • altitude
  • pressure
  • latitude
  • longitude
  • windspeed
  • winddirx
  • winddiry

example:

go run cmd/nada-sensio/main.go S0 A0 windspeed

nada-transform (MQTT subscriber + database insert)

  • Subscribes to a configured MQTT topic
  • Inserts received data from NADA-Sensio into the configured influxDB database

example:

go run cmd/nada-transform/Main.go

nada-serve (GraphQL API for NADA-Webapp)

  • Query influxdb database and read data inserted by nada-transform
  • Serve data through a graphql api

GraphQL Schema available here
Influxdb example queries made by nada-webapp available here
We are providing a heroku instance with a graphql playground at https://nada-extended.herokuapp.com/

Source code

Launching

Be sure to have a file named .nada-serve.env in your current working directory. You can take a look at an example to create it

go run cmd/nada-serve/main.go

Contributing

⚠️ Development is done on develop branch !

You can use the .devcontainer to quick bootstrap the project

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

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

(back to top)

Acknowledgments

(back to top)