Oura is a project meant to allow the creation of a storefront site dedicated to clothing. It allows the creation of products, categories and sales with a great degree of customization.
Technologies and Tools
Next.js
Next.js was chosen as the framework for the project due to its simplicity in developing server-side and client-side components, and its industry-wide adoption. This project needed to display a lot of data, for which server-side rendering was a great fit, and at the same time, it needed to be highly interactive as the user clicked on the products or categories. Due to this, Next.js was a great fit for this project.
Stripe
Naturally every storefront needs to have a payment system, and Stripe was chosen as the payment provider due to its ease of use and security. This project was the first time I used Stripe, and I was able to integrate it with Next.js seamlessly.
PostgreSQL
PostgreSQL was chosen as the database due to its reliability and scalability. This project has many related pieces, and it was important to have a database that could handle all of these relationships and interactions.
Roles and Responsibilities
This project was developed single-handedly by myself in 2023. I was responsible for every facet of it, from design to development. Of note are:Full-Stack Developer
Implemented the project’s functionality and ensuring it was secure and scalable. I used Next.js, tRPC, NextAuth.js, and Stripe amongst other tools to build the project.
UI/UX Designer
Designed the user interface and user experience of the project. The project wanted to be different from other clothing stores, and I wanted to create a unique experience for the user. I used Figma to create the designs and implemented them in the project using TailwindCSS.
Challenges and Solutions
Security
One of the biggest challenges when developing a storefront site is security.
To help with this, I used NextAuth.js, which provides a simple and secure way to handle user authentication and authorization. I also used Stripe to handle payments, and Supabase security features to ensure the data was safe.
Payment System Implementation
This was my first time working with any payment system, and I had to figure out how to integrate it with the project. I used Stripe. It required a bit of setup, but it was somewhat straightforward. I struggled a bit more dealing with orders, how to tag them as they were created, how to deal with deleted ones, refunds, failed payments, etc. This required a lot of research and dealing with edge cases.