https://github.com/guppster/ark-iotcontroller
Provides a user interface to control ARK IoT modules
https://github.com/guppster/ark-iotcontroller
ark blockchain iot-application mobile-app
Last synced: 3 months ago
JSON representation
Provides a user interface to control ARK IoT modules
- Host: GitHub
- URL: https://github.com/guppster/ark-iotcontroller
- Owner: Guppster
- License: mit
- Created: 2017-10-15T00:44:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-16T05:26:17.000Z (over 7 years ago)
- Last Synced: 2025-01-12T06:23:46.898Z (4 months ago)
- Topics: ark, blockchain, iot-application, mobile-app
- Language: JavaScript
- Size: 36.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ark-IoTController
[](http://standardjs.com/)
Provides a user interface to control ARK IoT modules
The IoT controller is a way to monitor and interact with any Ark Blockchain connected IoT device that follows this specified architecture. The controller will be in the form of a mobile application and provide the user a Plug-and-Play process from the point of receiving an IoT device to where they can execute actions on the hardware.
The controller app provides the following functionality:
- Ability to register a new IoT device
- Assume and give away ownership of a device
- Fetch interaction history for a specific device
- Fetch available interaction from an IoT-Module and display them as buttons
- Execute a specified action on a specified device### Learn more about the Ark IoT-Architecture
http://gurpreetsingh.me/ProjectLedger/2017/10/16/ark-iot-infrastructure.html
## :arrow_up: How to Setup
**Step 1:** git clone this repo:
**Step 2:** cd to the cloned repo:
**Step 3:** Install the Application with `yarn` or `npm i`
## :arrow_forward: How to Run App
1. cd to the repo
2. Run Build for either OS
* for iOS
* run `react-native run-ios`
* for Android
* Run Genymotion
* run `react-native run-android`## :no_entry_sign: Standard Compliant
[](https://github.com/feross/standard)
This project adheres to Standard. Our CI enforces this, so we suggest you enable linting to keep your project compliant during development.**To Lint on Commit**
This is implemented using [husky](https://github.com/typicode/husky). There is no additional setup needed.
**Bypass Lint**
If you have to bypass lint for a special commit that you will come back and clean (pushing something to a branch etc.) then you can bypass git hooks with adding `--no-verify` to your commit command.
**Understanding Linting Errors**
The linting rules are from JS Standard and React-Standard. [Regular JS errors can be found with descriptions here](http://eslint.org/docs/rules/), while [React errors and descriptions can be found here](https://github.com/yannickcr/eslint-plugin-react).
## :closed_lock_with_key: Secrets
This project uses [react-native-config](https://github.com/luggit/react-native-config) to expose config variables to your javascript code in React Native. You can store API keys
and other sensitive information in a `.env` file:```
API_URL=https://myapi.com
GOOGLE_MAPS_API_KEY=abcdefgh
```and access them from React Native like so:
```
import Secrets from 'react-native-config'Secrets.API_URL // 'https://myapi.com'
Secrets.GOOGLE_MAPS_API_KEY // 'abcdefgh'
```The `.env` file is ignored by git keeping those secrets out of your repo.
### Get started:
1. Copy .env.example to .env
2. Add your config variables
3. Follow instructions at [https://github.com/luggit/react-native-config#setup](https://github.com/luggit/react-native-config#setup)
4. Done!