
Screens
Gallery
01 / 08
GearUp home page: "Rent bikes by the day, instantly", with gear search, an Ask AI tab and a date picker
01
Overview
A gear rental marketplace with three roles. Customers browse and book gear and pay through Stripe Checkout, providers list and manage their gear and fulfill orders, and admins moderate users, listings, and orders. Includes email and Google sign-in, role-protected dashboards, and URL-based filters.
02
Tech stack
Frontend
Backend
Database
Tools
03
Challenges faced
01
Keeping sessions accurate
What went wrong
A token's claims are frozen at login, so a role change or a suspension would not take effect until the token expired.
02
Google sign-in without a library
What went wrong
Adding Google sign-in safely without relying on an auth library.
03
Keeping tokens off the browser
What went wrong
Client-side data fetching normally needs the access token in the browser.
04
How I used AI
The same workflow I use on every project: AI speeds me up, I own the decisions, the review and the security.
- 01AI + Me
Requirements
AI drafts the basic requirements; I check every point.
- 02Me
Project setup
I initialize the project myself. No AI.
- 03AI
Code generation
AI, mainly Claude, writes the feature code.
- 04Me
Line-by-line review
I review every generated line before it stays.
- 05Me
Security code
All security-related code is written by me, not AI.
- 06AI + Me
Bugs and errors
I debug with AI's help and verify every fix.
Written by me, not AI
- Session checks in proxy.ts: token verification, silent refresh, and a role and status check on every dashboard navigation
- Google OAuth 2.0 authorization code flow with PKCE, with the ID token verified on the server
- Tokens kept in httpOnly cookies and only used on the server
- Stripe Checkout payment integration
05
Improvements and future plans
- Next
Date-range availability
Stock is currently a flat count, not tracked per booking dates.
- Next
Store contact messages and newsletter sign-ups
They currently validate but are not stored.
- Later
Another payment gateway
Support another payment gateway besides Stripe.
