Thanks to visit codestin.com
Credit goes to github.com

Skip to content

๐ŸŽจ Share ambient colors in real-time across IoT LED devices. Connect spaces and people through synchronized lighting experiences with mobile control and smart device integration.

Notifications You must be signed in to change notification settings

nickcrisci/PalPalette-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PalPalette - IoT Color Sharing Platform

The original idea of this was to create a system that lets remote friends easily share moments with each other. The first version of this was created in the context of a university module. As there were deadlines to fullfill, our techstack was not optimal and the structure lacked... structure.

This second version seen here is the attempt to bring more structure and a better techstack to this project. But again, there were deadlines to fullfill (this time for a study using this system) and the second version had to be created rather quickly. Because of this it was decided to try to create the new system using AI support.

As many of you probably know, this can be rather chaotic at times. While some parts of this system are already working well, others are still chaotic and do not work as intended. In the near future human devs should take control back from the AI in this project, hopefully fixing what the AI could'nt.

As I'm neither an expert in C++, nor in NestJS, the AI created the code only with my supervision. I plan on learning these techs in the near future, to be able to further develop this on my own.

In the meantime, I invite everyone who has a better understanding of these technologies to refactor and expand this project :).

The following readme was also created by the AI

A revolutionary IoT ecosystem that bridges the digital and physical worlds through color

PalPalette transforms how we share and experience colors by connecting mobile devices, cloud services, and physical LED displays. Extract colors from your world, share them with friends, and watch them come alive on beautiful LED installations in real-time.

๐ŸŽฏ Project Vision

In an increasingly digital world, PalPalette creates tangible connections through the universal language of color. Whether you want to share the sunset from your vacation, the cozy ambiance of your coffee shop, or simply brighten a friend's day with their favorite colors, PalPalette makes it possible with just a photo and a tap.

โœจ What Makes PalPalette Special

  • ๐ŸŒˆ Instant Color Magic: Point, capture, extract, and share color palettes in seconds
  • ๐Ÿค Social Color Sharing: Send colors to friends like sending messages
  • ๐Ÿ’ก Physical Manifestation: Watch digital colors transform into beautiful LED displays
  • ๐Ÿ”ง Zero-Configuration Setup: ESP32 devices that set themselves up automatically
  • ๐ŸŒ Real-Time Synchronization: WebSocket-powered instant color delivery
  • ๐Ÿ“ฑ Cross-Platform Mobile: Works on iOS and Android with native performance

๐Ÿ—๏ธ System Architecture

High-Level Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Mobile App    โ”‚โ—„โ”€โ”€โ–บโ”‚   Backend API    โ”‚โ—„โ”€โ”€โ–บโ”‚  ESP32 Device   โ”‚
โ”‚ (Ionic/React)   โ”‚    โ”‚ (NestJS + WS)    โ”‚    โ”‚   (Arduino)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚                        โ”‚                        โ”‚
       โ”‚                        โ”‚                        โ”‚
   โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”
   โ”‚ Camera โ”‚              โ”‚Database โ”‚              โ”‚ WS2812B โ”‚
   โ”‚ Color  โ”‚              โ”‚(Postgresโ”‚              โ”‚   LED   โ”‚
   โ”‚Extract โ”‚              โ”‚ + JWT)  โ”‚              โ”‚ Display โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Detailed Component Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        PalPalette System                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                          Frontend Layer                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   iOS App       โ”‚  โ”‚   Android App   โ”‚  โ”‚   Web Portal    โ”‚ โ”‚
