How xiaoyuan-114/water-quality-system works
Water Quality AI Detection System combines a Jakarta EE web application, a Python prediction API, a chat agent, and MySQL. The principal workflow is that a user submits water-quality measurements through the web app; the prediction servlet calls the AI API, which preprocesses measurements and returns a model result for presentation and recording. Other documented capabilities include accounts, dashboards, history, alerts, standards, and administrator backup/restore. The chat service offers a separate natural-language route to records, predictions, standards, trends, and reports. Some subsystem links are based on README descriptions because their source was not sampled.
Main entry points: waterqualitysystem Jakarta EE app · chat_tools.py Chat tools · chat_agent.py LLM agent · ai_api.py Prediction API
Components 17
Web application
- Jakarta EE app
WaterQualitySystem/src/main/java/com/example/waterqualitysystem - Accounts and access
WaterQualitySystem/src/main/java/com/example/waterqualitysystem/LoginServlet.java - Prediction handler
WaterQualitySystem/src/main/java/com/example/waterqualitysystem/PredictServlet.java - Dashboard views
WaterQualitySystem/src/main/webapp/dashboard.jsp - History and alerts
WaterQualitySystem/src/main/java/com/example/waterqualitysystem/HistoryServlet.java - Standards and model info
WaterQualitySystem/src/main/webapp/water_standards.jsp - Admin backup
WaterQualitySystem/src/main/java/com/example/waterqualitysystem/BackupServlet.java
AI prediction
- Prediction API
WaterQualityAI/ai_api.py - Input preprocessing
WaterQualityAI/data_preprocess.py - Model training
WaterQualityAI/model_train.py
Chat assistant
- Chat API
WaterQualityAI/chat_main.py - LLM agent
WaterQualityAI/chat_agent.py - Chat tools
WaterQualityAI/chat_tools.py - Chat configuration
WaterQualityAI/chat_config.py
System data
- MySQL database
mysql/water_quality_db.sql
Other components
- Browser user
- LLM provider
Connections 21
- Browser user → Jakarta EE app: uses
README.md - Jakarta EE app → Accounts and access: routes account actions
- Jakarta EE app → Prediction handler: routes predictions
- Prediction handler → Prediction API: requests prediction
README.md - Prediction API → Input preprocessing: transforms inputs
WaterQualityAI/ai_api.py - Model training → Input preprocessing: fits preprocessing
WaterQualityAI/model_train.py - Prediction API → MySQL database: provides system analysis
- Jakarta EE app → MySQL database: stores system data
README.md - Jakarta EE app → Dashboard views: renders dashboard
README.md - Jakarta EE app → History and alerts: serves history and alerts
README.md - Jakarta EE app → Standards and model info: serves reference pages
README.md - Admin backup → MySQL database: backs up and restores
README.md - Browser user → Chat API: asks questions
WaterQualityAI/chat_main.py - Chat API → LLM agent: streams responses
WaterQualityAI/chat_main.py - LLM agent → Chat tools: dispatches tools
WaterQualityAI/chat_agent.py - Chat API → Chat tools: persists sessions
WaterQualityAI/chat_main.py - Chat tools → Prediction API: requests predictions
WaterQualityAI/chat_tools.py - Chat tools → MySQL database: queries records
WaterQualityAI/chat_tools.py - LLM agent → Chat configuration: loads LLM settings
WaterQualityAI/chat_agent.py - Chat tools → Chat configuration: loads database settings
WaterQualityAI/chat_config.py - LLM agent → LLM provider: calls model