Cover image
Try Now
2025-04-14

带有FastApi后端和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)

  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
  • 毫不费力地使用一个命令运行LLM后端,API,前端和服务。

  • 1Panel-dev
  • 🔥1Panel提供了直观的Web接口和MCP服务器,用于在Linux服务器上管理网站,文件,容器,数据库和LLMS。

  • WangRongsheng
  • 🧑‍🚀 llm 资料总结(数据处理、模型训练、模型部署、 o1 模型、mcp 、小语言模型、视觉语言模型)|摘要世界上最好的LLM资源。

  • rulego
  • ⛓️Rulego是一种轻巧,高性能,嵌入式,下一代组件编排规则引擎框架。

  • Byaidu
  • PDF科学纸翻译带有保留格式的pdf -基于ai完整保留排版的pdf文档全文双语翻译

  • n8n-io
  • 具有本机AI功能的公平代码工作流程自动化平台。将视觉构建与自定义代码,自宿主或云相结合,400+集成。

  • Onelevenvy
  • Flock是一个基于工作流程的低音平台,可快速构建聊天机器人,抹布和协调多代理团队,由Langgraph,Langchain,Langchain,Fastapi和Nextjs提供支持。(羊群工作流工作流的低代码平台,rag rag rag 用于快速构建聊天机器人、 rag temant Agent fastem temantfaster和muti-agent agagent应用

  • sigoden
  • 使用普通的bash/javascript/python函数轻松创建LLM工具和代理。

  • hkr04
  • 轻巧的C ++ MCP(模型上下文协议)SDK

  • RockChinQ
  • 😎简单易用、🧩丰富生态 -大模型原生即时通信机器人平台| 适配QQ / 微信(企业微信、个人微信) /飞书 /钉钉 / discord / telegram / slack等平台| 支持chatgpt,deepseek,dify,claude,基于LLM的即时消息机器人平台,支持Discord,Telegram,微信,Lark,Dingtalk,QQ,Slack

  • dmayboroda
  • 带有可配置容器的本地对话抹布

    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!