Cover image
Try Now
2025-04-14

Application Tide Forecast avec backend Fastapi et frontend Flutter

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)

  1. Navigate to the backend directory:
    cd backend
    
  2. Create and activate a virtual environment:
    python3 -m venv .venv
    source .venv/bin/activate
    
  3. Install dependencies:
    pip install -r requirements.txt
    
  4. Configure environment variables:
    • Copy .env.sample to .env and add any required API keys or settings.
  5. Start the backend server:
    uvicorn main:app --reload
    

Frontend Setup (Flutter)

  1. Navigate to the frontend directory:
    cd frontend
    
  2. Install Flutter dependencies:
    flutter pub get
    
  3. Run the app:
    flutter run
    

Testing

  • The app now supports robust widget testing using a test-only parameter (initialLoading) in TideHomePage 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:
    ./scripts/update_changelog.sh
    
    (Requires 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
  • 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.

相关推荐

  • av
  • Exécutez sans effort LLM Backends, API, Frontends et Services avec une seule commande.

  • 1Panel-dev
  • 🔥 1Panel fournit une interface Web intuitive et un serveur MCP pour gérer des sites Web, des fichiers, des conteneurs, des bases de données et des LLM sur un serveur Linux.

  • rulego
  • ⛓️RULEGO est un cadre de moteur de règle d'orchestration des composants de nouvelle génération légère, intégrée, intégrée et de nouvelle génération pour GO.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的 LLM 资料总结 (数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Résumé des meilleures ressources LLM du monde.

  • Onelevenvy
  • Flock est une plate-forme à faible code de workflow pour construire rapidement des chatbots, un chiffon et coordonner des équipes multi-agents, alimentée par Langgraph, Langchain, Fastapi et NextJs. (Flock 是一个基于 Workflow 工作流的低代码平台 , 用于快速构建聊天机器人、 Rag 、 Agent 和 和 , 采用 采用 采用 采用 Langgraph 、 Langchain 、 Fastapi 和 ,))

  • Byaidu
  • PDF Traduction de papier scientifique avec formats conservés - 基于 AI 完整保留排版的 PDF 文档全文双语翻译 , 支持 Google / Deepl / Olllama / Openai 等服务 , 提供 CLI / GUI / MCP / DOCKER / ZOTERO

  • n8n-io
  • Plateforme d'automatisation de workflow à code équitable avec des capacités d'IA natives. Combinez le bâtiment visuel avec du code personnalisé, de l'auto-hôte ou du cloud, 400+ intégrations.

  • hkr04
  • SDK C ++ MCP (Protocole de contexte modèle léger)

  • sigoden
  • Créez facilement des outils et des agents LLM à l'aide de fonctions Plain Bash / JavaScript / Python.

  • RockChinQ
  • 😎简单易用、🧩丰富生态 - 大模型原生即时通信机器人平台 | 适配 QQ / 微信 (企业微信、个人微信) / 飞书 / 钉钉 / Discord / Telegram / Slack 等平台 | 支持 Chatgpt 、 Deepseek 、 Dify 、 Claude 、 GEMINI 、 XAI 、 PPIO 、 OLLAMA 、 LM Studio 、阿里云百炼、火山方舟、 Siliconflow 、 Qwen 、 Moonshot 、 ChatGlm 、 Sillytraven 、 MCP 等 LLM 的机器人 / Agent | Plateforme de bots de messagerie instantanée basés sur LLM, prend en charge Discord, Telegram, WeChat, Lark, Dingtalk, QQ, Slack

    Reviews

    5 (1)
    Avatar
    user_QIOqpBr0
    2025-04-24

    As a dedicated user of tide-mcp, I can confidently say that this product by philiplawlor has exceeded my expectations. The user-friendly interface and comprehensive features make it a must-have for anyone in need of quality MCP applications. Highly recommended!