From 7c604ddd448ad593d93f408f8a324beba049530b Mon Sep 17 00:00:00 2001 From: BryanReese Date: Fri, 1 Sep 2017 15:05:33 -0700 Subject: [PATCH 1/6] api project --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index cf709889..3c3629e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -**/node_modules +node_modules From b2ee7ee77f3dc063326f153927597544770f6259 Mon Sep 17 00:00:00 2001 From: BryanReese Date: Mon, 4 Sep 2017 11:23:57 -0700 Subject: [PATCH 2/6] changes --- controllers/apiControllers.js | 16 + controllers/bjjControllers.js | 52 ++++ controllers/index.js | 4 + models/bjj.js | 13 + models/campsite.js.example | 10 - models/index.js | 3 + package-lock.json | 558 ++++++++++++++++++++++++++++++++++ package.json | 5 +- public/scripts/app.js | 97 +++++- public/styles/styles.css | 22 +- seed.js | 55 +++- server.js | 27 +- views/index.html | 244 +++++++++++++-- 13 files changed, 1031 insertions(+), 75 deletions(-) create mode 100644 controllers/apiControllers.js create mode 100644 controllers/bjjControllers.js create mode 100644 controllers/index.js create mode 100644 models/bjj.js delete mode 100644 models/campsite.js.example create mode 100644 package-lock.json diff --git a/controllers/apiControllers.js b/controllers/apiControllers.js new file mode 100644 index 00000000..1f59ae4e --- /dev/null +++ b/controllers/apiControllers.js @@ -0,0 +1,16 @@ +function index(req, res) { + res.json({ + message: "Welcome to BJJ reviews!", + documentation_url: "https://github.com/sf-wdi-labs/tunely", + base_url: "localhost:3000", + endpoints: [ + { + method: "GET", path: "/api", description: "Describes available endpoints" + } + ] + }); +} + +module.exports = { + index:index +} \ No newline at end of file diff --git a/controllers/bjjControllers.js b/controllers/bjjControllers.js new file mode 100644 index 00000000..17789028 --- /dev/null +++ b/controllers/bjjControllers.js @@ -0,0 +1,52 @@ + +var db = require('../models'); + +function index(req, res) { + // send back all albums as JSON + db.Bjj.find({}, function(err, allAlbums) { + res.json(allAlbums); + }); +} + + +// POST /api/albums +function create(req, res) { + // create an album based on request body and send it back as JSON + console.log('body', req.body); + + // split at comma and remove and trailing space + // var genres = req.body.genres.split(',').map(function(item) { return item.trim(); } ); + // req.body.genres = genres; + + db.Bjj.create(req.body, function(err, reviews) { + console.log(reviews); + if (err) { console.log('error', err); } + console.log(reviews); + res.json(reviews); + }); +} + + +// GET /api/albums/:albumId +function show(req, res) { + // find one album by id and send it back as JSON + console.log(req.params.bjjId); + db.Bjj.findById(req.params.bjjId, function(err, foundAlbum) { + + if(err) { console.log('albumsController.show error', err); } + console.log('albumsController.show responding with', foundAlbum); + res.json(foundAlbum); + }); +} + + + + + + +module.exports = { + index: index, + create: create, + show: show + +} \ No newline at end of file diff --git a/controllers/index.js b/controllers/index.js new file mode 100644 index 00000000..4ea4e260 --- /dev/null +++ b/controllers/index.js @@ -0,0 +1,4 @@ +module.exports = { + api: require('./apiControllers'), + bjj: require('./bjjControllers') +}; \ No newline at end of file diff --git a/models/bjj.js b/models/bjj.js new file mode 100644 index 00000000..194247ef --- /dev/null +++ b/models/bjj.js @@ -0,0 +1,13 @@ +var mongoose = require('mongoose'), + Schema = mongoose.Schema; + +var bjjSchema = new Schema({ + gymName: String, + gymLocation: String, + image: String, + reviews: String +}); + +var Bjj = mongoose.model('Bjj', bjjSchema); + +module.exports = Bjj; diff --git a/models/campsite.js.example b/models/campsite.js.example deleted file mode 100644 index cb9e8ee6..00000000 --- a/models/campsite.js.example +++ /dev/null @@ -1,10 +0,0 @@ -// var mongoose = require('mongoose'), -// Schema = mongoose.Schema; - -// var CampsiteSchema = new Schema({ -// description: String -// }); - -// var Campsite = mongoose.model('Campsite', CampsiteSchema); - -// module.exports = Campsite; diff --git a/models/index.js b/models/index.js index 66997fe0..2ad282aa 100644 --- a/models/index.js +++ b/models/index.js @@ -3,3 +3,6 @@ mongoose.connect( process.env.MONGODB_URI || "mongodb://localhost/personal-api", mongoose.Promise = global.Promise; // use native Promise // module.exports.Campsite = require("./campsite.js.example"); +var Bjj = require('./bjj'); + +module.exports.Bjj = Bjj; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..99a7ac1c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,558 @@ +{ + "name": "express-personal-api", + "version": "1.0.0", + "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.16", + "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=" + }, + "async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "requires": { + "lodash": "4.17.4" + } + }, + "bluebird": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", + "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs=" + }, + "body-parser": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", + "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "requires": { + "bytes": "2.4.0", + "content-type": "1.0.2", + "debug": "2.6.7", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.15", + "on-finished": "2.3.0", + "qs": "6.4.0", + "raw-body": "2.2.0", + "type-is": "1.6.15" + }, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + } + } + }, + "bson": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", + "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + }, + "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.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" + }, + "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=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "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=" + }, + "es6-promise": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", + "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" + }, + "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.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" + }, + "express": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", + "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.8", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.4", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.5", + "qs": "6.5.0", + "range-parser": "1.2.0", + "send": "0.15.4", + "serve-static": "1.12.4", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" + } + }, + "finalhandler": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", + "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", + "requires": { + "debug": "2.6.8", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "forwarded": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" + }, + "hooks-fixed": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.0.tgz", + "integrity": "sha1-oB2JTVKsf2WZu7H2PfycQR33DLo=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } + }, + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + }, + "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=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "kareem": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.5.0.tgz", + "integrity": "sha1-4+QQHZ3P3imXadr0tNtk2JXRdEg=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "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=" + }, + "method-override": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.9.tgz", + "integrity": "sha1-vRUfLONM8Bp2ykAKuVwBKxAtj3E=", + "requires": { + "debug": "2.6.8", + "methods": "1.1.2", + "parseurl": "1.3.1", + "vary": "1.1.1" + } + }, + "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.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "requires": { + "mime-db": "1.29.0" + } + }, + "mongodb": { + "version": "2.2.31", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.31.tgz", + "integrity": "sha1-GUBEXGYeGSF7s7+CRdmFSq71SNs=", + "requires": { + "es6-promise": "3.2.1", + "mongodb-core": "2.1.15", + "readable-stream": "2.2.7" + } + }, + "mongodb-core": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.15.tgz", + "integrity": "sha1-hB9TuH//9MdFgYnDXIroJ+EWl2Q=", + "requires": { + "bson": "1.0.4", + "require_optional": "1.0.1" + } + }, + "mongoose": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.11.9.tgz", + "integrity": "sha512-4WTZOex1yGVv5lwjEtIQ4DEP9UaYL8wLhhrxrSBC8meU8l/D+r/cBeNfHMmIptWNonIp9gpgvKu3Vk3IkuXDTw==", + "requires": { + "async": "2.1.4", + "bson": "1.0.4", + "hooks-fixed": "2.0.0", + "kareem": "1.5.0", + "mongodb": "2.2.31", + "mpath": "0.3.0", + "mpromise": "0.5.5", + "mquery": "2.3.1", + "ms": "2.0.0", + "muri": "1.2.2", + "regexp-clone": "0.0.1", + "sliced": "1.0.1" + } + }, + "mpath": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.3.0.tgz", + "integrity": "sha1-elj3iem1/TyUUgY0FXlg8mvV70Q=" + }, + "mpromise": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.5.5.tgz", + "integrity": "sha1-9bJCWddjrMIlewoMjG2Gb9UXMuY=" + }, + "mquery": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.1.tgz", + "integrity": "sha1-mrNnSXFIAP8LtTpoHOS8TV8HyHs=", + "requires": { + "bluebird": "2.10.2", + "debug": "2.6.8", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + }, + "dependencies": { + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "muri": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/muri/-/muri-1.2.2.tgz", + "integrity": "sha1-YxmBMmUNsIoEzHnM0A3Tia/SYxw=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "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" + } + }, + "parseurl": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" + }, + "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=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "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.0", + "ipaddr.js": "1.4.0" + } + }, + "qs": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", + "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", + "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.15", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "regexp-clone": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.4.1" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "send": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", + "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "requires": { + "debug": "2.6.8", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.2", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + } + }, + "serve-static": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", + "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.4" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "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.16" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", + "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" + } + } +} diff --git a/package.json b/package.json index 22718d9e..5a968371 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,9 @@ }, "homepage": "https://github.com/SF-WDI-LABS/express-personal-api", "dependencies": { - "body-parser": "^1.15.0", - "express": "^4.13.4", + "body-parser": "^1.17.2", + "express": "^4.15.4", + "method-override": "^2.3.9", "mongoose": "^4.4.10" } } diff --git a/public/scripts/app.js b/public/scripts/app.js index 00988cd4..82ae5346 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -1,7 +1,98 @@ -console.log("Sanity Check: JS is working!"); +$(document).ready(function() { +$.ajax({ + method:"GET", + url: '/api/bjj', + success: renderMultipleReviews +}); + + + + function formData(e){ + e.preventDefault(); + var formData = $(this).serialize(); + console.log('formData', formData); + $.ajax({ + method: "POST", + url: '/api/bjj', + success: renderMultipleReviews + }) + $(this).trigger("reset"); + } + + + +$('.form-horizontal').on('submit', formData); -$(document).ready(function(){ -// your code }); + + + + +function renderMultipleReviews(reviews) { + + reviews.forEach(function(review) { + console.log(review) + renderBjj(review); + }); + +} + + +function renderBjj(bjj) { + + + var bjjHtml = (` + +
+
+
+
+ Card image cap +
+

${bjj.gymName}

+

+
+
    +
  • ${bjj.reviews}
  • +
  • ${bjj.gymLocation}
  • +
+
+
+ +
+
+ + + + `); + + + $('#gymDisplay').prepend(bjjHtml); +} + + + +// function handleSaveAlbum(e) { +// e.preventDefault(); + +// var currentAlbumId = $(this).closest('.form').data('bjj-id'); +// var currentAlbumElem = $(this).closest('.form'); + +// $.ajax({ +// method: "PUT", +// url: "/api/bjj/"+currentAlbumId, +// data: { +// gymName: gymName, +// gymLocatation: gymLocation, +// image: image, +// reviews:reviews +// }, +// success: function(data) { +// renderBjj(data); +// } +// }) + + +// } diff --git a/public/styles/styles.css b/public/styles/styles.css index 57b4da0e..3b6cf08b 100644 --- a/public/styles/styles.css +++ b/public/styles/styles.css @@ -1,10 +1,20 @@ body { - color: #333; - font-family: Helvetica, Arial, sans-serif; - background-color: skyblue; /* Sanity Check! */ + background-image: url("https://i.pinimg.com/originals/ca/53/05/ca5305d77713047ae18bdcc306dfbd04.jpg"); } -h1 { - margin-top: 100px; - text-align: center; +.jumbotron { + opacity: 0.95; } + +/*.gymDisplay { + width:100%; + height:300px; + border:2px black solid; + background-color: white; + margin:20px; +} + +.gymImg { + width:150px; + border:2px black solid; +}*/ diff --git a/seed.js b/seed.js index 896dead0..8b5cf5ec 100644 --- a/seed.js +++ b/seed.js @@ -1,15 +1,48 @@ -// This file allows us to seed our application with data -// simply run: `node seed.js` from the root of this project folder. +// var db = require("./models"); + +// var reviewsList =[]; +// reviewsList.push({ +// gymName: 'Nine Inch Nails', +// image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', +// reviews: '1994, March 8', +// gymLocation:"ventura" +// }); +// reviewsList.push({ +// gymName: 'Metallica', +// image: 'Metallica', +// reviews: '1991, August 12', +// gymLocation:"ventua" +// }); +// reviewsList.push({ +// gymName: 'The Prodigy', +// image: 'Music for the Jilted Generation', +// reviews: '1994, July 4', +// gymLocation:"ventua" +// }); +// reviewsList.push({ +// gymName: 'Johnny Cash', +// image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', +// reviews: '1996, November 5', +// gymLocation:"ventua" +// }); + + + + +// db.Bjj.remove({}, function(err, review){ + +// db.Bjj.create(reviewsList, function(err, review){ +// if (err) { return console.log('ERROR', err); } +// console.log("all reviews:", review); +// console.log("created", review.length, "reviews"); +// process.exit(); +// }); + +// }); + + + -// var db = require('./models'); -// var new_campsite = {description: "Sharp rocks. Middle of nowhere."} -// db.Campsite.create(new_campsite, function(err, campsite){ -// if (err){ -// return console.log("Error:", err); -// } -// console.log("Created new campsite", campsite._id) -// process.exit(); // we're all done! Exit the program. -// }) diff --git a/server.js b/server.js index fd366289..d3496618 100644 --- a/server.js +++ b/server.js @@ -7,6 +7,8 @@ var express = require('express'), var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); +var controllers = require('./controllers'); + // allow cross origin requests (optional) // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS app.use(function(req, res, next) { @@ -37,33 +39,18 @@ app.get('/', function homepage(req, res) { res.sendFile(__dirname + '/views/index.html'); }); +app.get('/api', controllers.api.index); -/* - * JSON API Endpoints - */ +app.get('/api/bjj', controllers.bjj.index); +app.post('/api/bjj', controllers.bjj.create); +app.get('/api/bjj', controllers.bjj.show); -app.get('/api', function apiIndex(req, res) { - // TODO: Document all your api endpoints below as a simple hardcoded JSON object. - // It would be seriously overkill to save any of this to your database. - // But you should change almost every line of this response. - res.json({ - woopsIForgotToDocumentAllMyEndpoints: true, // CHANGE ME ;) - message: "Welcome to my personal api! Here's what you need to know!", - documentationUrl: "https://github.com/example-username/express-personal-api/README.md", // CHANGE ME - baseUrl: "http://YOUR-APP-NAME.herokuapp.com", // CHANGE ME - endpoints: [ - {method: "GET", path: "/api", description: "Describes all available endpoints"}, - {method: "GET", path: "/api/profile", description: "Data about me"}, // CHANGE ME - {method: "POST", path: "/api/campsites", description: "E.g. Create a new campsite"} // CHANGE ME - ] - }) -}); /********** * SERVER * **********/ // listen on the port that Heroku prescribes (process.env.PORT) OR port 3000 -app.listen(process.env.PORT || 3000, function () { +app.listen(process.env.PORT || 4000, function () { console.log('Express server is up and running on http://localhost:3000/'); }); diff --git a/views/index.html b/views/index.html index 48e39ae6..b465352c 100644 --- a/views/index.html +++ b/views/index.html @@ -1,29 +1,227 @@ - - - - - Blank - - - - - - - - - - - - -
-
-
-

Under Construction

-

Read My API Documentation

+ + + + + Blank + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Add a gym

+

It is simple, just click the button below, fill out the form and click submit.

+
+

Please keep reviews clean!

+

+ + +

+
+
+ + + + + + + + +
+
+
+
+
+ Card image cap +
+

Card title

+

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+
    +
  • Cras justo odio
  • +
  • Dapibus ac facilisis in
  • +
  • Vestibulum at eros
  • +
+
+
+
+
+ Card image cap +
+

Card title

+

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+
    +
  • Cras justo odio
  • +
  • Dapibus ac facilisis in
  • +
  • Vestibulum at eros
  • +
+
+
+
+
+ Card image cap +
+

Card title

+

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+
    +
  • Cras justo odio
  • +
  • Dapibus ac facilisis in
  • +
  • Vestibulum at eros
  • +
+
+
+
+
+ + + + + + + + From 243f3cd9f422ce723632e3e785244b4ae7b74a47 Mon Sep 17 00:00:00 2001 From: BryanReese Date: Mon, 4 Sep 2017 13:15:18 -0700 Subject: [PATCH 3/6] working api --- controllers/bjjControllers.js | 8 +--- public/scripts/app.js | 48 +++++--------------- public/styles/styles.css | 7 +-- seed.js | 82 +++++++++++++++++------------------ views/index.html | 12 ++--- 5 files changed, 64 insertions(+), 93 deletions(-) diff --git a/controllers/bjjControllers.js b/controllers/bjjControllers.js index 17789028..99c216e6 100644 --- a/controllers/bjjControllers.js +++ b/controllers/bjjControllers.js @@ -9,14 +9,10 @@ function index(req, res) { } -// POST /api/albums + function create(req, res) { - // create an album based on request body and send it back as JSON console.log('body', req.body); - // split at comma and remove and trailing space - // var genres = req.body.genres.split(',').map(function(item) { return item.trim(); } ); - // req.body.genres = genres; db.Bjj.create(req.body, function(err, reviews) { console.log(reviews); @@ -40,7 +36,7 @@ function show(req, res) { } - +db.Bjj.remove( { gymName: "bryan" } ); diff --git a/public/scripts/app.js b/public/scripts/app.js index 82ae5346..c5c5b6b7 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -1,4 +1,5 @@ $(document).ready(function() { + $.ajax({ method:"GET", url: '/api/bjj', @@ -11,18 +12,12 @@ $.ajax({ e.preventDefault(); var formData = $(this).serialize(); console.log('formData', formData); - $.ajax({ - method: "POST", - url: '/api/bjj', - success: renderMultipleReviews - }) - $(this).trigger("reset"); + $.post('/api/bjj', formData).done(renderMultipleReviews); + $(this).trigger('reset'); } - - -$('.form-horizontal').on('submit', formData); - +$('.form-horizontal').on('submit', formData) + }); @@ -31,7 +26,7 @@ $('.form-horizontal').on('submit', formData); function renderMultipleReviews(reviews) { - + reviews.forEach(function(review) { console.log(review) renderBjj(review); @@ -47,16 +42,17 @@ function renderBjj(bjj) {
-
+
Card image cap
-

${bjj.gymName}

+

Gym: ${bjj.gymName}

    -
  • ${bjj.reviews}
  • -
  • ${bjj.gymLocation}
  • +
  • Location: ${bjj.gymLocation}
  • +
  • Review: ${bjj.reviews}
  • +
@@ -74,25 +70,3 @@ function renderBjj(bjj) { -// function handleSaveAlbum(e) { -// e.preventDefault(); - -// var currentAlbumId = $(this).closest('.form').data('bjj-id'); -// var currentAlbumElem = $(this).closest('.form'); - -// $.ajax({ -// method: "PUT", -// url: "/api/bjj/"+currentAlbumId, -// data: { -// gymName: gymName, -// gymLocatation: gymLocation, -// image: image, -// reviews:reviews -// }, -// success: function(data) { -// renderBjj(data); -// } -// }) - - -// } diff --git a/public/styles/styles.css b/public/styles/styles.css index 3b6cf08b..fd9fb7dc 100644 --- a/public/styles/styles.css +++ b/public/styles/styles.css @@ -6,15 +6,16 @@ body { opacity: 0.95; } -/*.gymDisplay { +.gymDisplay { width:100%; height:300px; border:2px black solid; background-color: white; - margin:20px; + margin:0px; + text-align: center; } .gymImg { width:150px; border:2px black solid; -}*/ +} diff --git a/seed.js b/seed.js index 8b5cf5ec..c421d25b 100644 --- a/seed.js +++ b/seed.js @@ -1,44 +1,44 @@ -// var db = require("./models"); - -// var reviewsList =[]; -// reviewsList.push({ -// gymName: 'Nine Inch Nails', -// image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', -// reviews: '1994, March 8', -// gymLocation:"ventura" -// }); -// reviewsList.push({ -// gymName: 'Metallica', -// image: 'Metallica', -// reviews: '1991, August 12', -// gymLocation:"ventua" -// }); -// reviewsList.push({ -// gymName: 'The Prodigy', -// image: 'Music for the Jilted Generation', -// reviews: '1994, July 4', -// gymLocation:"ventua" -// }); -// reviewsList.push({ -// gymName: 'Johnny Cash', -// image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', -// reviews: '1996, November 5', -// gymLocation:"ventua" -// }); - - - - -// db.Bjj.remove({}, function(err, review){ - -// db.Bjj.create(reviewsList, function(err, review){ -// if (err) { return console.log('ERROR', err); } -// console.log("all reviews:", review); -// console.log("created", review.length, "reviews"); -// process.exit(); -// }); - -// }); +var db = require("./models"); + +var reviewsList =[]; +reviewsList.push({ + gymName: 'Nine Inch Nails', + image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', + reviews: '1994, March 8', + gymLocation:"ventura" + }); +reviewsList.push({ + gymName: 'Metallica', + image: 'Metallica', + reviews: '1991, August 12', + gymLocation:"ventua" + }); +reviewsList.push({ + gymName: 'The Prodigy', + image: 'Music for the Jilted Generation', + reviews: '1994, July 4', + gymLocation:"ventua" + }); +reviewsList.push({ + gymName: 'Johnny Cash', + image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', + reviews: '1996, November 5', + gymLocation:"ventua" + }); + + + + +db.Bjj.remove({}, function(err, review){ + + db.Bjj.create(reviewsList, function(err, review){ + if (err) { return console.log('ERROR', err); } + console.log("all reviews:", review); + console.log("created", review.length, "reviews"); + process.exit(); + }); + +}); diff --git a/views/index.html b/views/index.html index b465352c..2ac0a336 100644 --- a/views/index.html +++ b/views/index.html @@ -54,7 +54,7 @@
- +
@@ -63,7 +63,7 @@
- +
@@ -72,7 +72,7 @@
- +
@@ -81,7 +81,7 @@
- +
@@ -170,7 +170,7 @@

Reviews

-
+ From 274e7b45878181be92b218ae93b754d6ba5741ec Mon Sep 17 00:00:00 2001 From: BryanReese Date: Mon, 4 Sep 2017 13:45:09 -0700 Subject: [PATCH 4/6] final --- controllers/apiControllers.js | 4 ++-- public/scripts/app.js | 4 ++-- public/styles/styles.css | 17 +++++++---------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/controllers/apiControllers.js b/controllers/apiControllers.js index 1f59ae4e..e3fa5cfc 100644 --- a/controllers/apiControllers.js +++ b/controllers/apiControllers.js @@ -1,8 +1,8 @@ function index(req, res) { res.json({ message: "Welcome to BJJ reviews!", - documentation_url: "https://github.com/sf-wdi-labs/tunely", - base_url: "localhost:3000", + documentation_url: "https://github.com/breese8009/express-personal-api", + base_url: "localhost:4000", endpoints: [ { method: "GET", path: "/api", description: "Describes available endpoints" diff --git a/public/scripts/app.js b/public/scripts/app.js index c5c5b6b7..c58d9b31 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -13,7 +13,7 @@ $.ajax({ var formData = $(this).serialize(); console.log('formData', formData); $.post('/api/bjj', formData).done(renderMultipleReviews); - $(this).trigger('reset'); + window.location = window.location; } $('.form-horizontal').on('submit', formData) @@ -43,7 +43,7 @@ function renderBjj(bjj) {
-
+
Card image cap

Gym: ${bjj.gymName}

diff --git a/public/styles/styles.css b/public/styles/styles.css index fd9fb7dc..b1b3075e 100644 --- a/public/styles/styles.css +++ b/public/styles/styles.css @@ -6,16 +6,13 @@ body { opacity: 0.95; } -.gymDisplay { - width:100%; - height:300px; - border:2px black solid; - background-color: white; - margin:0px; - text-align: center; +.forms{ + margin:75px; + + } -.gymImg { - width:150px; - border:2px black solid; +.card-img-top { + width:200px; } + From 9fe519215fc2fffc69e08f40f140bfa395d5f5e9 Mon Sep 17 00:00:00 2001 From: BryanReese Date: Mon, 4 Sep 2017 14:41:40 -0700 Subject: [PATCH 5/6] second final commit --- controllers/apiControllers.js | 1 + controllers/bjjControllers.js | 10 +++--- controllers/index.js | 1 + models/bjj.js | 1 + models/index.js | 1 + public/scripts/app.js | 16 +++++---- public/styles/styles.css | 14 ++++++++ seed.js | 42 +--------------------- server.js | 3 +- views/index.html | 67 ++++++++--------------------------- 10 files changed, 50 insertions(+), 106 deletions(-) diff --git a/controllers/apiControllers.js b/controllers/apiControllers.js index e3fa5cfc..a9f65cb8 100644 --- a/controllers/apiControllers.js +++ b/controllers/apiControllers.js @@ -1,6 +1,7 @@ function index(req, res) { res.json({ message: "Welcome to BJJ reviews!", + description: "This is a app that allows people to read reviews on Brazilian Jiu Jitsu Academy", documentation_url: "https://github.com/breese8009/express-personal-api", base_url: "localhost:4000", endpoints: [ diff --git a/controllers/bjjControllers.js b/controllers/bjjControllers.js index 99c216e6..6e10cee5 100644 --- a/controllers/bjjControllers.js +++ b/controllers/bjjControllers.js @@ -2,14 +2,14 @@ var db = require('../models'); function index(req, res) { - // send back all albums as JSON + db.Bjj.find({}, function(err, allAlbums) { res.json(allAlbums); }); } - +// create function to create data in database function create(req, res) { console.log('body', req.body); @@ -23,9 +23,9 @@ function create(req, res) { } -// GET /api/albums/:albumId +// get data input by id function show(req, res) { - // find one album by id and send it back as JSON + // find one gym by id and send it back as JSON console.log(req.params.bjjId); db.Bjj.findById(req.params.bjjId, function(err, foundAlbum) { @@ -36,7 +36,7 @@ function show(req, res) { } -db.Bjj.remove( { gymName: "bryan" } ); + diff --git a/controllers/index.js b/controllers/index.js index 4ea4e260..3e35062e 100644 --- a/controllers/index.js +++ b/controllers/index.js @@ -1,3 +1,4 @@ +// requiring controllers module.exports = { api: require('./apiControllers'), bjj: require('./bjjControllers') diff --git a/models/bjj.js b/models/bjj.js index 194247ef..c61c9c73 100644 --- a/models/bjj.js +++ b/models/bjj.js @@ -1,3 +1,4 @@ +// mongodb scheme for database var mongoose = require('mongoose'), Schema = mongoose.Schema; diff --git a/models/index.js b/models/index.js index 2ad282aa..3373cb28 100644 --- a/models/index.js +++ b/models/index.js @@ -1,3 +1,4 @@ +// connect to mongodb and mongoose var mongoose = require("mongoose"); mongoose.connect( process.env.MONGODB_URI || "mongodb://localhost/personal-api", {useMongoClient: true}); mongoose.Promise = global.Promise; // use native Promise diff --git a/public/scripts/app.js b/public/scripts/app.js index c58d9b31..1a0c857d 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -1,5 +1,6 @@ $(document).ready(function() { +// ajax get request to get data from database and render to client side $.ajax({ method:"GET", url: '/api/bjj', @@ -16,6 +17,7 @@ $.ajax({ window.location = window.location; } +// form submission event handler $('.form-horizontal').on('submit', formData) @@ -24,7 +26,7 @@ $('.form-horizontal').on('submit', formData) - +// loop through data and render to html function renderMultipleReviews(reviews) { reviews.forEach(function(review) { @@ -34,7 +36,7 @@ function renderMultipleReviews(reviews) { } - +// data render to html function function renderBjj(bjj) { @@ -43,15 +45,15 @@ function renderBjj(bjj) {
-
+
Card image cap
-

Gym: ${bjj.gymName}

+

Jiu-Jitsu Academy Name:
${bjj.gymName}

    -
  • Location: ${bjj.gymLocation}
  • -
  • Review: ${bjj.reviews}
  • +
  • Location: ${bjj.gymLocation}
  • +
  • Review: ${bjj.reviews}
@@ -64,7 +66,7 @@ function renderBjj(bjj) { `); - +// append to div $('#gymDisplay').prepend(bjjHtml); } diff --git a/public/styles/styles.css b/public/styles/styles.css index b1b3075e..037e3565 100644 --- a/public/styles/styles.css +++ b/public/styles/styles.css @@ -16,3 +16,17 @@ body { width:200px; } +.card{ + opacity:0.85; + background-color:black; + color:white; +} +.list-group-flush { + color:black; + font-weight:bold; + +} + +.desc { + font-size:24px; +} \ No newline at end of file diff --git a/seed.js b/seed.js index c421d25b..12a6f48e 100644 --- a/seed.js +++ b/seed.js @@ -1,44 +1,4 @@ -var db = require("./models"); - -var reviewsList =[]; -reviewsList.push({ - gymName: 'Nine Inch Nails', - image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', - reviews: '1994, March 8', - gymLocation:"ventura" - }); -reviewsList.push({ - gymName: 'Metallica', - image: 'Metallica', - reviews: '1991, August 12', - gymLocation:"ventua" - }); -reviewsList.push({ - gymName: 'The Prodigy', - image: 'Music for the Jilted Generation', - reviews: '1994, July 4', - gymLocation:"ventua" - }); -reviewsList.push({ - gymName: 'Johnny Cash', - image: 'https://media.merchantcircle.com/29979633/fevereiro-2009%20059_full.jpeg', - reviews: '1996, November 5', - gymLocation:"ventua" - }); - - - - -db.Bjj.remove({}, function(err, review){ - - db.Bjj.create(reviewsList, function(err, review){ - if (err) { return console.log('ERROR', err); } - console.log("all reviews:", review); - console.log("created", review.length, "reviews"); - process.exit(); - }); - -}); + diff --git a/server.js b/server.js index d3496618..de80e73f 100644 --- a/server.js +++ b/server.js @@ -21,7 +21,7 @@ app.use(function(req, res, next) { * DATABASE * ************/ -// var db = require('./models'); + /********** * ROUTES * @@ -35,6 +35,7 @@ app.use(express.static('public')); * HTML Endpoints */ +// routers app.get('/', function homepage(req, res) { res.sendFile(__dirname + '/views/index.html'); }); diff --git a/views/index.html b/views/index.html index 2ac0a336..e2c05dbf 100644 --- a/views/index.html +++ b/views/index.html @@ -4,7 +4,7 @@ - Blank + Jiu Jitsu Review @@ -12,18 +12,20 @@ - + + + - + @@ -32,12 +34,12 @@ - + + - - +
-

Add a gym

+

Review a Jiu-Jitsu Academy

+

Let everyone know if it was legit or not!

It is simple, just click the button below, fill out the form and click submit.


Please keep reviews clean!

@@ -125,49 +128,9 @@

Add a gym

- - - + +