โ”‚  โ”‚ (Ionic/Capacitorโ”‚  โ”‚ (Ionic/Capacitorโ”‚  โ”‚   (React)       โ”‚ โ”‚
โ”‚  โ”‚  + TypeScript)  โ”‚  โ”‚  + TypeScript)  โ”‚  โ”‚                 โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                        API Gateway Layer                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚              NestJS Backend API Server                     โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  Auth   โ”‚ โ”‚ Devices โ”‚ โ”‚Messages โ”‚ โ”‚  Users  โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ Module  โ”‚ โ”‚ Module  โ”‚ โ”‚ Module  โ”‚ โ”‚ Module  โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       Communication Layer                       โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚   REST APIs     โ”‚              โ”‚   WebSocket     โ”‚           โ”‚
โ”‚  โ”‚ (HTTP/HTTPS)    โ”‚              โ”‚   (Real-time)   โ”‚           โ”‚
โ”‚  โ”‚                 โ”‚              โ”‚                 โ”‚           โ”‚
โ”‚  โ”‚ โ€ข Authenticationโ”‚              โ”‚ โ€ข Device Comms  โ”‚           โ”‚
โ”‚  โ”‚ โ€ข User Managementโ”‚              โ”‚ โ€ข Color Sharing โ”‚           โ”‚
โ”‚  โ”‚ โ€ข Device Setup  โ”‚              โ”‚ โ€ข Live Updates  โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                         Data Layer                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚                PostgreSQL Database                          โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  Users  โ”‚ โ”‚ Devices โ”‚ โ”‚Messages โ”‚ โ”‚Palettes โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  Table  โ”‚ โ”‚  Table  โ”‚ โ”‚  Table  โ”‚ โ”‚  Table  โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                         IoT Layer                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   ESP32 MCU     โ”‚  โ”‚   ESP32 MCU     โ”‚  โ”‚   ESP32 MCU     โ”‚ โ”‚
โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚ โ”‚
โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚
โ”‚  โ”‚ โ”‚WiFi Manager โ”‚ โ”‚  โ”‚ โ”‚WiFi Manager โ”‚ โ”‚  โ”‚ โ”‚WiFi Manager โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ”‚Device Setup โ”‚ โ”‚  โ”‚ โ”‚Device Setup โ”‚ โ”‚  โ”‚ โ”‚Device Setup โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ”‚WS Client    โ”‚ โ”‚  โ”‚ โ”‚WS Client    โ”‚ โ”‚  โ”‚ โ”‚WS Client    โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ”‚LED Control  โ”‚ โ”‚  โ”‚ โ”‚LED Control  โ”‚ โ”‚  โ”‚ โ”‚LED Control  โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚
โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚ โ”‚
โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚  โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚
โ”‚  โ”‚ โ”‚  WS2812B    โ”‚ โ”‚  โ”‚ โ”‚  WS2812B    โ”‚ โ”‚  โ”‚ โ”‚  WS2812B    โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ”‚ LED Strip   โ”‚ โ”‚  โ”‚ โ”‚ LED Strip   โ”‚ โ”‚  โ”‚ โ”‚ LED Strip   โ”‚ โ”‚ โ”‚
โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Quick Deployment

๐Ÿš€ Quick Deployment

Get PalPalette running in production with these simple steps:

# Clone the repository
git clone https://github.com/yourusername/PalPalette-2.git
cd PalPalette-2

# Configure environment
cp .env.production.example .env.production
nano .env.production  # Set your DB_PASSWORD and JWT_SECRET

# Deploy with Docker
sudo docker-compose -f docker-compose.production.yml --env-file .env.production up -d --build

๐Ÿ”— Complete deployment guide: DEPLOYMENT.md

๐ŸŽฏ Core Features

๐Ÿ“ฑ Mobile Experience

  • ๐ŸŽจ Smart Color Extraction: Advanced algorithms extract dominant colors from any photo
  • ๐Ÿ‘ฅ Social Color Networks: Build friendships through shared color experiences
  • ๐Ÿ”ง Guided Device Setup: Intuitive wizard walks users through ESP32 pairing
  • ๐Ÿ’ฌ Real-Time Color Chat: Send colors like messages with instant delivery
  • ๐Ÿ“Š Color History: Track and replay favorite color combinations
  • ๐ŸŽญ Palette Collections: Organize colors into themed collections

๐Ÿ”Œ ESP32 IoT Devices

  • ๐ŸŒ Auto-Configuration: Zero-touch setup with captive WiFi portal
  • ๐Ÿ” Secure Self-Registration: Automatic device authentication with pairing codes
  • โšก Real-Time WebSocket: Ultra-low latency color synchronization
  • ๐Ÿ’พ Persistent Memory: Device state preserved across power cycles
  • ๐ŸŽจ Advanced LED Control: Support for WS2812B strips with smooth transitions
  • ๐Ÿ“ก Robust Connectivity: Automatic reconnection and error recovery

