/Piecemeal

Split a bill, share a meal.

Primary LanguageJavaScript

Piecemeal.us

Split a bill, share a meal. Try it out at piecemeal.us.

front-page

Table of Contents

  1. Team
  2. Usage
  3. Development
    1. Requirements
    2. Installing dependencies
    3. Local database setup
    4. Starting the server
    5. Further dev instructions
  4. Testing
  5. Roadmap
  6. Contributing

Team

jackson

fawn

michelle

Usage

Using the appplication

Piecemeal is live! You can try it out at at piecemeal.us.

Development

Requirements

  • Node 4.2.x
  • PostgreSQL 9.1.x

1. Installing dependencies

sudo npm install -g bower
npm install
bower install

2. Local database setup

  1. Install Postgres.app - full-featured PostgreSQL installation w/ psql CLI
  2. Install Postico (optional) - PostgreSQL Client for OSX aka GUI. Double check that Postgres.app is running from your OSX toolbar. It should indicate that you are running port 5432.
  3. Use Postgres CLI to create the database:
psql
CREATE USER admin WITH SUPERUSER;
ALTER USER admin WITH PASSWORD 'admin';
SET ROLE admin;
CREATE DATABASE piecemeal;

3. Starting the server

a. Starting using Grunt (recommended):

The Gruntfile has been setup so that starting up the application for dev purposes is as painless as possible.

grunt init
grunt start

This will start up the database, start the server, set up livereload and grunt watch to lint, run tests and create documentation as you change the files. See the Gruntfile for more information on setup.

b. Or with a simple node command:

node server/server.js

4. Further dev instructions

There is a file called 'venmoApiKeysFILL-IN.js' in the root folder. Add your developer keys from Venmo and rename it 'venmoApiKeys.js'.

Most problems can be solved by dropping the database. To clear it, stop the server and run:

psql
drop database piecemeal;
create database piecemeal;

Testing

We used Jasmine and Karma to test our Angular components, and used ngMock and angular.mock.inject. Check our Karma config file for more details.

To run the tests, just run:

karma start karma.conf.js

Roadmap

See ROADMAP.md for more information.

Frequently Asked Questions

  1. Why is everything in an IIFE in the client-side Angular files?

We follow John Papa's Angular Style Guide, a comprehensive guide on syntax and structure of Angular components for greater readability and clarity.

Contributing

See CONTRIBUTING.md for contribution guidelines.