GithubHelp home page GithubHelp logo

whalethen's Introduction

WhaleThen

WhaleThen combines scheduling, trip planning, and group coordination on a single page. Vote, comment, have a whale of a time. Sea you soon!

Team

Table of Contents

  1. Usage
  2. Requirements
  3. Development
    1. Tasks
    2. Google Maps Api
    3. Installing Dependencies
  4. Environmental Variables
  5. Roadmap
  6. Contributing

Usage

Starting Development Environment

Using the development server will also run and serve webpack. Only one terminal instance is needed. You'll also need to run mongodb server.

Starting Development Server:

npm run server-dev

WhaleThen's RESTful api

Get Requests

Timeline:

  • route: '/timeline/:timelineName/:timelineId'
  • Recommended to use Axios query string syntax or url template literals
  • response data will be on data key of the JSON object.
    • contains an array of event objects

Search:

  • route: '/search'
  • Query string syntax (Axios query string syntax recommended)
  • Required parameters include category and location
  • response data will be on data key of the JSON object.
    • contains an array of event objects
Post Requests

Timeline:

  • route: '/timeline'
  • Data Object should contain keys timelineName, timelineId, and numberOfDays
  • status code 200 if successful
  • status code 409 if failure

Entry:

  • route: '/entry'
  • Data Object should contain keys event, timelineId, and day
  • Event should be in the form of an object
  • timelineId (String) should refer to timeline that event is to be added
  • day (Number) should refer to the day of which the event should be added
Put Requests

Entry:

  • route: '/entry'
  • Data object should contain timelineId, day, eventId, and votes
Delete Requests

Entry:

  • route: '/entry/:entryId'

Requirements

  • axios: ^0.17.1,
  • babel-core: ^6.26.0,
  • bluebird: ^3.5.1,
  • body-parser: ^1.18.2,
  • cookie-parser: ^1.4.3,
  • cors: ^2.8.4,
  • dotenv: ^4.0.0,
  • express: ^4.16.2,
  • express-session: ^1.15.6,
  • jquery: ^3.2.1,
  • live-server: ^1.2.0,
  • lodash: ^4.17.4,
  • moment: ^2.19.2,
  • mongodb: ^2.2.33,
  • mongoose: ^4.13.2,
  • nodejs: 0.0.0,
  • nodemon: ^1.12.1,
  • passport: ^0.4.0,
  • path: ^0.12.7,
  • prop-types: ^15.6.0,
  • react: ^16.1.1,
  • react-dom: ^16.1.1,
  • request: ^2.83.0,
  • request-promise: ^4.2.2,
  • shortid: ^2.2.8
  • webpack-dev-middleware: ^1.12.2,
  • babel-loader: ^7.1.2",
  • webpack-hot-middleware: ^2.21.0

Development

  • babel-cli: ^6.7.5,
  • babel-preset-es2015: ^6.24.1,
  • babel-preset-react: ^6.24.1,
  • babel-preset-stage-2: ^6.24.1,
  • babel-register: ^6.7.2,
  • eslint: ^4.11.0,
  • eslint-config-airbnb: ^16.1.0,
  • eslint-config-hackreactor: git://github.com/reactorcore/eslint-config-hackreactor,
  • eslint-plugin-import: ^2.8.0,
  • eslint-plugin-jsx-a11y: ^6.0.2,
  • eslint-plugin-react: ^7.4.0,
  • webpack: ^3.8.1,
  • webpack-dev-server: ^2.9.4

Google Maps Api

The Google Places API is part of the Google Maps API. You'll first need to get an API key here. After you receive your API keym you'll need to add it into the .env file that is in the root of the App.

Calls to the Places Api are done from the placesApi.js file. Inside, the env file is sourced so that API calls can be authenticated for google searches. NOTE: Places API takes query distances in meters. The default value of our search radius is 32000m or 20 miles.

Environmental Variables

An example .env file is found in the root of the directory. Inside, there are the parameters needed for all the environmental variables used in our code. They include the database url, port, and Google Maps api key. Make a local copy of your .env file with by using cp .env-example .env and then edit it in your editor of choice to add your own parameters.

Installing Dependencies

From within the root directory:

Installing dependencies:

npm install

Roadmap

View the project roadmap here

Contributing

See CONTRIBUTING.md for contribution guidelines.

whalethen's People

Contributors

andino93 avatar angelahuang89 avatar jshen18 avatar jackieline avatar

Watchers

James Cloos avatar Mike Hernandez 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.