๐Ÿ–ฅ๏ธ Backend Infrastructure

  • ๐Ÿ”’ Enterprise Security: JWT-based authentication with refresh tokens
  • ๐Ÿ“Š Scalable Architecture: Microservice-ready NestJS modules
  • ๐Ÿ”Œ Dual Communication: REST APIs + WebSocket for optimal performance
  • ๐Ÿ‘ซ Social Features: Friend networks, requests, and color sharing permissions
  • ๐Ÿ“‚ Complete API: RESTful endpoints for all system operations
  • ๐Ÿ—„๏ธ Robust Database: PostgreSQL with comprehensive migrations

๐ŸŽญ User Journey Examples

The Sunset Sharer

"I captured the most beautiful sunset on my hike. Now my friend Emma can enjoy those exact colors on her bedroom LED strip while she relaxes after work."

  1. ๐Ÿ“ธ Capture sunset photo with mobile app
  2. ๐ŸŽจ App extracts warm orange, pink, and purple tones
  3. ๐Ÿ‘ซ Select Emma from friends list
  4. ๐Ÿ’ก Choose Emma's bedroom LED device
  5. โšก Colors instantly appear on Emma's LED strip
  6. ๐Ÿ’ฌ Emma receives notification with original photo

The Cozy Coffee Experience

"The lighting in this cafรฉ is perfect for reading. I'll share this ambiance with my study group's shared workspace."

  1. ๐Ÿ“ฑ Extract warm amber and soft white tones from cafรฉ photo
  2. ๐ŸŽฏ Send to "Study Room" device owned by study group
  3. ๐Ÿ  Entire room transforms to match cafรฉ ambiance
  4. ๐Ÿ“š Group enjoys enhanced focus atmosphere

The Long-Distance Love

"Even though we're in different cities, we can share the same colors and feel connected."

  1. ๐Ÿ’• Daily color sharing ritual between partners
  2. ๐ŸŒ… Morning person shares sunrise colors
  3. ๐ŸŒ™ Evening person shares twilight hues
  4. ๐Ÿ’ž Both experience shared color moments simultaneously

๐Ÿ—๏ธ Technical Architecture Deep Dive

Data Flow Architecture

graph TD
    A[Mobile App] -->|HTTP REST| B[NestJS API Gateway]
    A -->|Photo Capture| C[Color Extraction Engine]
    C -->|Hex Colors| A

    B -->|Query/Store| D[PostgreSQL Database]
    B <-->|WebSocket| E[ESP32 Device Pool]

    E -->|WiFi Setup| F[Captive Portal]
    E -->|LED Control| G[WS2812B LEDs]
    E -->|Status Updates| B

    D -->|User Auth| H[JWT Service]
    D -->|Device Registry| I[Device Manager]
    D -->|Social Graph| J[Friends System]
Loading

Security Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Security Layers                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Application Layer                                           โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚   JWT Auth  โ”‚  โ”‚  Input Val  โ”‚  โ”‚  Rate Limit โ”‚        โ”‚
โ”‚  โ”‚  & Refresh  โ”‚  โ”‚ & Sanitiz.  โ”‚  โ”‚ & Throttle  โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Transport Layer                                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚   HTTPS/    โ”‚  โ”‚   Secure    โ”‚  โ”‚   Device    โ”‚        โ”‚
โ”‚  โ”‚   WSS TLS   โ”‚  โ”‚  WebSocket  โ”‚  โ”‚ Pairing Codesโ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Infrastructure Layer                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚  Database   โ”‚  โ”‚   Docker    โ”‚  โ”‚   Network   โ”‚        โ”‚
โ”‚  โ”‚ Encryption  โ”‚  โ”‚  Container  โ”‚  โ”‚  Isolation  โ”‚        โ”‚
โ”‚  โ”‚ & Hashing   โ”‚  โ”‚  Security   โ”‚  โ”‚ & Firewall  โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Project Structure

