Citygram 开源项目教程
citygram Subscribe to your city. 项目地址: https://gitcode.com/gh_mirrors/ci/citygram
1. 项目介绍
Citygram 是一个地理通知平台,旨在与开放政府数据协同工作。它允许居民指定他们感兴趣的城市区域,并订阅一个或多个主题。当订阅者感兴趣的区域内发生某个主题的事件时,Citygram 会通过电子邮件、短信或 Webhook 发送通知。Citygram 是由 Code for America 的 Charlotte 和 Lexington 团队在 2014 年开发的。
项目目标
- 帮助居民更好地理解他们所在区域发生的事情。
- 提供及时的信息,使城市能够主动而非被动地应对问题。
- 通过透明度建立信任,并提高公民参与度。
技术概述
- Web 框架: Sinatra, Grape, Sprockets
- Web 服务器: Unicorn
- 数据库/模型: PostgreSQL, PostGIS, Sequel
- 任务队列: Redis, Sidekiq
- 测试: RSpec, FactoryGirl, Rack::Test
2. 项目快速启动
安装和配置
选项 1: 使用 Vagrant 进行 OSX 设置
-
安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
安装 VirtualBox:
brew cask install virtualbox
-
启动 Vagrant 并安装依赖:
vagrant up
-
登录到 Vagrant 并启动程序:
vagrant ssh cd /vagrant bundle exec foreman start
选项 2: 手动安装
-
安装 Ruby:
# 根据你的操作系统选择合适的安装方法
-
安装 PostgreSQL 和 PostGIS:
# 根据你的操作系统选择合适的安装方法
-
安装 Redis:
brew install redis # 适用于 OS X # 或者从你的包管理器或直接下载安装
-
克隆 Citygram 代码并安装依赖:
git clone https://github.com/codeforamerica/citygram.git cd citygram bundle install
-
配置环境:
cp .env.sample .env rake db:create db:migrate DATABASE_URL=postgres://localhost/citygram_test
-
运行 Citygram:
bundle exec foreman start
-
打开浏览器访问:
http://localhost:5000/
3. 应用案例和最佳实践
应用案例
- 城市通知系统: Citygram 可以用于通知居民关于城市活动、公共设施维护、紧急情况等信息。
- 社区参与: 通过订阅感兴趣的主题,居民可以更好地参与社区活动和决策。
最佳实践
- 数据源管理: 确保数据源的可靠性和及时性,定期更新数据。
- 用户反馈: 收集用户反馈,优化通知内容和频率。
- 安全性: 确保数据传输和存储的安全性,防止数据泄露。
4. 典型生态项目
- OpenStreetMap: 用于地理数据的收集和展示。
- Socrata: 提供开放政府数据的 API。
- Twilio: 用于短信通知服务。
- SendGrid: 用于电子邮件通知服务。
通过这些生态项目的结合,Citygram 可以构建一个完整的地理通知系统,满足不同城市和社区的需求。
citygram Subscribe to your city. 项目地址: https://gitcode.com/gh_mirrors/ci/citygram