Appetype is an application that allows your company to easily manage the catering menu offered to their employees. Powered by Typeform API and Sendgrid.
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create PULL_REQUEST_TEMPLATE.md Jan 26, 2018
app Fix rubocop offenses Jan 28, 2018
bin Add rubicon and fix offences Aug 19, 2017
config Refactor user not invited error and add a debug log Jan 18, 2018
db
lib Initial commit Jul 25, 2017
log
public Fix log in invitation email Jan 11, 2018
spec Add tets for retrieving a form through typeform api Feb 4, 2018
tmp Initial commit Jul 25, 2017
vendor/assets Initial commit Jul 25, 2017
.env.dist
.gitignore Add simplecov to measure test coverage Dec 24, 2017
.rspec Configure the project to use rails rspec Dec 10, 2017
.rubocop.yml Fix rubocop offenses Jan 28, 2018
.ruby-version Specify ruby version for the project Jan 17, 2018
.travis.yml Fix code climate token Jan 18, 2018
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Gemfile Add code climate gem Jan 18, 2018
Gemfile.lock
LICENSE
README.md Create app.json Feb 9, 2018
Rakefile Initial commit Jul 25, 2017
app.json Create app.json Feb 9, 2018
config.ru Initial commit Jul 25, 2017

README.md

Appetype

Build Status Maintainability Test Coverage

Appetype is an application that allows your company to easily manage the catering menu offered to their employees.

With Appetype you can create next week's menu, send it to your employees and collect their orders.

Appetype is built on top of Typeform and it's powered by its Create API, Webhooks API and Embed.

Usage

View it in action

The first thing you need to do is authorising Appetype to use Typeform. To do so log in with an admin user, go to the user menu, click Authorize and follow the instructions. Once you are authenticated you can start using Appetype.

A normal workflow will look like the following:

  • The catering user creates next week's menu. This will be a draft version of the menu.
  • The admin user reviews the menu and updates it if necessary. When the menu is ready the admin user can make it available to diner users by publishing it.
  • Once the menu is published, diner users can fill their choices for next week.
  • The admin user closes the menu when the time for placing orders has finished.
  • The catering user checks the menu orders. Now they can go to the market to buy the ingredients!

Technical notes

When a menu is published, Appetype creates a Typeform and configures a webhook to receive the orders.

Fill menu page is embedding the Typeform we created. When diner users fill the Typeform, a weebhook is received and processed to show the correct results.

When closing the menu, the Typeform is made private so that no one else can access it.

Set up

Ruby version

Ruby 2.4.0

System dependencies

Install bundler and run bundle install.

Database

Install PostgreSQL. If you're on OSX, you can use Postgres.app and Postico.

Alternatively, you can run Postgres inside a docker container.

Create the DB running bundle exec rake db:create and execute the migrations bundle exec rake db:migrate.

Running seeds bundle exec rake db:seed will populate the database with three users. Check seeds for more information.

Email delivery service

Sengrid.

Static code analyzer and tests

The code follows Ruby Stype Guidelines. Run Rubocop to ensure them by executing bundle exec rubocop. Execute bundle exec rspec to run the tests.

Deploy your own instace to Heroku

You can deploy your application to Heroku in one click using the button below and following the instructions.

Deploy