PalPalette-2/
โ”œโ”€โ”€ ๐Ÿ“ฑ palpalette-app/              # Cross-Platform Mobile Application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/             # Reusable UI components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ColorExtractor/     # Camera & color analysis
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DeviceSetup/        # ESP32 pairing wizard
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SocialFeatures/     # Friends & sharing
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ LEDControls/        # Device management
โ”‚   โ”‚   โ”œโ”€โ”€ contexts/               # React contexts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AuthContext.tsx     # User authentication
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DeviceContext.tsx   # ESP32 device management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ WebSocketContext.tsx# Real-time communication
โ”‚   โ”‚   โ”œโ”€โ”€ pages/                  # Main application screens
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Dashboard/          # Color palette overview
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Camera/             # Photo capture & extraction
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Friends/            # Social network management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Devices/            # ESP32 device management
โ”‚   โ”‚   โ”œโ”€โ”€ services/               # API & WebSocket services
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ api.service.ts      # REST API client
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ websocket.service.ts# Real-time communication
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ color.service.ts    # Color analysis algorithms
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/                  # Custom React hooks
โ”‚   โ”‚   โ””โ”€โ”€ config/                 # Configuration & constants
โ”‚   โ”œโ”€โ”€ android/                    # Android platform files
โ”‚   โ”œโ”€โ”€ ios/                        # iOS platform files (future)
โ”‚   โ””โ”€โ”€ docs/                       # Mobile development guides
โ”‚
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ  backend/                    # Enterprise NestJS API Server
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ modules/                # Domain-driven feature modules
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth/               # JWT authentication system
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ guards/         # Route protection
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ strategies/     # Passport strategies
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ decorators/     # Custom auth decorators
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ devices/            # ESP32 device lifecycle
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dto/            # Data transfer objects
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ entities/       # Database entities
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ services/       # Business logic
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ messages/           # Color sharing & WebSocket
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ gateways/       # WebSocket gateways
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ handlers/       # Message processors
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ queues/         # Message queuing
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ users/              # User management & social
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ friends/        # Friendship system
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ palettes/       # Color palette storage
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ profiles/       # User profile management
โ”‚   โ”‚   โ”œโ”€โ”€ migrations/             # Database schema evolution
โ”‚   โ”‚   โ”œโ”€โ”€ common/                 # Shared utilities & decorators
โ”‚   โ”‚   โ””โ”€โ”€ config/                 # Environment configuration
โ”‚   โ”œโ”€โ”€ test/                       # Comprehensive test suites
โ”‚   โ””โ”€โ”€ docs/                       # API documentation & guides
โ”‚
โ”œโ”€โ”€ ๐Ÿ”ง controller/                  # ESP32 Arduino Firmware
โ”‚   โ”œโ”€โ”€ src/                        # Modular firmware architecture
โ”‚   โ”‚   โ”œโ”€โ”€ main.ino               # Main application loop
โ”‚   โ”‚   โ”œโ”€โ”€ config.h               # Hardware & network configuration
โ”‚   โ”‚   โ”œโ”€โ”€ core/                  # Core system modules
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DeviceManager.cpp  # Device lifecycle & registration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ WiFiManager.cpp    # Network connectivity & portal
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ WebSocketClient.cpp# Real-time communication
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ SystemUtils.cpp    # Utilities & diagnostics
โ”‚   โ”‚   โ”œโ”€โ”€ lighting/              # LED control subsystem
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LEDController.cpp  # WS2812B strip management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ColorAnimations.cpp# Smooth color transitions
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ EffectEngine.cpp   # Advanced visual effects
โ”‚   โ”‚   โ””โ”€โ”€ network/               # Network protocols
โ”‚   โ”‚       โ”œโ”€โ”€ CaptivePortal.cpp  # WiFi setup web interface
โ”‚   โ”‚       โ”œโ”€โ”€ HTTPClient.cpp     # REST API communication
โ”‚   โ”‚       โ””โ”€โ”€ OTAUpdater.cpp     # Over-the-air firmware updates
โ”‚   โ”œโ”€โ”€ platformio.ini             # PlatformIO configuration
โ”‚   โ”œโ”€โ”€ examples/                  # Usage examples & tutorials
โ”‚   โ””โ”€โ”€ docs/                      # Firmware development guides
โ”‚
โ”œโ”€โ”€ ๐Ÿณ deployment/                  # Production deployment
โ”‚   โ”œโ”€โ”€ docker-compose.production.yml # Production container orchestration
โ”‚   โ”œโ”€โ”€ nginx/                     # Reverse proxy configuration
โ”‚   โ”œโ”€โ”€ ssl/                       # SSL certificate management
โ”‚   โ””โ”€โ”€ monitoring/                # System monitoring & logging
โ”‚
โ””โ”€โ”€ ๐Ÿ“š docs/                       # Comprehensive documentation
    โ”œโ”€โ”€ ARCHITECTURE.md            # System design & patterns
    โ”œโ”€โ”€ DEPLOYMENT.md              # Production deployment guide
    โ”œโ”€โ”€ API.md                     # Complete API reference
    โ”œโ”€โ”€ DEVELOPMENT.md             # Local development setup
    โ”œโ”€โ”€ HARDWARE.md                # ESP32 & LED setup guide
    โ””โ”€โ”€ TROUBLESHOOTING.md         # Common issues & solutions

