Initialize FishIQ development foundation
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# Architecture
|
||||
|
||||
FishIQ begins as a modular monolith around Django and PostgreSQL, with Redis for caching and background work. The web and mobile clients consume a versioned REST API. Professor Finn, recommendations, conditions, and notifications have explicit service boundaries but remain deployable together until scale or team ownership justifies extraction.
|
||||
|
||||
## Core flow
|
||||
|
||||
User + trip + target species + water body → normalized conditions → recommendation evidence → ranked plan → Professor Finn explanation.
|
||||
|
||||
## Principles
|
||||
|
||||
- Keep precise catch locations private by default.
|
||||
- Store source, timestamp, and freshness for condition data.
|
||||
- Make recommendations explainable and measure outcomes.
|
||||
- Keep provider integrations behind adapters.
|
||||
- Never send secrets or unnecessary personal data to AI providers.
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# Initial data model
|
||||
|
||||
- User owns trips, tackle items, catches, and private waypoints.
|
||||
- WaterBody has geography, access metadata, and known Species.
|
||||
- Trip targets one water body, a time window, and one or more species.
|
||||
- ConditionSnapshot records normalized observations and forecast provenance.
|
||||
- Recommendation belongs to a trip and stores evidence, setup, confidence, and engine version.
|
||||
- Conversation is scoped to a user and optionally an active trip.
|
||||
- Catch records outcome, conditions, presentation, and independently controlled location visibility.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Architecture decisions
|
||||
|
||||
## ADR-001: Modular monolith first
|
||||
|
||||
Accepted. Deploy Django modules together while maintaining service boundaries. This reduces early operational cost and preserves a clean path to extraction.
|
||||
|
||||
## ADR-002: Explainable recommendations
|
||||
|
||||
Accepted. Store inputs, rule/model version, evidence, and confidence with every recommendation.
|
||||
|
||||
## ADR-003: Privacy-first location data
|
||||
|
||||
Accepted. Exact catch coordinates and waypoints are private unless a user deliberately changes visibility.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Development setup
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Git
|
||||
- Docker with Compose and permission to access its service
|
||||
- Flutter SDK for native mobile development (not needed for the Docker web/API stack)
|
||||
|
||||
Copy `.env.example` to `.env`, then run `docker compose up --build`.
|
||||
|
||||
## Current devbox notes
|
||||
|
||||
At project creation, Git, Docker/Compose, Python, Node, npm, and pnpm were installed. Flutter/Dart were absent, and the current user could not access the Docker socket. Resolve Docker access according to the host's administration policy; do not weaken socket permissions. Install Flutter before generating platform-specific iOS/Android runner files.
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# Roadmap
|
||||
|
||||
## Milestone 1 — Eufaula vertical slice
|
||||
|
||||
- Accounts and profiles
|
||||
- Water bodies and species catalog
|
||||
- Trip creation
|
||||
- Condition snapshot contract
|
||||
- Rules-based bass recommendation
|
||||
- Professor Finn grounded trip Q&A
|
||||
- Responsive web experience
|
||||
|
||||
## Milestone 2 — Personalization
|
||||
|
||||
- Digital tackle box and complete setups
|
||||
- Catch log with photos and privacy controls
|
||||
- Recommendations constrained to owned tackle
|
||||
- Feedback loop for recommendation outcomes
|
||||
- Flutter trip companion
|
||||
|
||||
## Milestone 3 — Field intelligence
|
||||
|
||||
- Maps, private waypoints, contours, and structure
|
||||
- Live condition-change alerts
|
||||
- Regulations with provenance and effective dates
|
||||
- Community reports with anti-abuse controls
|
||||
- Fish photo identification
|
||||
|
||||
## Milestone 4 — Scale and learning
|
||||
|
||||
- Community pattern aggregation with privacy thresholds
|
||||
- Personalized ranking models
|
||||
- Voice conversations
|
||||
- Broader species and water coverage
|
||||
|
||||
Reference in New Issue
Block a user