Git Product home page Git Product logo

citybook's Introduction

CityBook

Join the chat at https://gitter.im/codeforamerica/citybook Build Status Stories in Ready

Make a searchable address book from a contact spreadsheet. http://codeforamerica.github.io/citybook

CityBook aims to make it easier for administrative staff who maintain contact lists to create a searchable, mobile-responsive web app that uses their spreadsheet as a data source.

Based on the CfA 2015 Richmond Fellowship team's Search-RVAHealth project.

Data Types

CityBook emphasizes simplicity and flexibility over adherence to a data standard. You can add any columns with any title to your CityBook spreadsheet and they will displayed. However, some column names are required or receive special treatment:

Organization Name (Required)

Displayed as an <h1> element. It corresponds to the main title of your entry.

Telephone

Displayed as a button that users can click or tap to launch a call. Cells should contain a single telephone number. Most mobile telephone applications are flexible in how they parse a phone number, so these may use any common telephone format (e.g. 123-456-7890, (123)456-7890, 1234567890, etc.).

Address

Displayed as a button that launches Google Maps directions to the location in the cell. It's a good idea to test the addresses you enter by searching for them in Google Maps. If your address is incomplete or does not return a result, the user may have difficulty finding the right location.

Other Data Types

All other data types are displayed in the "Show Details" section. The column header will appear as bold text with a colon (i.e. a Key-Value format).

Setup

git clone https://github.com/codeforamerica/citybook.git
cd citybook
npm install

Create a PostgreSQL databse named citybook, or edit the development block of config/config.js to the name of your database. Consider using http://postgresapp.com/.

psql
CREATE DATABASE citybook;
\q

node_modules/.bin/sequelize db:migrate

Development

Running in development mode enables WebpackDevServer hot-module-reloading on port 3000. Use port 8080 for testing back-end functionality.

npm run dev

Bundling for Production

Bundles everything into bundle.js.

npm install -g webpack
webpack
npm start
git remote add production https://git.heroku.com/citybook.git

(Open an issue to be added as a collaborator on heroku)

Database Migration

Make your changes, then run:

node_modules/.bin/sequelize db:migrate

What is this built with?

This project uses Tabletop.js for the spreadsheet access, Handlebars for some templating, List.js for the searchable list, and Bootstrap for the styles.

The instruction page template was generated by using the Cayman theme by Jason Long.

citybook's People

Contributors

cweems avatar mapsam avatar esmithayer avatar keithk avatar waffle-iron avatar gitter-badger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.