diff --git a/README.md b/README.md index ab48eea..1311633 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Other nice to have features: ## prerequisites -Ensure you have installed [Node.js](https://nodejs.org/en/download/current/) and [Docker](https://www.docker.com/community-edition). +Ensure you have installed [Docker](https://www.docker.com/community-edition). ## database setup @@ -56,13 +56,6 @@ NOLA311_DB_PORT=5432 \ ./setup.sh ``` -## app setup - -For local development, you can use Docker to run the application -``` -docker-compose up -d app -``` - ## some sample queries on the database Login to the db with psql `psql -h localhost -U nola311` and run some queries: diff --git a/app/.dockerignore b/app/.dockerignore deleted file mode 100644 index ca0db94..0000000 --- a/app/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -npm-debug-log -.env diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 96fb60e..0000000 --- a/app/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.env -npm-debug.log -node_modules diff --git a/app/.npmrc b/app/.npmrc deleted file mode 100644 index e8f1734..0000000 --- a/app/.npmrc +++ /dev/null @@ -1 +0,0 @@ -6.1 \ No newline at end of file diff --git a/app/.nvmrc b/app/.nvmrc deleted file mode 100644 index 301160a..0000000 --- a/app/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -8 \ No newline at end of file diff --git a/app/Dockerfile b/app/Dockerfile deleted file mode 100644 index 667f3de..0000000 --- a/app/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM node:carbon-alpine -ARG BUILD_DATE -ARG VCS_REF -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.vcs-url="https://github.com/codefornola/311.git" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.schema-version="1.0.0-rc1" \ - org.codeforneworleans.app-name="311 Explorer" -WORKDIR /usr/src/app -COPY package.json . -RUN npm install -COPY . . -EXPOSE 3000 -CMD [ "npm", "start" ] \ No newline at end of file diff --git a/app/hooks/build b/app/hooks/build deleted file mode 100644 index 529ae1c..0000000 --- a/app/hooks/build +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -# $IMAGE_NAME var is injected into the build so the tag is correct. -docker build --build-arg VCS_REF=`git rev-parse HEAD` --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` -t $IMAGE_NAME . diff --git a/app/hooks/post_build b/app/hooks/post_build deleted file mode 100644 index 9c0853b..0000000 --- a/app/hooks/post_build +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [[ -z "$SOURCE_COMMIT" ]]; then - export SOURCE_COMMIT="${SOURCE_COMMIT:-$(git rev-parse --short HEAD)}" - echo "Updating SOURCE_COMMIT from git rev-parse HEAD" - echo "SOURCE_COMMIT: $SOURCE_COMMIT" -fi - -docker tag $IMAGE_NAME $DOCKER_REPO:$SOURCE_COMMIT -docker push $DOCKER_REPO:$SOURCE_COMMIT diff --git a/app/index.html b/app/index.html deleted file mode 100644 index 153e179..0000000 --- a/app/index.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - 311 calls - - - - - - -
-
-
-
- -
-
-
-

Status:

- - -
-
-

Date:

