SShortSingh.
Back to feed

How a 15,000-Delegate Riyadh Expo Got Real-Time Crowd Tracking via RFID and Edge Computing

0
·2 views

A tech team built a live physical analytics dashboard for a large B2B exhibition in Riyadh, Saudi Arabia, serving approximately 15,000 delegates. Passive UHF RFID chips embedded in attendee lanyards were read by antenna arrays installed above doorways, generating thousands of location data points per second without manual scanning. To ensure reliability, edge computing nodes processed and deduplicated data locally using MQTT before asynchronously syncing to a central cloud database, insulating the system from network outages. A React frontend consumed this data over WebSockets to render sub-second live heatmaps and sponsor ROI metrics on an SVG venue map. The architecture highlights a broader shift toward edge-first IoT pipelines for high-density physical environments where cloud connectivity cannot be guaranteed.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Stripe, Square, QuickBooks or PayPal: Which payment processor suits contractor CRMs?

A developer building ToolbagCRM evaluated four major payment processors — Stripe, Square, QuickBooks Payments, and PayPal — to determine the best fit for contractor businesses. Stripe was ultimately chosen for its clean customer experience, ACH bank transfer support, and strong developer integration, though it lacks robust in-person hardware capabilities. Square excels at on-site card-present payments and offers quick setup, but its built-in CRM and invoicing features are considered too basic for larger operations. QuickBooks Payments suits businesses already using QuickBooks for bookkeeping, offering seamless reconciliation and competitive ACH rates, while PayPal's brand recognition appeals to some customers but carries higher effective fees and stricter fund-hold policies. The analysis concludes that the choice should be driven by how and when a business collects payments, rather than headline transaction rates alone.

0
ProgrammingDEV Community ·

How Internal Dev Platforms Can Quietly Shift From Enablement to Control

Platform engineering tools are designed to reduce toil and standardise workflows, but critics argue they can gradually centralise decision-making away from engineers closest to the systems. As adoption grows, constraints accumulate — approved modules, restricted configurations, and approval-gated workarounds — narrowing what was once a flexible 'golden path' into a rigid corridor. Abstractions layered over underlying systems can obscure reality, making incident response harder when dashboards show green while production is failing. The drift toward control is rarely intentional, but emerges as a structural response to audits, cost pressures, and executive mandates that reward uniformity over engineering judgement. Effective platforms, the argument goes, should preserve specialised expertise at the edges rather than flatten capability in the name of consistency.

0
ProgrammingDEV Community ·

Laravel's chunkById() Method Prevents Memory Crashes When Processing Large Datasets

Laravel applications processing large datasets often face severe memory pressure when using methods like get() or cursor(), which load all records into memory at once. The root cause is not insufficient hardware but the inefficient practice of pulling entire datasets into PHP memory simultaneously. Laravel's chunkById() method addresses this by fetching and processing records in predefined batches, clearing memory after each chunk before loading the next. This approach ensures the application never holds the full dataset in RAM, making it well-suited for long-running console commands, background jobs, and data migrations. Developers can further combine chunkById() with Eloquent aggregations such as withCount or withSum for more advanced, memory-safe data processing workflows.

0
ProgrammingDEV Community ·

Developer implements dark mode by remapping CSS variables instead of editing components

A developer added dark mode to an app containing roughly 1,200 hardcoded indigo and 2,600 hardcoded slate Tailwind class usages without modifying individual components. Instead of manually adding dark-mode variants to each component, they used two token-based strategies: replacing color names with a single brand token via a one-time codemod, and remapping Tailwind v4's slate color scale under a .dark CSS selector. Because Tailwind v4 already resolves utility classes through CSS variables, redefining those variables in the .dark scope caused every affected element across the codebase to flip automatically. The developer noted that a reversed color ramp requires careful handling of surface hierarchy and intentionally fixed colors for elements like dark CTAs and tooltips. The broader takeaway shared was that if a visual change requires editing many files, the property likely belongs in a design token rather than in component markup.