Giter Club home page Giter Club logo

map's Introduction

GitHub Actions semantic-release Renovate @commitlint/config-conventional code style: prettier ESLint: TypeScript

Renovate

Map application written with Solid.js.

Project vision

Built a showcase that highlights Nordic Semiconductor's cellular IoT solutions by showing thousands of real connected devices, empowering customers to promote their solutions that make Nordic's ecosystem the best, and gathering valuable data to help future customer in their go-to-market efforts.

Overall, hello.nrfcloud.com/map shows a world where cellular IoT is seamlessly integrated into everyday life, powered by Nordic Semiconductor technology and fueled by a vibrant community of innovators.

Key Objectives

  • Promote Nordic Semiconductor cellular IoT solutions: Showcase real-world deployments of cellular IoT devices powered by Nordic Semiconductor hardware, demonstrating their diverse applications and capabilities to a global audience.
  • Empower customers: Provide a platform for customers to easily showcase their innovative products built with Nordic technology, increasing brand awareness and driving sales.
  • Collect up-to-date connectivity statistics: Gather real-time data on cellular network performance and device behavior from around the world, providing valuable insights for Nordic Semiconductor, network operators, and the broader IoT community.

Impact

  • Accelerate the adoption of cellular IoT: By showcasing successful deployments and customer solutions, hello.nrfcloud.com/map will inspire developers and businesses to embrace cellular IoT technology.

  • Strengthen the Nordic Semiconductor ecosystem: The platform will connect customers, developers, and partners, fostering collaboration and innovation within the cellular IoT space.

  • Drive industry insights: The collected data will provide valuable insights into cellular network performance, device behavior, and emerging trends, benefiting all stakeholders in the IoT ecosystem.

Solution

This is achieved through:

  • Seamless onboarding of Custom Devices: Leverages a well-defined API for device registration, eliminating manual configuration and streamlining the process. This allows the number of shown devices to grow organically.

  • LwM2M objects for Universal Data Representation: LwM2M objects describe data sent by devices, enabling automatic visualization without custom UI development. The platform supports various LwM2M objects for flexible data representation. This allows any customer to integrate their device's data into the platform through describing it via an LwM2M object (or reusing an existing one) without the need for custom development.

  • Customizable User Interface for Personalized Storytelling:

    • Provides a customizable UI, allowing users to curate and showcase specific devices or groups.
    • Enables filtering and sorting of devices based on various attributes like location, application, or sensor data.
    • Offers map-based visualization for geographically distributed deployments.
    • Integrates with external data sources for contextual enrichment (e.g., nRF Cloud Location API, Memfault Device Health Metrics, etc. ...).

Continuous integration

Deploy an instance of the AWS Map resources to the CI AWS account and store the map settings as variables:

# Make sure that the `ci` environment exists in this repo
gh variable set MAP_REGION --env ci --body "<mapRegion>"
gh variable set MAP_NAME --env ci --body "<mapName>"
gh variable set MAP_API_KEY --env ci --body "<apiKey>"

end-to-end tests

End-to-end tests are run completely without a backend using Vite's built-in dev server to serve the data.

Make sure to export MAP_REGION, MAP_NAME, and MAP_API_KEY before running it.

Note: It's currently not possible to run test for multiple browsers in parallel since the webServer > cannot be defined per project, and there is a state in the backend mock server that gets manipulated by the tests. So by default only the chrome project is run

npm run test:e2e

Run the Playwright code generator

Start the dev server:

npm run start:e2e

Run the interactive code generator:

npx playwright codegen

map's People

Contributors

coderbyheart avatar renovate[bot] avatar

Watchers

 avatar  avatar

map's Issues

Show history

For numeric values, add ability to show a history chart.

Show a visual ping on the map when a device publishes an update

Show a visual ping on the map everytime a device sends in data to make the map even more impressive. This would also help customers easier debug whether their device is sending in data when they expect it.

Note: since this can have some performance impact doing this for for the map I could only sent the signal that there was an update but for a device. Only if a specific device is favorited, real-time notifications for all objects (or selected) are enabled for a specific device.

Change color based on condition

Explore whether its possible to performantly implement a way to change the color of a device on the map based on a configuration, e.g. temperature or the Bosch Air Quality index.

The configuration would be model-specific and could be configured though the proto-lwm2m model definitions.

Put a device highlight banner on top

Add a "this is what we showcase with this device" card at the top when you open a device, so people who explore the application themselves know a bit what to look for on this device.
It can optionally offer to expand / pin specific resources that this device publishes.

Search by resource value

A user should be able to search by a specific resource value, e.g. show all devices that have WiFi locations: resource:14201/6=wifi

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Fallback to renovate.json file as a preset is deprecated, please use a default.json file instead.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/deploy.yaml
  • actions/checkout v4
  • actions/setup-node v4
  • actions/cache v4
  • aws-actions/configure-aws-credentials v4
.github/workflows/test-and-release.yaml
  • actions/checkout v4
  • actions/setup-node v4
  • actions/checkout v4
  • actions/setup-node v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-node v4
  • mcr.microsoft.com/playwright v1.45.3
.github/workflows/update-repo-info.yaml
  • actions/checkout v4
  • ubuntu 22.04
npm
package.json
  • @hello.nrfcloud.com/proto 14.2.6
  • @hello.nrfcloud.com/proto-map 14.2.0
  • @sinclair/typebox 0.32.35
  • e118-iin-list 4.1.4
  • lucide 0.427.0
  • maplibre-gl 4.5.1
  • the-new-css-reset 1.11.2
  • @aws-sdk/client-cloudformation 3.624.0
  • @aws-sdk/client-cloudfront 3.624.0
  • @bifravst/cloudformation-helpers 9.1.1
  • @bifravst/eslint-config-typescript 6.1.13
  • @bifravst/from-env 3.0.2
  • @bifravst/prettier-config 1.0.4
  • @bifravst/random-words 8.0.2
  • @commitlint/config-conventional 19.2.2
  • @playwright/test 1.45.3
  • @types/node 22.2.0
  • @types/semver ^7.5.8
  • commitlint 19.4.0
  • glob 11.0.0
  • globstar 1.0.0
  • husky 9.1.4
  • rehype-external-links ^3.0.0
  • rehype-format 5.0.0
  • rehype-stringify 10.0.0
  • remark 15.0.1
  • remark-extract-frontmatter 3.2.0
  • remark-frontmatter 5.0.0
  • remark-rehype 11.1.0
  • tsx 4.17.0
  • vite 5.4.0
  • vite-plugin-solid 2.10.2
  • yaml 2.5.0
  • node >=20.0.0
  • npm >=9.0.0

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤ī¸ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.