Inspiration

Crop Recon was inspired by a simple problem: farms and green spaces often rely on delayed, manual checks to spot dangerous environmental changes. We wanted to build a system that feels like a live command center, where sudden temperature or humidity shifts are detected immediately and surfaced in a way that is actionable, not just technical. Our goal was to combine real sensor data, real-time visuals, and automated alerting into one platform that helps people respond faster. The use of a esp32c3 and lora module are very affordable while also being scalable and they last on a very long charge because they are very low power.

What it does

Crop Recon is a real-time environmental monitoring dashboard for distributed sensor nodes. It:

  • Ingests telemetry from sensor nodes over MQTT
  • Stores readings in MongoDB for history and analysis
  • Streams live updates to a web dashboard with Socket.IO
  • Visualizes node health and trends with charts and a tactical map
  • Detects sudden anomalies (temperature/humidity deltas) automatically
  • Creates and manages alert lifecycles (open/resolved)
  • Sends external alerts to Discord
  • Generates AI-based incident briefing bullets from recent alert logs

In short, it turns raw sensor events into live situational awareness.

How we built it

We built Crop Recon as a full-stack JavaScript system:

  • Frontend: Next.js + React for the dashboard UI
  • Realtime: Socket.IO for live push updates from backend to client
  • Backend: Express.js API server
  • Data layer: MongoDB + Mongoose models for sensor readings and alerts
  • Messaging: MQTT client to receive telemetry from field nodes
  • Mapping/visualization: React Leaflet and charting components
  • Notifications: Discord webhook integration
  • AI summary: Gemini API for concise incident briefings

The architecture is event-driven: incoming node data is processed once, persisted, checked for anomalies, emitted to clients, and used to update active alert state.

Challenges we ran into

  • Designing anomaly logic that avoids false positives while still reacting quickly
  • Managing alert state transitions cleanly (open vs resolved) across changing node readings
  • Handling real-time synchronization between ingestion, database writes, and frontend sockets
  • Keeping chart history performant and readable with multiple nodes and frequent updates
  • Coordinating environment variables and local networking assumptions across frontend/backend services
  • Integrating external APIs (Discord/AI) with robust fallback behavior when keys are missing or requests fail

Accomplishments that we're proud of

  • Built a complete end-to-end pipeline from physical sensor stream to live dashboard
  • Implemented automated anomaly detection with configurable thresholds
  • Added real-time alert lifecycle tracking with clear status updates
  • Shipped a command-center style interface that is both functional and engaging
  • Added practical incident communication via Discord alerts
  • Added AI-generated summary bullets to transform logs into quick operator briefings
  • Kept the system modular enough to extend with more node types and detection rules

What we learned

  • Real-time systems are as much about state management as they are about data transport
  • Good alerting is a product problem, not just an engineering one: signal quality matters
  • Clean API boundaries and shared data shapes are critical when frontend and backend evolve quickly
  • Fallback paths (for missing keys/services) make demos and production behavior much more resilient
  • Hackathon velocity improves dramatically when the team aligns early on architecture and scope

What's next for Crop Recon

  • Harden deployment for production with HTTPS-first URL handling and better CORS config
  • Add authentication and role-based access for different operators
  • Introduce geofencing and per-zone alert policies
  • Expand anomaly detection with baseline models and trend-based forecasting
  • Add SMS/voice escalation (e.g., Twilio) for high-severity incidents
  • Improve observability with health checks, metrics, and alert audit trails
  • Support more sensor types (soil moisture, light, pH, wind) for richer agronomic insight
  • Add a way to control the nodes from the dashboard. For example, when there is a temperature spike you can turn on the sprinklers

Built With

Share this project:

Updates