๐Ÿ”ง Development Setup

Prerequisites

  • Node.js 18+ - JavaScript runtime
  • Docker & Docker Compose - Containerization
  • Arduino IDE or PlatformIO - ESP32 development
  • ESP32 Development Board - Target hardware
  • WS2812B LED Strip - Light display (optional)

1. Backend Development

# Start backend services
cd backend
npm install
docker-compose up -d          # PostgreSQL database
npm run migration:run         # Database schema
npm run seed:run             # Sample data
npm run start:dev            # Development server with hot reload

# Access points:
# API: http://localhost:3000
# WebSocket: ws://localhost:3001
# Database: localhost:5432

2. Mobile App Development

# Start mobile development
cd palpalette-app
npm install
npx ionic serve              # Web browser development

# Platform-specific builds:
npx ionic cap run android    # Android device/emulator
npx ionic cap run ios        # iOS device/simulator (macOS only)

# Access: http://localhost:8100

3. ESP32 Firmware Development

# Prepare ESP32 development environment
cd controller

# Using Arduino IDE:
# 1. Install ESP32 board package
# 2. Install libraries: ArduinoJson, WiFi, WebSockets, Preferences
# 3. Open src/main.ino and upload

# Using PlatformIO:
pio run                      # Build firmware
pio upload                   # Flash to ESP32
pio device monitor           # Serial monitor for debugging

๐ŸŒŸ Key System Workflows

๐Ÿ”ง Device Setup & Pairing Flow

1. ๐Ÿ“ฆ ESP32 powers on โ†’ Creates "PalPalette-Setup" WiFi hotspot
2. ๐Ÿ“ฑ User connects phone โ†’ Opens captive portal at 192.168.4.1
3. ๐ŸŒ User enters home WiFi credentials โ†’ ESP32 connects to internet
4. ๐Ÿ” ESP32 auto-registers with backend โ†’ Generates unique pairing code
5. ๐Ÿ“ฑ User opens mobile app โ†’ Enters pairing code to claim device
6. โœ… ESP32 receives claim notification โ†’ Device becomes operational
7. ๐ŸŽจ Device ready to receive and display colors

๐ŸŽจ Color Capture & Sharing Flow

1. ๐Ÿ“ธ User captures photo with mobile app camera
2. ๐Ÿง  Advanced color extraction algorithm analyzes image
3. ๐ŸŽญ App presents dominant color palette (3-8 colors)
4. ๐Ÿ‘ฅ User selects friends and target ESP32 devices
5. โšก Backend delivers colors via WebSocket to ESP32s
6. ๐Ÿ’ก ESP32 displays colors on LED strip with smooth transitions
7. ๐Ÿ“ฑ Recipients receive notification with original photo
8. ๐Ÿ”„ Colors can be replayed, modified, or acknowledged

