How jerwil445/it114_auto_fissh_feedng_project works
AquaFeed Pro is a Flask-based fish-feeder application with account-protected monitoring, feeding controls, scheduling, history, and hardware diagnostics. The main workflow is a user configuring or initiating a feeding in the web interface; Flask routes delegate to the shared feeder service, which coordinates serial commands and persists settings or events. The service also runs scheduled feedings and monitoring independently of page requests. The README documents additional device alarm and LCD schedule behavior; unsampled implementation details are represented only where the repository tree supports them.
Main entry points: aquafeed.py Feeder service · app.py Flask entry and serial · landing.py Landing and auth · database.py Feeder persistence
Components 23
Web experience
- Landing and auth
pages/landing.py - Landing client
static/js/landing.js - Dashboard routes
pages/dashboard.py - Dashboard client
static/js/dashboard.js - Control routes
pages/control.py - Control client
static/js/control.js - History routes
pages/history.py - History client
static/js/history.js - Hardware routes
pages/hardware.py - Hardware client
static/js/hardware.js
Feeder operations
- Flask entry and serial
app.py - Feeder service
aquafeed.py - Automation scheduler
aquafeed.py - Hardware diagnostics
aquafeed.py - Monitoring and alarms
aquafeed.py
Hardware interface
- Serial protocol
serial_protocol.py - Feeder controller
- Arduino sketch
arduino_code.c++
Persistence and accounts
- Feeder persistence
database.py - PostgreSQL
- Account records
database.py
Other components
- Feeder user
- Web browser
Connections 36
- Feeder user → Web browser: uses
- Web browser → Landing client: opens
- Landing client → Landing and auth: auth requests
- Landing and auth → Account records: reads and writes
- Landing and auth → Web browser: serves landing
- Web browser → Dashboard client: views
- Dashboard client → Dashboard routes: monitor requests
- Dashboard routes → Feeder service: reads monitor
- Dashboard routes → Web browser: serves dashboard
- Web browser → Control client: configures feeding
- Control client → Control routes: settings and feed
- Control routes → Feeder service: delegates operations
- Control routes → Web browser: serves control
- Web browser → History client: views history
- History client → History routes: queries events
- History routes → Feeder service: reads history
- History routes → Web browser: serves history
- Web browser → Hardware client: starts diagnostics
- Hardware client → Hardware routes: test requests
- Hardware routes → Hardware diagnostics: starts and cancels
- Hardware routes → Web browser: serves tests
- Flask entry and serial → Feeder service: initializes service
- Flask entry and serial → Landing and auth: sets up auth
- Automation scheduler → Feeder service: uses feed operations
- Automation scheduler → Feeder persistence: records executions
- Feeder service → Feeder persistence: reads and writes
- Feeder persistence → PostgreSQL: persists data
- Landing and auth → Feeder persistence: loads account data
- Monitoring and alarms → Flask entry and serial: queries connection
- Feeder service → Flask entry and serial: sends commands
- Flask entry and serial → Serial protocol: parses replies
- Flask entry and serial → Feeder controller: serial commands
- Feeder controller → Flask entry and serial: serial replies
- Hardware diagnostics → Feeder service: coordinates device use
- Monitoring and alarms → Feeder service: checks feeder state
- Arduino sketch → Feeder controller: runs on