Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
docs: rename to Asset Tracker Cloud Example
Browse files Browse the repository at this point in the history
BREAKING CHANGE: this affects some resource names used in scripts

See #56
  • Loading branch information
coderbyheart committed Jan 11, 2021
1 parent b98ce7d commit 0d42b57
Show file tree
Hide file tree
Showing 40 changed files with 315 additions and 178 deletions.
44 changes: 19 additions & 25 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
.. _bifra_readme:

Bifravst
Asset Tracker Cloud Example
########


.. epigraph::

*Gvðín gerþu bru af iorþu til himins, er heitir Bifravst.*
Bifravst is a term from the Nordic mythology and it refers to the bridge built by the gods between earth and heaven.
`Read more about it <https://www.lyngen.com/2020/03/the-vikings-and-the-northern-lights-bridge/>`_.


.. image:: https://github.com/bifravst/bifravst/workflows/Test%20and%20Release/badge.svg
:alt: GitHub Actions
:target: https://github.com/bifravst/bifravst/actions
Expand Down Expand Up @@ -39,13 +32,13 @@ Bifravst
Vision
******

*Bifravst* aims to provide a concrete end-to-end example for an ultra-low power cellular IoT product in the asset tracker space, namely a *Cat Tracker*.
The *Asset Tracker Cloud Example* aims to provide a concrete end-to-end example for an ultra-low power cellular IoT product in the asset tracker space, namely a *Cat Tracker*.

.. figure:: ./docs/logo-with-text.png
:alt: Bifravst: Cat Tracker IoT example
:alt: Asset Tracker Cloud Example: Cat Tracker IoT example

*Bifravst* enables the developers to set up a real world IoT solution using the respective cloud provider and adapt the example firmware and software quickly for a specific use case.
*Bifravst* aims to provide answers and recommend best practices to the following questions:
The *Asset Tracker Cloud Example* enables the developers to set up a real world IoT solution using the respective cloud provider and adapt the example firmware and software quickly for a specific use case.
The *Asset Tracker Cloud Example* aims to provide answers and recommend best practices to the following questions:

* How can you connect Nordic's cellular IoT chips to your cloud provider?
* How do devices send data into the cloud?*
Expand All @@ -62,29 +55,29 @@ Vision
Core principles
***************

*Bifravst* is built on the following principles:
The *Asset Tracker Cloud Example* is built on the following principles:

* *Teach by showing*

* All examples are designed to solve a concrete use case (a *Cat Tracker*) instead of providing generic or abstract solutions.
* *Bifravst* is not a framework, but it is a real application.
* The *Asset Tracker Cloud Example* is not a framework, but it is a real application.

* *Err on the side of security*

* *Bifravst* follows the most robust security recommendations of the respective cloud provider.
* The *Asset Tracker Cloud Example* follows the most robust security recommendations of the respective cloud provider.

* *Single tenancy*

* *Bifravst* implements a scenario in which all the authenticated users can be trusted to access all the devices.
* The *Asset Tracker Cloud Example* implements a scenario in which all the authenticated users can be trusted to access all the devices.
* It is a typical scenario for cellular IoT products, and it simplifies the onboarding of new devices.

* *Serverless*

* *Bifravst* uses a serverless architecture as much as possible to have near-zero costs for the operation during the development, and to provide horizontal scaling of resources to be used in a production system if needed.
* The *Asset Tracker Cloud Example* uses a serverless architecture as much as possible to have near-zero costs for the operation during the development, and to provide horizontal scaling of resources to be used in a production system if needed.

* *Cloud native*

* *Bifravst* examples are designed by following the best practices of the respective cloud provider to reduce development efforts due to abstraction.
* The *Asset Tracker Cloud Example* examples are designed by following the best practices of the respective cloud provider to reduce development efforts due to abstraction.

* *Being offline is not an exception*

Expand All @@ -97,18 +90,18 @@ Core principles

.. note::

*Bifravst* is not a *multi-cloud* solution.
The *Asset Tracker Cloud Example* is not a *multi-cloud* solution.
The concrete implementation will differ for each cloud provider.

