How to build an IoT stack

How to build an IoT stack

We’ve developed a guide to assist you in your journey to establish an IoT stack.

Selection | Establishment

Selecting your service provider, database, middleware and API’s.

Devices | Engineering

Scope, design, budget and build your IoT devices. And many more…

Since we’ve learnt so much creating an IoT platform we’re sharing some of our experience here. Not everyone will agree on the steps or the order and maybe not the complexity. Take what you need from this and tailor your own plan. Be sure to do your research first.

Our basic advise is this: Our basic advice is this: You need to be very good at one thing on this list. Software, hardware development, project management. There is a huge wave of development in IoT, be careful! You can hop on and ride that wave. Some of the unlucky get dumped, end up in the weeds and left gasping for air.

Check out some of the benefits of IOTIQ.io

Before you build your own system, consider how we might be able to help youwith some shortcuts.

For a better idea of the capabilities of IOTIQ.io, just schedule a Demo Appointment with one of our team.

Step
Tips
01

Scoping

Scope out your project from a high level. What are the business objectives, technical goals, use case requirements? List out the major deliverables, and key milestones. Don’t forget to document your assumptions and constraints as these are likely to be dynamic and will change over the life of your project.


02

Prepare Detailed Use Cases

What are the use cases? Consider each user type, and the functions likely to be needed for that use case. Consider the business relationships between your vendors, customers, distributors and resellers. Each of these relations will each have their own internal user requirements. Who is going to ‘own’ the system within each entity? Who can create new users, and members? What roles will each group require? Do not simplify this stage! You’ll likely exclude many potential revenue streams. Also, keep in mind that each stakeholder has their own relationships, so your Vendor has their own customers, your customer has their own distributors, resellers and customers. Your use cases should then be broken down into a recurring cascading model. Don’t forget to update and review the assumptions.


03

Design your backend

Now we need a database. The fun is only just beginning! Your database design needs to consider the scope of works and the use cases. Plan for the volume of data and the read/writes needed now and in the future. What structure is going to make the front end easiest to develop, support, and grow? Ensure you can run a few variations at once. Typically broken down into [1] Development, [2] Testing, [3] Sandbox, [4] Production. Once this is decided, review the use cases and see which exist where. Does a customer need to be able to verify a feature in the Sandbox? Basic questions like this must feedback to the documented assumption.


04

Selecting a Hosting Service

There are many great hosting platforms to choose from. AWS, Azure, Netlify, Heroku, Docker, Digital Ocean or even self-hosting. Choosing the hosting platform should reflect on your technical capabilities in terms of security, config, backup, redundancy planning and budget. It is important to start with a full scope to really determine all your requirements upfront. You’ll likely need a raft of IoT capable interfaces (such as MQTT and REST and others) and these will largely be drive by the devices you intend to source or build.


05

Consider Front End

The front end is what your customer sees. What data do they want? What reports, notifications and alerts? Are messaging interfaces needed? You have a lot to choose from React, Angular, Vue.js (our personal favourite!) What technology do you prefer such as JavaScript, PHP, .NET or ASP? What tools and environment does your organisation need to support the chosen front end. As the system grows, so does data. What state management tools are needed to ensure the system runs and is optimised as the data grows? What reporting and statistical modelling is going to be needed, and does the chosen front end have enough capabilities to offer your users those outcomes?


06

Design your Middleware

Middleware is a major factor in scaling and simplifying your front end. It will help to massage payloads in/out and drastically reduce your bundle sizes on different operations.


07

Design your Authorisation and authentication model

Anything that can access the system needs to be authorised. From users to devices, to other components like the middleware. Also, as the system grows you’ll likley need to pull in data or share data on an automated basis. How these systems and components interact will determine how the auth models need to interact.


08

Develop your testing panel

What aspects of the system need to be tested to ensure the system is working. List these out, and retain for your developer as they are going to need to create an automated testbed to verify each milestone of development and release before is field ready. Tests need to run across the 4x Environments above ([1] Development, [2] Testing, [3] Sandbox, [4] Production) and each of the Middleware, Authorisation and Front End shall all need to exist in these modes. Run the automated tests across each and be sure that new features and capabilities are evaluated exhaustingly before prior to moving into the production environment.


09

Plan your Front End

What does it look like? What colours and fonts. While there are plenty of good frameworks and design styles, you’ll invariably need your own flavour. Material design is always a good choice as it’s modern, simple yet extensive and users will typically have an organic feel for it. Don’t let the graphic designer go wild here or you’ll never find a developer who can meet all their expectations. How will the system be branded? How will you reflect your customer brands in the front end? What other branding requirements exist to really support your business and customers?


10

Consider UI/UX

This can develop into an entire area of speciality. The premise is to keep it simple. Remember the KISS theory? You want minimum design elements than can be repurposed for multiple activities. With IoT devices, you have a vision of the data you need to capture. However, for your system to grow and suit multiple applications then this data is likely to change. Think of how you can measure all types of things, power, energy, environmental measurements (humidity, temperature, lux, heat) and be sure that your system can change and grown dynamically with new technologies and IoT devices.


