How semina-by-mindframe/semina-backend works
Semina is a plant-care backend, not the Supabase CLI described by the supplied README; the README appears unrelated to this repository. The principal flow is client requests through Express routes to plant data and care features, with Supabase-backed state and AI-assisted plant guidance. The tree also exposes separate Supabase Edge Functions for chat, plant suggestions/care plans, and image-based health scans. Route source was sampled selectively, so unsampled routes are shown as capabilities without speculative internal wiring.
Main entry points: app.js Express app · supabaseClient.js Supabase client · chatbot/index.ts Plant chatbot · grow-plant/index.ts Suggest and plan
Components 21
HTTP API
- API server
src/server.js - Express app
src/app.js - System routes
src/routes/system.js
Plant Care
- Plant routes
src/routes/plants.js - Recommendations
src/routes/recommendations.js - Reminders
src/routes/reminders.js - Plant logs
src/routes/logs.js - Sensor routes
src/routes/sensors.js - Light matching
src/services/recommendationService.js
AI Features
- AI routes
src/routes/ai.js - Plant chatbot
supabase/functions/chatbot/index.ts - Suggest and plan
supabase/functions/grow-plant/index.ts - Plant health scan
supabase/functions/scan-plant/index.ts
Data and Sensors
- Supabase client
src/services/supabaseClient.js - Supabase data
- Sensor demo API
sensor-demo.js - Latest readings
sensor-demo.js
Other components
- Client
- OpenAI
- Gemini
- Sensor device
Connections 25
- Client → API server: HTTP requests
- API server → Express app: starts
- Express app → Plant routes: mounts
- Express app → Sensor routes: mounts
- Express app → AI routes: mounts
- Express app → Recommendations: mounts
- Express app → Reminders: mounts
- Express app → Plant logs: mounts
- Express app → System routes: mounts
- Plant routes → Supabase client: queries
- Reminders → Supabase client: queries
- Light matching → Supabase client: queries
- Supabase client → Supabase data: reads and writes
- Client → Plant chatbot: invokes
- Plant chatbot → Supabase data: reads and updates
- Plant chatbot → OpenAI: requests completion
- Client → Suggest and plan: invokes
- Suggest and plan → Gemini: requests suggestions
- Suggest and plan → Supabase data: saves care plan
- Client → Plant health scan: invokes
- Plant health scan → Gemini: analyzes image
- Plant health scan → Supabase data: saves scan
- Sensor device → Sensor demo API: posts readings
- Sensor demo API → Latest readings: stores latest
- Sensor demo API → Client: serves readings