*Bifravst* does not aim to provide a solution where you can switch in a seamingless manner between cloud providers.
The *Asset Tracker Cloud Example* does not aim to provide a solution where you can switch in a seamingless manner between cloud providers.
Such a solution will require the implementation of additional abstraction layers, which instead of becoming a meaningful benefit for the majority of users, mandate a constant translation between the vendor specific concepts and the abstraction.
Instead, in Bifravst, the best practices of the respective cloud-vendor for building a *serverless* IoT solution are followed.
Instead, in the Asset Tracker Cloud Example, the best practices of the respective cloud-vendor for building a *serverless* IoT solution are followed.

Project overview
****************

*Bifravst* is licensed under the `3-clause BSD license <./LICENSE>`_ (software) and the `Nordic 5-clause BSD license <https://github.com/bifravst/firmware/blob/saga/LICENSE>`_ (firmware).
Below table shows the characteristics of *Bifravst* project:
The *Asset Tracker Cloud Example* is licensed under the `3-clause BSD license <./LICENSE>`_ (software) and the `Nordic 5-clause BSD license <https://github.com/bifravst/firmware/blob/saga/LICENSE>`_ (firmware).
Below table shows the characteristics of The *Asset Tracker Cloud Example* project:

+------------------------------------+----------------------+
| Characteristic | Principle |
Expand Down Expand Up @@ -136,7 +129,7 @@ Below table shows the characteristics of *Bifravst* project:

.. note::

Development progress is managed in the `Bifravst GitHub Project <https://github.com/orgs/bifravst/projects/1>`_.
Development progress is managed in the `Asset Tracker Cloud Example GitHub Project <https://github.com/orgs/bifravst/projects/1>`_.

System overview and technical considerations
********************************************
Expand Down Expand Up @@ -233,6 +226,7 @@ Below table shows the IoT Cloud vendor survey results:
docs/app/Index.rst
docs/firmware/Index.rst
docs/devices/Index.rst
docs/ProjectName.rst

.. toctree::
:titlesonly:
Expand All @@ -250,7 +244,7 @@ Below table shows the IoT Cloud vendor survey results:
:caption: Resources

GitHub <https://github.com/bifravst>
DevZone <https://devzone.nordicsemi.com/search?q=bifravst#serpsort=date%20desc>
DevZone <https://devzone.nordicsemi.com/search?q=AssetTrackerCloudExample#serpsort=date%20desc>
docs/Support.rst
docs/adr/README.rst
CODE_OF_CONDUCT.rst
Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

# -- Project information ---------------------------------------------------------------------------------------------

project = 'Bifravst'
project = 'Asset Tracker Cloud Example'
copyright = '2019-2020, Nordic Semiconductor ASA | nordicsemi.no'
author = 'Nordic Semiconductor ASA | nordicsemi.no'

Expand Down
126 changes: 126 additions & 0 deletions docs/ProjectName.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
Project Naming conventions
##########################

.. admonition:: Written name

The overall name for the project is: **Asset Tracker Cloud Example**

When individual _flavors_ are considered, the name is **Asset Tracker for [Vendor Name] Example**

- **Asset Tracker for AWS Example**
- **Asset Tracker for Azure Example**
- ... and so forth

Slug
***************************

Main projects
==============

The project slugs use the following naming rules for the **main** project repositories that implement the Asset Tracker Cloud Example or contain otherwise source code *specific to the Asset Tracker Cloud Example*.

.. admonition:: Conventions

- use ``asset-tracker-cloud-[vendor]`` as a prefix to denote that it contains *cloud example code*
- append ``-[vendor]`` to the prefix if the project relates to a specific cloud vendor
- for the firmware repo use ``asset-tracker-firmware``
- do not use ``example`` as part of the slug

Examples
----------------------------------------------------------------------------------

+--------------------------------------------------+--------------------------------------------------------------------+
| Project | Purpose |
+==================================================+====================================================================+
| ``asset-tracker-cloud-docs`` | Documentation |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-aws`` | AWS cloud resources |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-azure`` | Azure cloud resources |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-app`` | Web App |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-firmware`` | Firmware |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-device-ui`` | Device Simulator Web App |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-device-ui-server`` | Device Simulator Server used by the Device Simulator Web App |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-code-style`` | Code style for all Asset Tracker Cloud Example projects |
+--------------------------------------------------+--------------------------------------------------------------------+
| ``asset-tracker-cloud-eslint-config-typescript`` | TypeScript code style for all Asset Tracker Cloud Example projects |
+--------------------------------------------------+--------------------------------------------------------------------+

