MCP cover image
See in Github
2025-04-14

Application Tide Forecast avec backend Fastapi et frontend Flutter

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.

相关推荐

  • Contraband Interactive
  • Emulating Dr. Jordan B. Peterson's style in providing life advice and insights.

  • rustassistant.com
  • Your go-to expert in the Rust ecosystem, specializing in precise code interpretation, up-to-date crate version checking, and in-depth source code analysis. I offer accurate, context-aware insights for all your Rust programming questions.

  • Ian O'Connell
  • Provide players' names or enter Quickstart to start the game!

  • Aurity Ltd
  • Create and Publish Business Websites in seconds. AI will gather all the details about your website and generate link to your website.

  • Convincible Ltd
  • You're in a stone cell – can you get out? A classic choose-your-adventure interactive fiction game, based on a meticulously-crafted playbook. With a medieval fantasy setting, infinite choices and outcomes, and dice!

  • John Rafferty
  • Text your favorite pet, after answering 10 questions about their everyday lives!

  • analogchat.com
  • Efficient Spotify assistant for personalized music data.

  • 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.

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

  • metorial
  • Versions conteneurisées de centaines de serveurs MCP 📡 🧠 🧠

  • langgenius
  • alibaba
  • Azure
  • Ce référentiel est pour le développement du serveur MCP Azure, apportant la puissance d'Azure à vos agents.

  • superiorlu
  • 🤖 Recueillir des référentiels, des outils, des sites Web, des articles et des tutoriels pratiques sur l'IA. 实用的 ai 百宝箱 💎

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

  • WangRongsheng
  • microsoft
  • Python tool for converting files and office documents to Markdown.

  • mindsdb
  • AI's query engine - Platform for building AI that can answer questions over large scale federated data. - The only MCP Server you'll ever need

  • 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.

    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!