Team Members

Launch Site

Fridge Master

Manage items in your fridge by the expiration date or the amount you have. Also provides recipe suggestions by the items you currently have. Social networking with foods and see what others have in their fridges.

V800 main

Description

Make sure to connect with HTTP instead of HTTPS. You will not be able to login with HTTPS. Thanks!

  • How many times did you waste your food because you forgot about it and it expired?
  • Wonder which and how much food items you have in your fridge in one glance?
  • Would you like to know what you can cook tonight without shopping?
  • Would you like to know what your friends have in their fridges?

  • FRIDGE MASTER IS YOUR ANSWER !!

Manage Your Fridge

  • Search & add food items to your fridge
  • 'Quick Add' option for common food items
  • Set expiration date for each item
  • Set and adjust the amount of an food item at any time
  • Quickly analyze your fridge by sorting items by exp. date or amount
  • Add random items for fun ( not yet implemented )

Recipe Suggestions

  • Generate random recipes from the items you currently have
  • OR Generate recipes with the items that are expiring first
  • OR Generate recipes with the items that you have the most
  • See which ingredients you are missing and find out who has that ingredient in his/her fridge !

See What Others Crave ( not yet implemented )

  • Randomly see the contents of other users' fridges ( not yet implemented )
  • Automatic nickname of an user depending on the contents ( not yet implemented )

Instructions

GENERAL INSTRUCTION

LOGIN / REGISTRATION

  • You must register and login to fully experience Fridge Master.
  • For your convenience, default login is already typed in.

MY FRIDGE

  • Click on any 'Common Item' to insert an item to your fridge
  • >> Expiration date option mapping ( just to illustrate )
  • >> Bio-Hazard : set to 100 days ago
  • >> Few Days Passed : set to 7 days ago
  • >> Today : set to today
  • >> This Week : set to 7 days after
  • >> This Month : set to 30 days after
  • >> Good for 100 Years : set to 100 years after
  • Amount option mapping ( just to illustrate )
  • >> Almost Gone : 20%
  • >> A Little : 40%
  • >> Enough : 60%
  • >> More Than Enough : 80%
  • >> Too Much : 100%
  • You can search food as well by clicking 'Search' tab and typing food names
  • 'Random' tab is not yet implemented
  • You can organize (sort) items
  • You can click items in your fridge and quickly change its amount.

COOKING TIME

  • Random recipes will load initially.
  • Note : You must have at least 10 items in your fridge in order to get the recipe suggestions. I wanted to change the minimum to 5 but the deadline is already passed. Oh well...
  • Note : Login with the following credentials to see the biased recipes
  • >> cowboy / sophie1 ==> Meat biased
  • >> aquaman / sophie2 ==> Seafood biased
  • >> bunnyhugger / sohpie3 ==> Vegetable biased
  • >> wobblypops / sophie7 ==> Alcoholic
  • Get new recipes by Clicking 'Suggest Recipes' and choosing appropriate option
  • Click 'Get More Info' to see the recipe
  • Click any of the 'Missing Ingredients' to see if any of the user has that item in the fridge.
  • Click 'Toggle Availability' to see your fridge status.

SHARE FRIDGE ( not yet implemented )

  • Wanted to generate nicknames based on the contents of the fridge and share nicknames
  • Finished up to the grouping by food category

RETROSPECTIVE

I wanted to share my 48 hours of coding experience with Angular2 before I go into hibernation. Oh... Tomorrow is Monday... T.T Anyways, I use AngularJS extensively at my work so I thought I was ready for Angular 2 but I had real trouble learning it. In my opinion, Angular 2 is not much different from AngularJS structurually but there were two things that made the learning difficult. First problem was that I have never seen Typescript before and it made everything look so ... alien! I migrated from .NET to javascript world and was enjoying the freedom but it looks like I need to go back to strongly typed environment! I am not really sure if it's the right direction for me. Later in the project, I got lazy and declared most variables as 'any' anyway. Second problem I had was an obvious one. Angular 2 is still being developed so most blogs and manuals are outdated already. I hope the breaking changes stop once it is released. One other thing I wanted to mention is that I had trouble setting up the project with typescript compilation and systemJS setup. I always thought Bower was for front-end and npm was for back-end but I guess Bower is slowly dying. Sometimes I wish there was ONE best way to do it but then there would be no innovation. I hope to stay fresh as long as possible in this ever-changing world of developers!

View the screencast:
https://www.youtube.com/watch?v=ekDz-dM_jKk

Built With

Database Tier

  • engine : mongoDB
  • hosting : mLab Sandbox Free Tier - 500MB
  • Note : New account created after Angular Attack started.

API Tier

  • engine : nodeJS
  • hosting : Amazon Web Services Free Tier ( t2.micro instance with ElasticBeanstalk )
  • Note : New account created after Angular Attack started.
  • Note : I have used Heroku previously but I did not like 6 hour mandatory sleep period so I went with AWS.
  • Modules :
  • >> loopback.io ( and its own libraries )
  • >> async
  • Note : Once new loopback project was created, minimal changes were made in order to spend most time in front-end. Third party APIs are called directly from the front-end.
  • Git repo available here : https://github.com/yk2081/fridgemaster-api/tree/dev
  • I did not want to mix it with front-end so created a separate public repo after competition started. Notice latest push is in 'dev' branch.

Front-End

Third-Party API

  • Spoonacular.com API : https://spoonacular.com/food-api
  • Special thanks to Spoonacular for providing unlimited usage during the hackathon !!
  • All food information, image and recipe data is from this API

Feedback / Ratings (25)

All Feedback