Helper projects
==============

The project slugs use the following naming rules for **helper** repositories:

.. admonition:: Conventions for cloud vendor specific projects

Use ``cloud-[vendor]-`` as a prefix for projects that have cloud vendor specific code, but are **not specific to the asset tracker application**, e.g. helper libraries for a specific AWS service.

Examples
----------------------------------------------------------------------------------

+---------------------------------------+----------------------------------------------------+
| Project | Purpose |
+=======================================+====================================================+
| ``cloud-aws-cloudformation-cleaner`` | cleans up left-over stacks from CI runs |
+---------------------------------------+----------------------------------------------------+
| ``cloud-aws-cloudformation-helpers`` | simplifies working with AWS CloudFormation stacks. |
+---------------------------------------+----------------------------------------------------+
| ``cloud-aws-package-layered-lambdas`` | packages lambdas with Webpack for deploying to AWS |
+---------------------------------------+----------------------------------------------------+
| ``cloud-aws-timestream-helpers`` | simplifies working with AWS Timestream |
+---------------------------------------+----------------------------------------------------+
| ``cloud-aws-firmware-ci`` | Firmware CI runner for AWS |
+---------------------------------------+----------------------------------------------------+
.. admonition:: Convention for cloud agnostic projects

Use ``cloud-`` as a prefix for prjects that are used with a cloud but are vendor-agnostic.

Examples
----------------------------------------------------------------------------------

+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| Project | Purpose |
+=======================================+===========================================================================================================+
| ``cloud-firmware-ci`` | Contains helper functions for interacting with the nRF9160 used during end-to-end tests |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| ``cloud-e2e-bdd-test-runner`` | Implementation of a test-runner for end-to-end tests of cloud-native applications using Gherkin features. |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| ``cloud-e2e-bdd-test-runner-example`` | Demonstrates ``e2e-bdd-test-runner`` |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------+

.. admonition:: Convention for libraries

Use ``-[language]`` as a suffix for projects that provide libraries for a specific programming environment or language.

Examples
----------------------------------------------------------------------------------

+---------------------------------+---------------------------------------------------------------------------------------------------+
| Project | Purpose |
+=================================+===================================================================================================+
| ``cell-geolocation-helpers-js`` | Helper functions for the cell geolocation feature. |
+---------------------------------+---------------------------------------------------------------------------------------------------+
| ``object-to-env-js`` | Convert an object to environment variable definitions |
+---------------------------------+---------------------------------------------------------------------------------------------------+
| ``random-words-js`` | Returns random 8-letter words from the Webster's Unabridged Dictionary. |
+---------------------------------+---------------------------------------------------------------------------------------------------+
| ``rsrp-bar-react`` | React component to render an RSRP bar or a failover icon in case the reported value is not valid. |
+---------------------------------+---------------------------------------------------------------------------------------------------+

.. admonition:: Convention for standalone projects

Keep standalone projects as is.

Examples
----------------------------------------------------------------------------------

+-------------------------+---------------------------------------------------------------------------------+
| Project | Purpose |
+=========================+=================================================================================+
| ``at_client`` | Compile the AT client sample for 9160DK and Thingy:91 and publish it regularly. |
+-------------------------+---------------------------------------------------------------------------------+
4 changes: 2 additions & 2 deletions docs/Support.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ Support

.. image:: https://img.shields.io/badge/%7BDevZone-community-brightgreen.svg
:alt: {DevZone Community
:target: https://devzone.nordicsemi.com/search?q=bifravst
:target: https://devzone.nordicsemi.com/search?q=AssetTrackerCloudExample

❓ You can get in touch via `DevZone <https://devzone.nordicsemi.com/>`_ (You can use the tag `Bifravst <https://devzone.nordicsemi.com/search?q=bifravst>`_ to mark your questions) or by `creating an issue in the Bifravst repository <https://github.com/bifravst/bifravst/issues/new>`_.
❓ You can get in touch via `DevZone <https://devzone.nordicsemi.com/>`_ (You can use the tag `AssetTrackerCloudExample <https://devzone.nordicsemi.com/search?q=AssetTrackerCloudExample>`_ to mark your questions) or by `creating an issue in the Asset Tracker Cloud Example repository <https://github.com/bifravst/bifravst/issues/new>`_.

0 comments on commit 0d42b57

Please sign in to comment.