Always know where the fresh coffee’s at.
There are a lot of coffee pots where I work, in different locations spread across multiple floors and buildings. It’s no fun to venture out to your nearby coffee station only to be greeted by a stale, tepid brew. Furthermore, it seems wasteful to make a fresh pot only to have its contents languish away because no one but you is aware of it.
Fresh Pots is a web application that helps to keep teams au courant with their coffee situation by allowing coffee drinkers to easily log when and where they start a brew and to quickly scan the freshness of available pots.
The name Fresh Pots does have an origin, in case you were wondering.
Table of Contents
You should totally set up Fresh Pots for your organization! I originally intended for this project to be fully decoupled from my place of employment, but time constraints. I’d be glad to accept any PRs that make the project more easily usable for any team.
After cloning the project and changing to its directory, you’ll want to run the setup script:
This will install application dependencies and create your development database. Next, initialize your database with:
% bin/rails db:migrate
That’s all there is to it. Spin up a server on http://localhost:3000 and start hacking:
% bin/rails server
Fresh Pots requires the following to be installed:
- Ruby 2.4.x
- PostgreSQL 9.6.x
- Node 6.10.x
- Yarn (or NPM)
A user is someone that authenticates with the app and then creates brews and marks pots as empty. Users have many brews.
A pot represents some physical device with which coffee can be brewed. If it makes more sense for your situation, you can think of a pot as a location, e.g., break room. Either way, pots have many brews.
pot = Pot.first # => #<Pot id: 1, name: "Nick’s Chemex", ...> pot.brews # => [#<Brew ...>, #<Brew ...>]
A variety represents a particular blend or style of coffee. Think Dark Roast, Kenyan Single Origin, or Hombre Cohete.
Variety.first # => #<Variety id: 1, name: "Community Coffee & Chicory", ...>
A brew represents an instance of some variety of coffee created with a pot. Each brew belongs to a pot, a variety, and a user.
brew = Brew.first # => #<Brew id: 1 ...> brew.pot # => #<Pot ...> brew.variety # => #<Variety ...> brew.user # => #<User ...>
Brews will degrade in freshness over time, as shown on the application dashboard.
Small note: If editing the README, please conform to the standard-readme specification.
MIT © 2018 N. G. Scheurich