Introduction
Building an e-commerce application as a solo developer can be both a rewarding and challenging experience. My project, Tathya, aims to create a smooth shopping experience for users, integrating modern practices and scalable architecture. This post shares insights from my development process, highlighting how I structured the project and solved technical challenges.
Even as a solo developer, I found the Agile methodology valuable to stay organized, focused, and adaptive.
The core goal for the Minimum Viable Product (MVP) is a functional and intuitive shopping platform, focusing on five primary features:
I designed my database using Prisma to define the schema:
model User {
  id           Int      @id @default(autoincrement())
  username     String   @unique
  email        String   @unique
  password     String
  refreshTokens RefreshToken[]
}
model Clothing {
  id        Int       @id @default(autoincrement())
  name      String
  price     Float
  colors    Color[]
  sizes     Size[]
}
model CartItem {
  id          Int      @id @default(autoincrement())
  user        User     @relation(fields: [userId], references: [id])
  clothing    Clothing @relation(fields: [clothingId], references: [id])
  quantity    Int
  createdAt   DateTime @default(now())
}