Decisions - VittorioDeMarzi/hero-beans GitHub Wiki

Project Decisions

  • Project Goals: Deliver a complete, working solution with clear team communication and testable code
  • Codebase Approach: Build from scratch, potentially reusing reviewed components from previous projects
  • Pagination: per page have 10 products maximum
  • Vision: Build an online store dedicated exclusively to high-quality Fair Trade coffee
  • User: Coffee lovers who care about quality and ethical sourcing. Environmentally conscious consumers who prefer sustainable and fair trade products.
  • Business Goal: related with the concept

Extra Features (min 1, max 3):

    1. Ranking - top x products in the past x days
    1. Coupon – with fixed price or percentage, with expiry date
    1. Bundle – a bundle with options; cart-items and order-items can contain: Option? or Bundle?
    1. Email – send email to the user when order is confirmed
    1. Discount – send 10% discount if someone buys 10+ products
  • Gift Card – not to implement; reason: is like a coupon
  • Referral program – not to implement; reason: high security risks
  • small feature: show if stock of a certain coffee is low

Entities

CoffeeItem

class CoffeeItem (
  id: Long,
  name: String,
  description: String,
  sweetness: SweetName,
  acidity: AcidityEnum,
  taste: String,
  origin: OriginEnum,
  processingMethos: MethodEnum,
  options: List<SizeOption>,
  price: Bigdecimal?,
  isAvailable: Boolean,
  roastLevel: RoastEnum,

  createdAt: LocalDateTime,
  updatedAt: LocalDateTime,
)

Option

class Option(
  id: Long,
  name: String,
  size: SizeEnum,
  quantity: Int,
  rate: ?,
  product: Product,
  lowStock: String?,

  updatedAt: LocalDateTime,
)

Bundle

class Bundle (
  id: Long,
  name: String,
  coffeeItems: List<Long>,
  discountPercentage: Double,
  isActive: Boolean
)
⚠️ **GitHub.com Fallback** ⚠️