
tide-mcp
Tide Forecast App with FastAPI backend and Flutter frontend
3 years
Works with Finder
0
Github Watches
0
Github Forks
0
Github Stars
Tide MCP
A cross-platform app for tides, moon phases, and fishing/hunting predictions. Now supports learning any town/location selected by users.
Version: 1.2.9
Built with:
- Backend: FastAPI (Python) + SQLite (locations.db)
- Frontend: Flutter (Dart)
Getting Started
Backend Setup (FastAPI)
-
Navigate to the backend directory:
cd backend
-
Create and activate a virtual environment:
python3 -m venv .venv source .venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
- Copy
.env.sample
to.env
and add any required API keys or settings.
- Copy
-
Start the backend server:
uvicorn main:app --reload
Frontend Setup (Flutter)
-
Navigate to the frontend directory:
cd frontend
-
Install Flutter dependencies:
flutter pub get
-
Run the app:
flutter run
Testing
- The app now supports robust widget testing using a test-only parameter (
initialLoading
) inTideHomePage
for modern, testable UI state injection. - To run tests:
flutter test
Changelog Automation
- The changelog (CHANGES.md) is automatically generated from commit history using
git-cliff
. - To update the changelog, run:
(Requires./scripts/update_changelog.sh
git-cliff
to be installed. See git-cliff releases.)
Versioning Automation
- The project version is stored in the
VERSION
file and in the README. - To bump the version:
- For a major release:
./scripts/bump_version.sh major
- For a new feature:
./scripts/bump_version.sh minor
- For a fix:
./scripts/bump_version.sh patch
- For a major release:
- This will update both the
VERSION
file and the version in the README.
Features
- Location learning: Select any town/location and it will be stored for future lookups.
- Tide, moon, and prediction data are shown only after a location is selected.
- SQLite database for local location storage.
- Modern testability patterns for Flutter frontend.
Changelog
- 1.2.9: Fix: Added assets/VERSION to pubspec.yaml and moved VERSION file to assets directory so app version is loaded and displayed dynamically in the app bar and MaterialApp title.
- 1.2.8: Bugfix: The "week at a glance" feature now appears immediately after a location is selected, without needing to refresh. This was fixed by ensuring fetchAll() is called after location selection, not just for today data.
- 1.2.7: Refactor: Removed all references to towns.json and stations.json. The backend now uses a default station for manual/geocoded locations.
- 1.2.6: Fixed: Tide data is now displayed after entering a manual location and pressing enter. The UI now shows tide data for both database and manual/geocoded locations.
- 1.2.4: Fixed: Manual location entry now works when hitting return/enter in the location field. Users can now enter any location and immediately fetch tide data by pressing enter.
-
1.2.2: Locations not in the database are now selectable and return estimated tides using the nearest NOAA station. Backend API returns an
estimated
flag and source station info for non-database locations. -
1.2.1: Added testable constructor to
TideHomePage
for robust widget testing. All tests now pass reliably. Updated docs for modern testability. - 1.2.0: Switched to SQLite for locations, improved UI/UX, added location learning.
相关推荐
🔥 1Panel provides an intuitive web interface and MCP Server to manage websites, files, containers, databases, and LLMs on a Linux server.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero
Easily create LLM tools and agents using plain Bash/JavaScript/Python functions.
Artifact2MCP Generator allows generation of MCP server automatically & dynamically given smart contract's compiled artifact (chain‑agnostic)