Skip Navigation
Tyrone Williams

Reshipi Bukku

Summary

Reshipi Bukku is a site for users to create and share food recipes.

Objectives

The main objectives with this site were to get a better understanding of consuming and creating a GraphQL API vs a Rest API, and create a more modern design for the site.

Technologies and Tools

Front-end

  • React for front-end framework with using Apollo and local state for state management.
  • Apollo client for Graphql queries.
  • Cypress for E2E testing.

Back-end

  • NodeJS for running GraphQL server,.
  • Typescript for static typing javascript.
  • PostgreSQL for database.
  • Redis for managing the challenge queues by tracking the number of users in different queues and matching users together.
  • Apollo server (express) for graphql server and serving app and assest files.

Challenges

The main focus for this project were creating a well designed UI as well as using GraphQL.

For the design of the site, I decided instead of designing from nothing to take inspiration from a design online. Using this design I found on dribble as a base while only making a few changes to the home page. The rest of the site was just used this expanded on this minimal desing.

Outside of the basics, it was my first time using GraphQL for a project and as such had to learn to implement solutions for common problems such as pagination and error handling. Pagination was pretty straight forward, however error handling does not seem to have a consensus. I follow some information from Sasha Solomon's article using unions and introducted interfaces to give all user errors a common structure. While it does add more "weight" up, but I believe it more flexible to scale and and works well to give more predictable structure to user based errors.