- - -
-
- -
    -
    -
    -
    - - - - diff --git a/app/package-lock.json b/app/package-lock.json deleted file mode 100644 index ed9a504..0000000 --- a/app/package-lock.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "name": "nola311-app", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", - "requires": { - "mime-types": "2.1.17", - "negotiator": "0.6.1" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" - }, - "body-parser": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz", - "integrity": "sha1-11eM9PHRHV9uqATO813Hp/9trmc=", - "requires": { - "bytes": "2.4.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.1.1", - "http-errors": "1.5.1", - "iconv-lite": "0.4.13", - "on-finished": "2.3.0", - "qs": "6.2.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - } - } - }, - "buffer-writer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", - "integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=" - }, - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" - }, - "express": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.14.1.tgz", - "integrity": "sha1-ZGwjf3ZvFIwhIK/wc4F7nk1+DTM=", - "requires": { - "accepts": "1.3.4", - "array-flatten": "1.1.1", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.2.0", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.7.0", - "finalhandler": "0.5.1", - "fresh": "0.3.0", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "1.1.5", - "qs": "6.2.0", - "range-parser": "1.2.0", - "send": "0.14.2", - "serve-static": "1.11.2", - "type-is": "1.6.15", - "utils-merge": "1.0.0", - "vary": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - } - } - }, - "finalhandler": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", - "integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=", - "requires": { - "debug": "2.2.0", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "statuses": "1.3.1", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - } - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" - }, - "generic-pool": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz", - "integrity": "sha1-eAw29p360FpaBF3Te+etyhGk9v8=" - }, - "http-errors": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", - "requires": { - "inherits": "2.0.3", - "setprototypeof": "1.0.2", - "statuses": "1.3.1" - } - }, - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ipaddr.js": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" - }, - "js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=" - }, - "manakin": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/manakin/-/manakin-0.4.8.tgz", - "integrity": "sha1-/Wd53NY5nQ0Vgz7NYspPfJoTEZA=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" - }, - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - }, - "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", - "requires": { - "mime-db": "1.30.0" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "packet-reader": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.2.0.tgz", - "integrity": "sha1-gZ300BC4LV6lZx+KGjrPA5vNdwA=" - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "pg": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-5.2.1.tgz", - "integrity": "sha1-1D0LLlOQjtYapgkoo49teRoqZrM=", - "requires": { - "buffer-writer": "1.0.1", - "js-string-escape": "1.0.1", - "packet-reader": "0.2.0", - "pg-connection-string": "0.1.3", - "pg-pool": "1.8.0", - "pg-types": "1.12.1", - "pgpass": "0.0.6", - "semver": "4.3.2" - } - }, - "pg-connection-string": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", - "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" - }, - "pg-minify": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-0.4.5.tgz", - "integrity": "sha1-0+kvtpD5KDuKN4ZuRWb86f7SYVA=" - }, - "pg-pool": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-1.8.0.tgz", - "integrity": "sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc=", - "requires": { - "generic-pool": "2.4.3", - "object-assign": "4.1.0" - } - }, - "pg-promise": { - "version": "5.9.7", - "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-5.9.7.tgz", - "integrity": "sha1-THj1gGHPBNavqGuqzwvdDPgoHI4=", - "requires": { - "manakin": "0.4.8", - "pg": "5.2.1", - "pg-minify": "0.4.5", - "spex": "1.2.1" - } - }, - "pg-types": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz", - "integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=", - "requires": { - "postgres-array": "1.0.2", - "postgres-bytea": "1.0.0", - "postgres-date": "1.0.3", - "postgres-interval": "1.1.1" - } - }, - "pgpass": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-0.0.6.tgz", - "integrity": "sha1-9idiANAXOdoe6mMTi9yjX/S9coA=", - "requires": { - "split": "1.0.1" - } - }, - "postgres-array": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.2.tgz", - "integrity": "sha1-jgsy6wO/d6XAp4UeBEHBaaJWojg=" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.3.tgz", - "integrity": "sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=" - }, - "postgres-interval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.1.1.tgz", - "integrity": "sha1-rNsPiXtLHG5JbZ1OCoU+HEKPBvA=", - "requires": { - "xtend": "4.0.1" - } - }, - "proxy-addr": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.4.0" - } - }, - "qs": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", - "integrity": "sha1-O3hIwDwt7OaalSKw+ujEEm10Xzs=" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", - "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", - "unpipe": "1.0.0" - } - }, - "semver": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", - "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" - }, - "send": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.14.2.tgz", - "integrity": "sha1-ObBDiz9RC+Xcb2Z6EfcWiTaM3u8=", - "requires": { - "debug": "2.2.0", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.7.0", - "fresh": "0.3.0", - "http-errors": "1.5.1", - "mime": "1.3.4", - "ms": "0.7.2", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - }, - "dependencies": { - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - } - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" - } - } - }, - "serve-static": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz", - "integrity": "sha1-LPmIm9RDWjIMw2iVyapXvWYuasc=", - "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.14.2" - } - }, - "setprototypeof": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" - }, - "spex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/spex/-/spex-1.2.1.tgz", - "integrity": "sha1-GMMSdUC0V6CKcdDvAYpXjKJIC4k=" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", - "requires": { - "through": "2.3.8" - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.17" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } -} diff --git a/app/package.json b/app/package.json deleted file mode 100644 index b8351ad..0000000 --- a/app/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "nola311-app", - "description": "311 open data exploration app for New Orleans, LA", - "version": "0.0.1", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/codefornola/311.git" - }, - "main": "server.js", - "scripts": { - "test": "echo \"Write some tests!\"", - "start": "node server.js" - }, - "dependencies": { - "bluebird": "^3.3.4", - "body-parser": "~1.15.2", - "debug": "~2.6.0", - "express": "~4.14.0", - "pg-promise": "^5.5.0" - } -} diff --git a/app/public/styles.css b/app/public/styles.css deleted file mode 100644 index 9b595bd..0000000 --- a/app/public/styles.css +++ /dev/null @@ -1,174 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Open+Sans'); -html, body { - margin: 0; /* Remove margins */ - height: 100%; /* Fill the window */ - font-family: 'Open Sans', sans-serif; -} -.container { - height: 100%; /* Fill the window */ - display: flex; -} -#map { - flex: 2; /* Fill the available space */ -} -#stats { - min-height: 0; /* Let the content overflow */ - flex: 2; /* Fill the available space */ -} -.filter-panel { - font: 12px/20px 'Open Sans'; - position: absolute; - width: 25%; - top: 0; - left: 0; - padding: 10px; - background-color: #fff; -} -.filter-panel div { - /*border: 1px solid grey;*/ - padding: 15px 0 5px 0; -} -.filter-panel input { - background-color: transparent; - display: inline-block; - width: 100%; - position: relative; - margin: 0; - cursor: ew-resize; -} -h2 { - display: inline; - color: #000; - font-size: 20px; - padding-top: 5px; - font-weight: normal; -} -.open-closed-filter { - padding: 10px 0 10px 0; -} -.open-closed-filter label { - /*float: right;*/ - margin-left: 10px; - /*margin-top: 13px;*/ - font-size: 15px; -} -.open-closed-filter input[type=checkbox] { - width:20px; - height:20px; -} -#month { - color: #000; - font-size: 20px; - padding-top: 5px; - margin-left: 8px; -} -.neighborhoods-filter ul { - border-left: 1px solid #eee; - border-right: 1px solid #eee; - padding: 0px; - background-color: transparent; - margin-top: 0px; -} -.neighborhoods-filter li { - list-style-type: none; - padding: 3px; - background-color: transparent; -} -.neighborhoods-filter li:last-child { - border-bottom: 1px solid #eee; -} - -.neighborhoods-filter li:hover { - background-color: #eee; -} -.neighborhoods-filter input[type=search] { - font-size: 10pt; - padding:10px; -} - -/* slider styles */ -input[type=range] { - -webkit-appearance: none; - width: 100%; - margin: 17.6px 0; -} -input[type=range]:focus { - outline: none; -} -input[type=range]::-webkit-slider-runnable-track { - width: 100%; - height: 7.8px; - cursor: pointer; - box-shadow: 0.6px 0.6px 0.9px #000000, 0px 0px 0.6px #0d0d0d; - background: #ffffff; - border-radius: 0px; - border: 0.3px solid rgba(1, 1, 1, 0); -} -input[type=range]::-webkit-slider-thumb { - box-shadow: 0.3px 0.3px 0px #000000, 0px 0px 0.3px #0d0d0d; - border: 0px solid #000000; - height: 43px; - width: 13px; - border-radius: 0px; - background: #000000; - cursor: pointer; - -webkit-appearance: none; - margin-top: -17.9px; -} -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ffffff; -} -input[type=range]::-moz-range-track { - width: 100%; - height: 7.8px; - cursor: pointer; - box-shadow: 0.6px 0.6px 0.9px #000000, 0px 0px 0.6px #0d0d0d; - background: #ffffff; - border-radius: 0px; - border: 0.3px solid rgba(1, 1, 1, 0); -} -input[type=range]::-moz-range-thumb { - box-shadow: 0.3px 0.3px 0px #000000, 0px 0px 0.3px #0d0d0d; - border: 0px solid #000000; - height: 43px; - width: 13px; - border-radius: 0px; - background: #000000; - cursor: pointer; -} -input[type=range]::-ms-track { - width: 100%; - height: 7.8px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; -} -input[type=range]::-ms-fill-lower { - background: #f2f2f2; - border: 0.3px solid rgba(1, 1, 1, 0); - border-radius: 0px; - box-shadow: 0.6px 0.6px 0.9px #000000, 0px 0px 0.6px #0d0d0d; -} -input[type=range]::-ms-fill-upper { - background: #ffffff; - border: 0.3px solid rgba(1, 1, 1, 0); - border-radius: 0px; - box-shadow: 0.6px 0.6px 0.9px #000000, 0px 0px 0.6px #0d0d0d; -} -input[type=range]::-ms-thumb { - box-shadow: 0.3px 0.3px 0px #000000, 0px 0px 0.3px #0d0d0d; - border: 0px solid #000000; - height: 43px; - width: 13px; - border-radius: 0px; - background: #000000; - cursor: pointer; - height: 7.8px; -} -input[type=range]:focus::-ms-fill-lower { - background: #ffffff; -} -input[type=range]:focus::-ms-fill-upper { - background: #ffffff; -} diff --git a/app/queries.js b/app/queries.js deleted file mode 100644 index b3886a5..0000000 --- a/app/queries.js +++ /dev/null @@ -1,50 +0,0 @@ -var promise = require('bluebird'); - -var options = { - promiseLib: promise -}; - -var pgp = require('pg-promise')(options); -var dbUrl = process.env.DATABASE_URL || 'postgres://localhost:5432/nola311'; -var db = pgp(dbUrl); - -function findAllCalls(req, res, next) { - let pageSize = req.query.pageSize ? parseInt(req.query.pageSize, 10) : 50; - - db.any('select * from nola311.calls limit $1', pageSize) - .then(function (data) { - res.status(200).json({ status: 'success', data: data }); - }) - .catch(function (err) { - return next(err); - }); -} - -function findCallsByTicketId(req, res, next) { - let ticketId = req.params.ticketId; - - db.one('select * from nola311.calls where ticket_id=$1', ticketId) - .then(function (data) { - res.status(200).json({ status: 'success', data: data }); - }) - .catch(function (err) { - return next(err); - }); -} - -function findCallTypeTotals(req, res, next) { - db.any('with totals as (select count(*) as total, issue_type from nola311.calls group by issue_type order by total desc) select issue_type, total from totals') - .then(function (data) { - console.log(data); - res.status(200).json({ status: 'success', data: data }); - }) - .catch(function (err) { - return next(err); - }); -} - -module.exports = { - findAllCalls: findAllCalls, - findCallsByTicketId: findCallsByTicketId, - findCallTypeTotals: findCallTypeTotals -}; diff --git a/app/routes.js b/app/routes.js deleted file mode 100644 index ec48968..0000000 --- a/app/routes.js +++ /dev/null @@ -1,14 +0,0 @@ -var express = require('express'); -var router = express.Router(); -var db = require('./queries'); - -router.get('/', function(req, res, next) { - return res.status(200).json({ message: 'This is the nola311 rest api'}) -}); - -router.get('/calls', db.findAllCalls); -router.get('/calls/types/totals', db.findCallTypeTotals); -router.get('/calls/:ticketId', db.findCallsByTicketId); - - -module.exports = router; diff --git a/app/server.js b/app/server.js deleted file mode 100644 index 6d0628f..0000000 --- a/app/server.js +++ /dev/null @@ -1,25 +0,0 @@ -var express = require('express'); -var app = express(); -var bodyParser = require('body-parser'); -var path = require('path'); -var routes = require('./routes'); - -app.use(bodyParser.json()); -app.use(express.static('public')) - -app.use(function(req, res, next) { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); - next(); -}); - -app.use('/api', routes); - -app.get('/', function(req, res) { - res.sendFile(path.join(__dirname, '/index.html')); -}); - -var port = process.env.PORT || 3000; -app.listen(port, function() { - console.log('Server running on port ' + port); -});