๐Ÿ‘ซ Social Network & Friends Flow

1. ๐Ÿ” User searches for friends by username or email
2. ๐Ÿ“ค Sends friend request through mobile app
3. ๐Ÿ“ฌ Recipient receives in-app notification
4. โœ… Recipient accepts/declines friend request
5. ๐Ÿค Friends can now share colors and see each other's devices
6. ๐ŸŽจ Color sharing permissions managed per friendship
7. ๐Ÿ“Š Shared color history tracked and accessible

๐Ÿ“– Documentation & Resources

๐Ÿ“‹ System Documentation

๐Ÿงฉ Component Documentation

๐Ÿ› ๏ธ Technology Stack

Frontend Technologies

  • ๐Ÿš€ Ionic Framework - Cross-platform mobile development
  • โš›๏ธ React - Component-based UI framework
  • ๐Ÿ“ฑ Capacitor - Native mobile platform integration
  • ๐ŸŽจ TypeScript - Type-safe JavaScript development
  • ๐Ÿ“ท Camera API - Native camera access for color capture
  • ๐ŸŽญ Color Analysis - Advanced color extraction algorithms

Backend Technologies

  • ๐Ÿ—๏ธ NestJS - Enterprise Node.js framework with dependency injection
  • ๐Ÿ”Œ WebSockets - Real-time bidirectional communication
  • ๐Ÿ—„๏ธ PostgreSQL - Relational database with JSON support
  • ๐Ÿ” JWT Authentication - Stateless security tokens
  • ๐Ÿ“Š TypeORM - Object-relational mapping with migrations
  • ๐Ÿณ Docker - Containerized deployment and development

IoT & Hardware

  • ๐Ÿ”ง ESP32 - WiFi-enabled microcontroller with dual-core processing
  • ๐Ÿ’ก WS2812B LEDs - Individually addressable RGB LED strips
  • โšก Arduino Framework - Embedded C++ development environment
  • ๐ŸŒ Captive Portal - Auto-setup WiFi configuration interface
  • ๐Ÿ’พ EEPROM Storage - Persistent device configuration storage

DevOps & Infrastructure

  • ๐Ÿณ Docker Compose - Multi-container application orchestration
  • ๐Ÿ”’ Environment Management - Secure configuration with .env files
  • ๐Ÿ“ฆ Git Version Control - Source code management and collaboration
  • ๐ŸŒ RESTful APIs - Stateless HTTP service architecture
  • โšก WebSocket Protocol - Low-latency real-time communication

๐Ÿš€ Getting Started

For Users

  1. ๐Ÿ“ฑ Download the mobile app (coming to app stores)
  2. ๐Ÿ›’ Get an ESP32 device and LED strip
  3. โšก Flash the firmware to your ESP32
  4. ๐Ÿ”ง Follow the setup wizard in the mobile app
  5. ๐ŸŽจ Start sharing colors with friends!

For Developers

  1. ๐Ÿ“ฅ Clone this repository
  2. ๐Ÿ“š Read the development documentation
  3. ๐Ÿ”ง Set up the development environment
  4. ๐Ÿงช Run the test suites
  5. ๐Ÿ’ก Start building amazing features!

For Makers & Hardware Enthusiasts

  1. ๐Ÿ“‹ Check the hardware requirements
  2. ๐Ÿ”Œ Wire up your ESP32 and LED strip
  3. โšก Flash the firmware
  4. ๐ŸŽจ Create beautiful LED installations
  5. ๐Ÿค Share your builds with the community!

๐Ÿค Contributing

We welcome contributions from developers, designers, makers, and color enthusiasts! Here's how you can help:

๐Ÿ› Bug Reports & Feature Requests

  • Use GitHub Issues for bug reports
  • Provide detailed reproduction steps
  • Include hardware/software versions
  • Suggest new features and improvements

๐Ÿ’ป Code Contributions

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create a feature branch: git checkout -b feature/amazing-feature
  3. โœ… Write tests for your changes
  4. ๐Ÿ“ Update documentation if needed
  5. ๐Ÿš€ Submit a Pull Request with detailed description

