aniljaiswal / klick

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Klick

Klick is an automated "dinner with strangers" app. Users can sign up and fill out basic profile information and sign up for events. The app will organize random groups within events based on profile information. The grouping optimized for the highest average randomness.

Basic user flow:

  1. User signs up and fills out basic profile
  2. User registers for events.
  3. The user's group is hidden until the event date is within the release frame. For example, if a dinner event is at 5pm and the release frame is 1 hour, the user will be able to see who they are eatgin with at 4pm.
  4. A calendar invite is automatically sent to the user.
  5. The user attends the event

How to use

Admin have the ability to edit events, users, areas and settings. Any user can be promoted and demoted to an admin. The app will automitcally create and admin account.

Setup

  1. Deploy the app
  2. Login with the defulat admin account and enter basic profile information
  3. Navigate to the Admin > Configuration tab
  4. Create a couple "areas". These are the location groups that events will fall under
  5. Set the release frame (in hours)
  6. Set the calendar owner:
  7. Logout and go to the admin login page (/admin_login)
  8. Click google sign up
  9. Use the google account that will own the app's calendar
  10. Fill out basic profile info
  11. Logout and back into the admin account
  12. Navigate to the Admin > Configuration tab
  13. Select the google account from the calendar owner dropdown
  14. Click Update
  15. Create events

Settings

To veiw the app's settings, login as an admin and navigate to the Admin > Configuration tab. From there you can add, edit and remove areas.

Creating Events

Signing Up Users

Architechure

Packages used

The "insecure" and "autopublish" packages are removed by default (they make your app vulnerable).

Folder structure

client/ 				# Client folder
    compatibility/      # Libraries which create a global variable
    config/             # Configuration files (on the client)
	lib/                # Library files that get executed first
    startup/            # Javascript files on Meteor.startup()
    stylesheets         # LESS files
    modules/            # Meant for components, such as form and more(*)
	views/			    # Contains all views(*)
	    common/         # General purpose html templates
model/  				# Model files, for each Meteor.Collection(*)
private/                # Private files
public/                 # Public files
routes/                 # All routes(*)
server/					# Server folder
    fixtures/           # Meteor.Collection fixtures defined
    lib/                # Server side library folder
    publications/       # Collection publications(*)
    startup/            # On server startup
meteor-boilerplate		# Command line tool

(*) = the command line tool creates files in these folders

Schema

Deploying

Dev

Dev hosting is done locally using the (meteor commandline tool)[https://www.meteor.com/tool]. To run the app locally:

  1. $ cd klick
  2. $ meteor
  3. Go to (localhost:3000)[http://localhost:3000/]

Staging

Staging is done using meteor's cloud hosting. The staging env uses its own database and does not mirror prod. To deploy to staging:

  1. Get access to the staging domain from Nikhil
  2. $ cd klick
  3. $ meteor deploy klick
  4. Go to (klick.meteor.com)[http://klick.meteor.com]

Prod

The production server is hosted by (Modulus)[https://modulus.io/]. You must have the (modulus CLI tools)[http://help.modulus.io/customer/en_us/portal/articles/1701977-modulus-command-line] installed to deploy. To deploy:

  1. Get access to the staging domain from Nikhil
  2. $ cd klick
  3. $ modulus deploy
  4. Go to (klicktogether.com)[http://klicktogether.com]

License

This boilerplate has an MIT License, see the LICENSE.txt for more information.

About

License:MIT License


Languages

Language:JavaScript 71.9%Language:HTML 14.9%Language:CSS 12.8%Language:CoffeeScript 0.4%