Revive Recipe

IdeationResearchIterationSummary

Project Overview

overview of the current project

This is a recipe search, health fitness, community platform website. Right now, the live site is up on the front end and is fully functional to search for recipes, in particular ingredients. This is a project I am continuously building and I laid the foundations for the front-end. I will continually develop and add the back-end as I design. This is one of the most ambitious personal full-stack projects I have done. Because I am the sole developer and designer, I do not have a set release date. But I am not a gimmick software engineer with release dates, the project is done when it is done. I am excited about this project because the scope allows me to use a variety of technology and technique and to fully utilize TypeScript with NextJS (v.13) and other design patterns. The project is available to view in its current state and Github repository is public for viewing with further instructions.

Technology Used:

  • NextJS 13
  • SCSS
  • TypeScript
  • React Hook Forms
  • NodeJS / ExpressJS
  • MongoDB
  • ChatGPT (for content)
  • Edamam API (Recipe Look up)

Ideation

Background

I actually have started lifting more seriously after hiring a personal trainer last January. I have gotten compliments on my more toned body and weight loss since then. It has been an excellent outlet for me as I studied data structures & algorithms since I do not possess a CS background -- but I can confidently say, that I am on par with a CS student now that I have learned the fundamentals. For the uninitiated, this comprised of a lot of Leetcode, an industry standard testing for higher tech tier jobs in tech for software engineers. Ending that note with I believe I am a stronger software engineer and I write more meaningful code because of it.

As for the project, it is a health centric web application. I wanted a way to find recipes. The community portion comes in because friends and I will snap each other “sweat checks” at the end of our workout for accountability and I wanted to build a community social site like that. I am not following any tutorials aside from documentations and techniques. The designs are all my own and implementation as well. Which is why this project is taking long but I tend to use it to grow and talk about should I ever be in interviews or if someone questions the gap in my resume. Work and moves are being made; I assure you.

Objective 1: Emphasis on reusable components

While not apparent to the end user, I am striving to make components reusable as possible. If you were to look at my Github the Button.tsx and the Toast.tsx is a very dynamic component. However, I do not want to overengineer components but I am trying something new with general buttons. The idea is to pass in data to make these components as dynamic reusable as possible with a schema.

Objective 2: Intuitive site and streamline interface

Now for the end users, I would want them on the site to search for recipes. Later the community aspect will be added of friends, groups, sharing and saving recipes. But in it's most pure form this is a recipe look up web application.

Research

I needed an API, preferably free, that had access to a large database of food, nutritional labels and recipes. I did think of MFP (MyFitnessPal). To be honest, I do not like the design of MFP, but looking to borrow some community features on there once I hook up the backend. But this is a web app I do not want users to mindless scroll through, I want to keep the recipe look up as straight forward and streamlined as possible. One of the first things you can do once you log in or view as a guest.

  1. Keep the focus of the application, recipe look up front and center, with a intentful, simple UI.

Iteration

Development is in full swing. Ideally I want to get the MVP out where users, regardless if registered or not can utilize the recipe look up. I am still writing the user story and flows of this in between studying. Once this main feature is out utilizing the recipe look up, a live version of the site will be up. As I am building out each feature, I am already making it mobile responsive.

There is much system design I need to do before I implement the backend logic and database, but the foundational parts are there in the form of RHF (React Hook Form). When I am ready to incorporate a database and designed out a flow I can pick up from here.

View of the dashboard as a logged in user.
This is the landing page. The image is a bit distorted but happy to how this turned out.
View of the dashboard as a logged in user.
This is an early iteration of the home. I started with the 3 recipe cards that are randomly generated each time a visit to the page. The idea here is to suggest new recipes to users. The left and right empty spaces are reserved for member login and other widgets when the backend is implemented. I still need to write user stories of how the community and users would work. There is another API available called the Food look up. I may toggle to switch between modes as of right now this is just recipes. There are plans to have a recipe specific page taking advantage of NextJS in-page routing.
Mobile view.
One thing I am experimenting is how data is best viewed on mobile. I feel search results should just have the image, name and a link to a full page. It is a lot of data to try and squish in the search resu;ts. But for the random recipe cards I feel it is fine. I would need to design a dedicated recipe / product page.

Summary

This project is a capstone of sort of my TypeScript + NextJS + Node/ExpressJS. I am not following any tutorials and I am trying out new designs actively using Adobe XD. I am excited to how this project starts to grow and can update the journey for this entry. Both the github repository and live version of the site is available for prospective employers or tech leads checking me out is the Github repository. I will start incorporating official release branches when I feel an iteration is at a good spot and when I design and plan out the roadmap of this project. The scope is big enough to explore at my own pace and try new things.

view siteview githubReturn to Top