๐Ÿ“– Documentation

  • Improve existing documentation
  • Add tutorials and examples
  • Translate documentation
  • Create video guides

๐Ÿ”ง Hardware & Firmware

  • Test on different ESP32 variants
  • Add support for new LED types
  • Optimize power consumption
  • Create new visual effects

๐ŸŽฏ Future Roadmap

๐Ÿ”œ Coming Soon

  • ๐ŸŽ iOS App - Native iOS application
  • ๐ŸŒ Web Dashboard - Browser-based device management
  • ๐ŸŽต Music Sync - Color visualization synchronized with audio
  • ๐Ÿค– AI Color Suggestions - Intelligent palette recommendations
  • ๐Ÿ“ฑ Widget Support - Home screen color widgets

๐Ÿ”ฎ Future Vision

  • ๐Ÿ  Smart Home Integration - Philips Hue, LIFX compatibility
  • ๐ŸŽฎ Gaming Integration - Color effects for gaming events
  • ๐Ÿ“บ Screen Mirroring - Display computer/TV colors on LEDs
  • ๐ŸŒ Global Color Events - Worldwide synchronized color displays
  • ๐ŸŽจ AR/VR Integration - Virtual color palette interactions

โš ๏ธ Development Disclaimer

This project was built with AI assistance using GitHub Copilot and other AI tools, building upon an original human-created foundation. While the core concepts, architecture decisions, and user experience design reflect human creativity and expertise, significant portions of the implementation were enhanced and accelerated through AI collaboration.

๐Ÿค– AI-Assisted Development

  • Code Generation: Many code components were generated or enhanced by AI
  • Documentation: Large portions of documentation were created with AI assistance
  • Architecture Refinement: AI helped optimize and expand the original architecture
  • Testing & Debugging: AI assisted in creating comprehensive test suites

๐Ÿ‘จโ€๐Ÿ’ป Human Foundation

  • Original Concept: The core idea and user experience were human-designed
  • System Architecture: Base architecture and technology choices were human-driven
  • Creative Vision: The product vision and user stories are human-created
  • Final Validation: All AI-generated code was reviewed and validated by humans

This hybrid approach demonstrates the powerful collaboration possible between human creativity and AI capabilities, resulting in a more robust and feature-complete system than either could achieve alone.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๏ฟฝ Open Source Philosophy

  • โœ… Free to use for personal and commercial projects
  • โœ… Modify and distribute with attribution
  • โœ… Learn and experiment with the codebase
  • โœ… Build upon for your own projects

๏ฟฝ๐Ÿ™ Acknowledgments & Credits

๐Ÿ› ๏ธ Technology & Framework Credits

  • โš›๏ธ React & Ionic Teams - For exceptional cross-platform mobile frameworks
  • ๐Ÿ—๏ธ NestJS Community - For the robust, enterprise-ready backend framework
  • ๐Ÿ”ง Espressif Systems - For the powerful and affordable ESP32 platform
  • ๐Ÿ’ก FastLED Community - For advanced LED control libraries and effects

๐Ÿค Development & Community

  • ๐Ÿค– OpenAI & GitHub Copilot - For AI development assistance and code generation
  • ๐Ÿ‘ฅ Open Source Community - For countless libraries and tools that made this possible
  • ๐ŸŽจ Color Theory Researchers - For algorithms and insights into color perception
  • ๐Ÿ’ป Stack Overflow Contributors - For solutions to countless development challenges

๐ŸŽจ Design & Inspiration

  • ๐ŸŒˆ Color Enthusiasts - For inspiring the core concept of color sharing
  • ๐Ÿ  Smart Home Community - For pioneering IoT integration patterns
  • ๐Ÿ“ฑ UX/UI Designers - For mobile app design patterns and best practices

๐ŸŒˆ Made with โค๏ธ for the IoT and Color Community ๐ŸŒˆ

Bringing digital colors to life, one LED at a time

โญ Star this repo ๐Ÿด Fork this repo ๐Ÿ“ข Share on Twitter

About

๐ŸŽจ Share ambient colors in real-time across IoT LED devices. Connect spaces and people through synchronized lighting experiences with mobile control and smart device integration.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •