Skip to content

OverclockedTim/lunchtime-voter

Repository files navigation

Overview

Screenshot

Lunchtime Voter is a primarily two things: 1. An example project for Angular 2 and Firebase, and 2. a tool for teams to decide where to go for lunch.

Technologies

  • Typescript as web client language
  • Angular 2 as framework
  • Firebase as database
  • Materialize.css as CSS framework. (This may get swapped out in the future when the angular team gets angular-material ready for Angular 2)

Possible Future Technologies

  • Ionic 2 Hybrid Apps
  • Swift 2.0 iOS apps
  • Android Studio based Android Apps (Java 7, newest OS, etc)

The App

The app idea itself is basically a tool for people to figure out where to go to lunch together.
Pretty much everywhere I've ever worked, this primarily involved emailing or messaging 20 people about a hundred times: "Do you want to go here?" "Not Really, how bout here." "Not Really. Anywhere but there" and so on. Most of you will know what I'm talking about :) So this is just a quick way to get together and make a decision.

Everyone gets to submit one idea for lunch. Everyone else votes on an idea. The idea with the highest common point total wins, and the group goes there for lunch.

See a live example: lunchtimevoter.com

Contributing

Everyone is welcome to commit towards this primary goal. Design changes will be voted on by active commiters.

Contributing Bugs

Done through github issues

Chatting.

If there is interest, I'll start a slack team.

Contributing Code

Github pull requests.

Getting Started / Running

install the repo with npm

npm install

start the server

npm start

go to [http://localhost:3000](http://localhost:3000) in your browser

# Getting Started
## Dependencies
What you need to run this app:
* `node` and `npm` (`brew install node`)
* Ensure you're running the latest versions Node `v4.1.1`+ and NPM `2.10.0`+

Once you have those, you should install these globals with `npm install --global`:
* `webpack` (`npm install --global webpack`)
* `webpack-dev-server` (`npm install --global webpack-dev-server`)
* `karma` (`npm install --global karma-cli`)
* `protractor` (`npm install --global protractor`)

## Installing
* `fork` this repo
* `clone` your fork
* `npm install` to install all dependencies
* `npm run server` to start the dev server in another tab

## Running the app
After you have installed all dependencies you can now run the app. Run `npm run server` to start a local server using `webpack-dev-server` which will watch, build (in-memory), and reload for you. The port will be displayed to you as `http://localhost:3000` (or if you prefer IPv6, if you're using `express` server, then it's `http://[::1]:3000/`).

### server
```bash
npm run server # or either webpack-dev-server or npm run express

Other commands

build files

npm run build  # or webpack

watch and build files

npm run watch  # or webpack --watch

run tests

npm run test  # or karma start

run webdriver (for end-to-end)

npm run webdriver-start  # or webdriver-manager start

run end-to-end tests

# make sure you have webdriver running and a sever for the client app
npm run e2e  # or protractor

TypeScript

To take full advantage of TypeScript with autocomplete you would have to install it globally and use an editor with the correct TypeScript plugins.

Use latest TypeScript compiler

Make sure to upgrade, even if you installed TypeScript previously.

npm install --global typescript

.d.ts Typings

The TSD typings in tsd_typings/ are autogenerated.

npm install --global tsd

#Steps to Deploy your own

  1. Get yourself setup with a firebase account
  2. Enter your own firebase address into firebaseUrl in /src/app/services/firebaseService.ts
  3. npm run build
  4. firebase deploy

About

A project to vote on where to go to lunch.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published