Skip to content

Repository files navigation

title IoT Systems - Collaboration Guide
description Contributing guide for IoT Systems course content
tableOfContents true
sidebar
order
999

IoT Systems

Build License Contributors Welcome

Read this course at: https://siliconwit.com/education/iot-systems/

A hands-on course covering IoT architecture from protocol selection through production monitoring. You will build secure MQTT pipelines, real-time dashboards, and a complete edge-to-cloud system.

Lessons

# Title
1 IoT Architecture and Protocol Comparison
2 MQTT Broker Setup and Secure Connections
3 MQTT Clients on ESP32 Pico and STM32
4 Real-Time Dashboards and Data Visualization
5 REST APIs Webhooks and Device Integration
6 Alerts Automation and Rule Engines
7 Device Security TLS and Provisioning
8 Production IoT Monitoring System

File Structure

iot-systems/
├── lesson-0.mdx        # Course introduction
├── lesson-1.mdx        # IoT Architecture and Protocol Comparison
├── lesson-2.mdx        # MQTT Broker Setup and Secure Connections
├── lesson-3.mdx        # MQTT Clients on ESP32 Pico and STM32
├── lesson-4.mdx        # Real-Time Dashboards and Data Visualization
├── lesson-5.mdx        # REST APIs Webhooks and Device Integration
├── lesson-6.mdx        # Alerts Automation and Rule Engines
├── lesson-7.mdx        # Device Security TLS and Provisioning
├── lesson-8.mdx        # Production IoT Monitoring System
└── README.md

How to Contribute

All commands below work on Linux, macOS, and Windows (using Git Bash, PowerShell, or Command Prompt with Git installed).

For Team Members (with push access)

First time setup (clone the repo once):

git clone https://github.com/SiliconWit/iot-systems.git
cd iot-systems

Every time you start working:

git pull origin main

Always pull before making changes. This avoids conflicts with other contributors.

After making your changes:

git add .
git commit -m "Brief description of what you changed"
git push origin main

If you get a push error (someone pushed before you):

git pull origin main

Git will merge the changes automatically in most cases. If there is a conflict, Git will mark the conflicting lines in the file. Open the file, choose which version to keep, then:

git add .
git commit -m "Resolve merge conflict"
git push origin main

Tips to avoid conflicts:

  • Always git pull origin main before you start working
  • Push your changes as soon as you are done, do not hold onto uncommitted work for long
  • Coordinate with other contributors so two people are not editing the same file at the same time

For External Contributors (without push access)

  1. Fork the repository: SiliconWit/iot-systems
  2. Clone your fork:
    git clone https://github.com/YOUR-USERNAME/iot-systems.git
    cd iot-systems
  3. Make your changes and commit:
    git add .
    git commit -m "Brief description of what you changed"
    git push origin main
  4. Open a Pull Request against main on the original repository
  5. Describe what you changed and why in the PR description

Content Standards

  • All lesson files use .mdx format
  • Do not use <BionicText> in this course
  • Code blocks should include a title attribute:
    ```python title="mqtt_client.py"
    import paho.mqtt.client as mqtt
    ```
  • Use Starlight components (<Tabs>, <TabItem>, <Steps>, <Card>) where appropriate
  • Keep paragraphs concise and focused on practical application
  • Include working code examples that readers can run directly

Local Development

Clone the main site repository and initialize submodules:

git clone --recurse-submodules <main-repo-url>
cd siliconwit-com
npm install
npm run dev

To test a production build:

npm run build

License

This course content is released under the MIT License.

About

A sensor that only logs to serial is not an IoT device. IoT means the data reaches a broker, gets stored, triggers alerts, appears on dashboards, and drives decisions, whether the operator is in the next room or on another continent.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages