I created a full stack web application within 3 weeks providing users recipes based on their emotion inputs from ideation to execution. I conducted research, designed user webflow, graphics, and data structure for this project. I worked on both client and server side with HTML, CSS, Javascript, Node.js, MongoDB, Git, and Heroku.
Time: Feb. 2020
I am a foodie and everytime I think about what I want to eat next meal after meal. I enjoy the process of exploring amazing food to make or to eat out. However, it could be exhausting at times. Also, my mood affects what I want to eat. I want to combine my mood with food searching tools to create a whimsical and playful search engine for food to make or food to get.
This project is a passion project that will benefit people who spend lots of time to figure out what to eat for their meals. Especially when they are feeling down, certain food can help lighten the mood.
Developer & Designer
I did research to figure out what food is for certain emotions. I searched for six universal human emotions: happy, sad, anger, surprise, fear, disgust from here. I decided to start with three emotions: sad, stressed, and anger since most of the information I found are to make people happy in terms of food selections.
I searched related food for certain moods through online articles. I then build a data model in a spreadsheet. I iterated the data model three times to achieve a more efficient way for my clients.
I built my data model in excel first. There are ingredients for emotions respectively:
I then searched for recipes with that certain individual ingredient online. Most of the sources are from BBC Good Food for its comprehensive data.
After several iterations, my data model looks as below:
Emotion Types ==> Recipe Info ==> Ingredients ==> Recipe URLI build the Schema for my database using Mongoose.
Web flow
Front-End is so much fun!
I was having trouble with flexbox to create what I wanted. Turns out I would have to make sure the whole page with the display:flex and tweak around the row and column and other details. This website is a complete guide to flexbox.
I wanted to customize the cursor in JS since I would ideally want the different emojis to replace the default cursor every 10 seconds when the user is browsing on the page. However, I tried in JS to use the code below. It still didn't work.
So I just customize the cursor in CSS. I would love to learn to customize the cursor in JS in the future.
I created the function of fun part in my client.js to have the following features:
There are so many detailed aspects in terms of front-end. I wanted to create the experience as user-friendly as possible, therefore, I tried testing navigating the browser and had my friends using it several times to improve it.
Changing background with mouse position & Hovering on image effect.
Generating emojis by pressing keys.
I didn't use MongoDB at first since I was building my own JSON file. It turns out connecting to MongoDB using Mongoose would make the whole process easier.
I did conquer the part of showing the content with my previous data structure before using any MongoDB, which took a long time.
I originally followed the model straight from excel, however, what I really wanted was to have the mood determine the ingredients and show the recipes that include the ingredients. Ideally, I want to choose one recipe for one ingredient in the ingredient list for one emotion. It got too complicated at the time and it was not as crucial.
So the final data model looks like this:
Emotion Types ==> Recipe Information ==> Further Details of Special Ingredients ==> Link to UrlI build this website using pastel color palette and emojis to bring you happiness even when you are feeling done!
Special thanks to Cassie Tarakajian, Tirta Wening Rachman for help along the way.
Made within 3 weeks in Feb. 2020.
Addressing identity issues in society through 100 days of exploring on Spark AR platform.
Skills: Spark AR, Blender, and Unity
A virtual experience that invites people to relive, rethink, and reflect their responses/ their change of behaviors towards the toilet paper mania during COVID-19.
Skills: Blender and Unity
Talk about your feelings to get through hard times.
Tools: Front-End,Javascript, HTML5, CSS, Github, Heroku, p5.js, p5.speech
An interactive music installation that reinterprets the daily mundane sounds.
Skills: Kinect, Max/Msp, Max for Live, Ableton, Composing
A light visualization of historical rain data of cities around the globe.
Skills: Arduino, Wifi, HTTP request, JSON parsing, API
An audiovisual performance echoing the feeling of voidness and the draining of energy while living through the COVID-19.
Created under 6 hours for PerformaJam LIVE - CultureHub and Adjacent Jounral.
A personal Apple watch band that keeps you warm in the cold.
Skills: Design Research, Market Analysis, Fabrication, Art Direction
A website offers food options based on user emotions.
Tools: HTML5, CSS, Javascript, Node.js, Database, MongoDB, Github, Heroku
An interactive game to learn recipes visually.
Skills: Fabrication, Physical Computing, Creative Coding
An interactive video sculpture exploring the relationships between humans and phones.
Tools: Arduino, Sprite, Projector, Laser-Cutter, After Effects, Premiere, Illustrator
An interactive video sculpture that exposes the systems of the Internet in real-time.
Skills: Projection mapping, MadMapper, Processing, Syphon Recorder, Real-Time Performance