Spork Box

A full-stack web application built for a catering business in Portland, Oregon to facilitate the supply of box meals to local company employees. One of the significant challenges was to create custom eCommerce features to meet the unique business objectives.

Spork Box's cover image

Employer:

Tim Taylor

Contributions:

UI and UX designFrontend developmentBackend development

Tools:

Next.jsNodeJSStripeS3 BucketSendGrid

Challenges

This project presented an array of intriguing challenges. One of them was to build a feature that allowed each employee to receive a specific meal reimbursement from their respective companies. This reimbursement had to be tracked meticulously, taking into account how much an employee had used on a given day and shift, how much remained, and any additional expenses they needed to cover personally.

Another complex challenge was to develop features that enabled administrators to schedule a restaurant for multiple shifts across multiple companies. Managing this intricate scheduling system required the creation of a highly efficient data structure. This structure had to facilitate easy identification of which restaurant was scheduled for a particular date, shift, and company.

Solutions

To address the first challenge, I developed a solution to retrieve all the restaurants scheduled for the specific shift an employee was ordering from. I also gathered data on past active orders. With these two pieces of information, I was able to perform calculations to determine the amount of reimbursement an employee had utilized and identify any remaining expenses they needed to cover for a particular order.

For the second challenge, I created a "schedules" schema nested within the "restaurant" schema to effectively keep track of the companies, dates, and shifts for which a restaurant was scheduled. This array of schedules was crucial in creating individual instances of the restaurant, each corresponding to a specific schedule. These instances were then presented in a user-friendly calendar view, allowing employees to easily select their preferred date and shift for orders.

Process

I built this application from the ground up, handling every aspect of its creation. This included the design of the user interface and the user experience, the development of the front end and back end, as well as the design of the database. In crafting the user interface and experience, I drew inspiration from various open-source resources, with the key objective of providing users with an effortless, seamless, and enjoyable experience.

The development process was organized into smaller, manageable sprints. Before each sprint, I engaged in client meetings to thoroughly discuss and comprehend the specific features they needed. To manage these sprints and facilitate feature development and bug tracking, we used Asana as our project management tool.

In terms of the technology stack, I selected TypeScript as the programming language, NextJS as the frontend framework, ExpressJS as the backend framework, and MongoDB as the database. To enhance maintainability and streamline development, I divided the entire application into smaller, reusable components.

Depending on the nature of the features in a given sprint, I followed different development sequences. For instance, I sometimes started working on a feature by building the user interface first and then the API, while in other instances, I reversed this order. I used an excellent VS Code extension called Thunder Client for API testing.

Finally, I integrated and rigorously tested the user interfaces with their respective APIs. Upon successful testing, I delivered the new features to the client for them to test further. Any identified bugs were promptly addressed, and once everything was functioning as expected, the features were rolled out to production.

Feature highlights

  • Scalable to host millions of clients
  • Pixel-perfect user interface and experience
  • Implementation of the latest security standards
  • Responsive to all mobile, tablet, and desktop screens
  • 98% performance and 100% structure optimized (GTmetrix)
  • Takes .9 seconds to load the full website in Google Chrome

Key functionalities

  • User authentication
  • Restaurant scheduler
  • Email notification integration
  • Order delivery and cancellation
  • Interactive admin and user dashboard
  • Complete content management system for the admins
  • Calendar view to order meals for a particular day/shift
  • Ability to review order review and add an item to the favorite

Snapshots

Sporkbox admin dashboard page

Admin dashboard page

Sporkbox order details page

Order details page

Sporkbox restaurants page

Restaurants page

Sporkbox restaurant page

Restaurant page

Sporkbox admin item page

Admin item page

Sporkbox companies page

Companies page

Sporkbox company page

Company page

Sporkbox schedule restaurant

Schedule restaurant

Sporkbox customer dashboard page

Customer dashboard page

Sporkbox upcoming order page

Upcoming order page

Sporkbox profile page

Profile page

Sporkbox calendar page

Calendar page

Sporkbox customer item page

Customer item page

Sporkbox cart page

Cart page

Sporkbox favorite page

Favorite page

Sporkbox contact page

Contact page

Sporkbox payment confirmation page

Payment confirmation page

Sporkbox add restaurant page

Add restaurant page

Sporkbox add item page

Add item page

Sporkbox edit item page

Edit item page

Sporkbox add company page

Add company page

Sporkbox edit company page

Edit company page

Sporkbox add admin page

Add admin page

Sporkbox register page

Register page

Sporkbox sign in page

Sign in page

Sporkbox forgot password page

Forgot password page