Skip to content

BillWGong/What-is-Weather

 
 

Repository files navigation

What's Weather - 全球情绪实时可视化地图

一个基于Flask和高德地图API的实时情绪分享与可视化平台,让用户可以在地图上分享和查看全球各地的情绪状态。

License: MIT Status: Active Development Stack: HTML5-CSS3-JS Backend: Flask Database: SQLite

中文 | English

"你的情绪,是世界天气的一部分。"

What's Weather 是一个将全球用户情绪实时可视化为天气地图的创新型社交实验项目。在这里,抽象的个人情感被转化为直观的"天气"符号,让你能感受到跨越地理界限的匿名情感共鸣。本项目计划诞生于 trae.ai 黑客松深圳站,并计划持续维护和迭代。

🌟 核心创意与理念

在快节奏的现代生活中,人们常常感到孤独和焦虑,不确定自己的情绪是否是孤立的。"What's Weather"旨在创造一个安全、匿名的空间,让情绪成为一种可共享、可观察的公共体验。

  • 🌤️ 情绪可视化 (Visualized Empathy):将不可见的群体情绪变为可见的、动态的天气地图。
  • 🕶️ 匿名安全 (Anonymous Safety):不收集任何个人身份信息,只分享情绪本身。
  • 🌍 全球视角 (Global Perspective):观察不同地区的情绪"气候"变化。
  • ⚡ 轻量快速 (Lightweight & Fast):基于简洁的技术栈,确保项目快速原型开发和稳定运行。

✨ 功能特性

黑客松中实现功能 (Implemented) - V1 (Hackathon MVP)

  • 情绪选择器:提供多种基础情绪选项(如"开心 ☀️"、"焦虑 ⚡"、"平静 🌈"、"悲伤 🌧️"、"愤怒 🔥")。
  • 智能位置获取:支持基于浏览器的高精度地理定位(用户授权后)。
  • 动态情绪天气地图:使用 Leaflet 地图库,将用户情绪实时映射为天气图标。
  • 情感故事浮窗:点击地图上的情绪标记,可查看该用户留下的匿名短文字。
  • 完全匿名化:不收集、不存储任何可识别个人身份的信息。
  • RESTful API:提供清晰的数据接口供前端调用。

计划中功能 (Planned) - V2 & Beyond

  • 前端重构:使用 H5 框架重构前端,提供更现代、响应式的用户界面和更佳的开发体验。
  • 后端性能提升:使用 Python (搭配 Flask 框架) 重写核心后端服务,以应对未来可能的高并发和高性能需求。数据库采用Sqlite3。
  • 实时通信:集成 WebSocket 服务,实现情绪的真正实时推送,地图无需刷新即可更新。
  • 情绪历史回放:查看某个区域在过去一段时间内的情绪变化。
  • 数据持久化升级: SQLite。

🛠️ 技术架构 (当前 / Current)

技术栈 (Tech Stack - V1)

组件 Layer 技术 Technology Stack
前端 Frontend HTML5, CSS3
地图引擎 Map Amap高德地图 + OpenStreetMap
后端 Backend Python + Flask 微框架
数据存储 Database SQLite (轻量,内嵌,无需单独服务器)
API 通信 RESTful API

🚀 快速开始 (本地开发)

前提条件 (Prerequisites)

  • Python 3.8+
  • 现代浏览器 (支持 Geolocation API)

1. 克隆仓库

git clone https://github.com/AstraCoreLz/What-is-Weather.git
cd what-is-weather

2. 创建虚拟环境并安装依赖 (推荐)

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

📁 项目结构 (V1 - Hackathon)

What-is-weather/
├── static/                   # 静态资源文件
│   ├── css/
│   │   └── style.css        # 样式表
│   ├── js/                  # 前端JavaScript逻辑
│   │   ├── app.js           # 主应用逻辑
│   │   ├── map.js           # Leaflet地图操作
│   │   └── api.js           # API通信封装
│   └── assets/              # 图像、图标
│       └── weather-icons/   # 天气图标
├── templates/               # Jinja2模板
│   └── index.html          # 主页面
├── database/               # 数据库相关
│   ├── init_db.py         # 数据库初始化脚本
│   └── whats_weather.db   # SQLite数据库文件
├── app.py                 # Flask应用主入口
├── config.py              # 应用配置
├── requirements.txt       # Python依赖列表
├── .gitignore
└── README.md

👩‍💻 如何贡献

我们热烈欢迎任何形式的贡献!

  • Fork 本仓库

  • 创建特性分支 (git checkout -b feature/AmazingFeature)

  • 提交更改 (git commit -m 'Add some AmazingFeature')

  • 推送到分支 (git push origin feature/AmazingFeature)

  • 开启一个 Pull Request

开发指引:

  • V1 (当前): 请基于现有 static/ 和 app.py 结构进行开发。

  • V2 (未来): 我们欢迎关于 H5 前端 或 Python 后端 模块的设计与原型贡献。

📄 开源许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • 感谢 trae.ai 组织本次黑客松。

  • 感谢 Flask 和 Leaflet 社区提供优秀且易用的工具。

  • 感谢所有为本项目提供灵感和反馈的朋友。

🔮 路线图

  • V1 (Hackathon MVP): HTML/CSS/JS + Flask + SQLite - 当前阶段

  • V1.5 (维护更新): 优化UI/UX,修复BUG,补充测试。

  • V2 (前端现代化): 引入 H5 框架,提供更现代、响应式的用户界面和更佳的开发体验。

  • V2.5 (前端优化): 优化前端性能,减少加载时间,提升用户体验。

  • V3 (后端优化): 优化后端性能,提高响应速度,支持更多用户并发访问。

  • Future: 实时功能、数据分析、移动应用等。


让我们一起,感受世界的情绪天气。 🌈

WHAT IS WEATHER?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 38.7%
  • HTML 23.7%
  • CSS 21.1%
  • Python 16.5%