Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Organizing social activities with your team has never been easier! LunchTrain lets you coordinate informal team outings and find new places to eat or hang out. Seamless Slack integration also ensures that you never accidentally miss out. All aboard!


  • Product Owner: Anthony Salierno
  • Scrum Master: Jarrett Gliner
  • Development Team Members: Griffin Michl, Jacob Lee

Table of Contents

  1. Foreword
  2. Requirements
  3. Development
    1. Installing Dependencies
    2. Tasks
  4. Team
  5. Contributing


After a long morning at work, it's almost time to get lunch! You have been wanting to try out that new Chinese place down the street, so you decide to ask some of your coworkers if they would like to join. You glance up from your desk and see that a good number of your teammates are away. You could:

A) Pace around the office asking people if they would like to join B) Frantically message coworkers on Slack, lunch? C) Defeatedly make a sandwich and postpone your lunch outing

LunchTrain was born out of the idea that meals are an invaluable time to bond with coworkers, but are often a hassle to coordinate. Our team understands that all workplaces have different needs and has decided to make this application Open Source in order to make it as accessible as possible.



Installing Dependencies

From within the root directory:

$ npm install
  • This will install all the necessary packages in the root, native, and server directories


  • LunchTrain uses ECMAScript 6 syntax, which is not yet fully compatible with Node. Therefore, we use Babel to transpile our ES6 code into ES5, which is compatible with Node v5.x.x and above.

From within the root directory:

$ npm run compile

Configuring Authentication

  1. Duplicate config.example.js and rename it to config.js
  2. Replace [INSERT CLIENT_ID] and [INSERT CLIENT_SECRET] with your own Client ID and Client Secret
  3. Enable or disable devMode (explanation below)


LunchTrain relies on Slack for sign-in and authentication. Therefore, when the server restarts, you may need to re-authenticate. We have included a handy devMode variable to make this process less cumbersome.

devMode = true - Hard-codes a sample user on a sample team and will always return true for authenticated. On the front-end, this allows for bypassing the login screen all together. However, it is still possible to do work on the login screen by navigating to /login. DO NOT enable devMode if running LunchTrain in production.

devMode = false - Use this in production, as it checks for authentication when mounting new components. The user will stay logged in until the server restarts.

Starting the Server

We highly recommend using Grunt to minify, concat, transpile the /src/ folder, and start the server in one command! (Note: This requires Nodemon)

$ grunt server-dev

This will initialize the sqlite3 database and listen on port 5000


View the project roadmap here

Future Features

  • Allow users to swith between teams or see data from all teams in app
  • Integrate slash commands into the app (show trains, schedule train, etc)


See for contribution guidelines.


Never miss out on another team outing






No releases published


No packages published