11

Review

Steps 4 through 10 are iterative. Completing the design for your authorisation and testing may trigger a revision to the hosting requirements. At each stage, the other stages need to be revised and reviewed to ensure all factors are accommodated for each element.


12

Wireframes

Create your wireframes for each page and each section. You’ll find a raft of tools for this job but start simple. Pencil and paper are fine for step 1. Once the major elements are right, build with a design tool like Balsamiq (there are others) where the design can be quickly ingested into a dev tool to assist with rapid user interface development.


13

Budget

We are almost ready to get started now. You have sufficient information to seek your development partner or employ staff. Beware of offshore developers. They require 10x the amount of management and are drastically less productive than top talent. Also be aware that many developers will aim to entrench themselves into your project; ultimately so they have a job for life. This can make your project unfeasible, and very hard to move between developers. Do it once and do it right. When it comes to software development they say “… the smart [man] pays once, the silly [man] pays every time …” or something like that. We are quoting someone, so please insert your preferred gender pronoun at [man]! Regarding Budget, your typical high-end developer will be looking for $150-200k pa and need some support staff and junior developers. $600-700k pa is a good starting range, plus your hosting, and other services. You may need a local server environment depending on your final stack, workstations and software licenses. If you don’t have the budget, go back to stage 01/02 and revise your requirements.


14

Hardware - IoT Devices

So far, we’ve put a real dent in the Software side of things. Now you can think about Hardware. What kinds of devices are needed? How are they organised? Does one ‘item’ need multiple measurements of data? How often is the data needed? Is it real-time or point to point? Design a scheme that allows many device types and measurements. Combine data points into feeds, data feeds into assets and assets into classes and groups. A bit like a family tree for 10+ generations. A self-cascading approach leads to many possibilities but will push out your design complexity.


15

Hardware - Power

How are the devices to be powered? Do they run on mains, battery, solar? How will batteries be serviced? How can the battery level be remotely monitored within the system so it’s managed proactively? How can your new system report when a device is offline or suffering from low power?


16

Hardware - Enclosures

Determine the enclosure requirements. Consider environmental conditions and weather. Outdoor unit’s need to be UV compatible, and all penetrations weather sealed. Are there any hazardous areas or chemical compatibility considerations?


17

Caution on Hazardous Areas

Hazardous areas are any areas where various materials are stored. These can be gasses, fuels, chemicals, solvents paint etc. Any such areas require a totally different engineering mindset. Engage a hazardous area consultant to oversee such issues.


18

Hardware Prototyping

Sourcing components must include an evaluation phase. Be sure to bring hardware into a prototype area. The best way to do that is with the Sandbox environment. You can test all manner of things without disrupting the production environment.


19

Fees & Revenue

By now you have an extensive idea of costs and timelines. How can you monetise the system to cover it’s development and ongoing costs? How can you keep control of comms costs and recover those costs and make a profit? With all the tech talk, it’s often easy to overlook the commercial side of things. If you want that CAPEX approval this step is critical!


20

Toolchain & Environment

With any large-scale project, you’ll need a way to track features, changes, bugs, and user issues. These are important parts of your developers’ tools, and underpin your responsiveness to issues, fixes and customers problems. Get this right at the start and you’ll save many hours of trawling emails, documents and missing data. A good repository management system will correlate development milestones, bug fixes etc across each evolution of your 4x Environments ([1] Development, [2] Testing, [3] Sandbox, [4] Production). You’ll love the ability to know when a fix shipped and verify it’s tests in the Test and Sandbox environment.


21

Commencement

Congratulations if you made it this far. Let the team get started. Hold regular progress meetings, and revise work regularly. If things get off track you need to pull the ship back on course quickly.


22

Performance Evaluation

Keep an eye on your timeframes. Development projects consistently run overtime. Feature creep, overlooked assumptions and personal preferences of the many players can all lead to blowouts. Measure your performance milestones against the use cases and assumptions. Don’t let precious budget go to non-core features. If customers want new things that are not in the use case or assumptions, charge for development.


23

Prototype Commissioning

Once you’ve got the first few weeks/months development completed it’s time to get some prototype data sent into your new IoT system. How can you manage remote devices? How do settings get changed? Verify calibrations and ensure that inbound data is in it’s raw form. Process data in the middleware and display calculated data.


24

Device Fleets

Dealing with a few devices should be run of the mill by now. How can you manage 1000 devices? How do you onboard new customers and new devices quickly? Be sure to develop your deployment and onboarding processes during the development phase. Consider a tagging structure that can be reactive and dynamic such that new relations can be formed between every entity in the system.


25

There is more...

Of course, there is far more work required. IOTIQ.io can help you overcome this huge workload; we’ve already done it. By using a wholesale Platform vendor like IOTIQ we take this complexity away for you. Your organisation can focus on selling great devices, and world-class IoT knowing that we’ve done the hard work for you.


Check out some of the benefits of IOTIQ.io

Before you build your own system, consider how we might be able to help youwith some shortcuts.

For a better idea of the capabilities of IOTIQ.io, just schedule a Demo Appointment with one of our team.