# Project Brief
PawPaw is a responsive website with extra functions for pet lovers. Most recent e-com apps are designed for selling various stuffs, no e-com site with specilly designed activities for the pet owners so far.
### Motivations + Problems
As a pet owner, I find it inconvinient to buy pet products at one place and move to another place for a pet spa service, then maybe I have to go somewhere else to see my pet's doctor.
This is not only an e-com site with products and services but also a place where users can feel proud of their pets.
My biggest problem is how to create more interesting activities/functions to attract pet owners & pet lovers as well
### Key Features and Technical Implementation Plan
**1. E-com:**
* Add to cart, order and payment, filter. Basic features of an e-com site.
-- Design backend api & function to execute frontend command.
* Membership program. Users gain more points after they pay an order or finish a service, accordingly level up with better benefits.
-- Add one more function at the backend side when people satisfy the above condition.
-- Frontend: notificate user when they got promoted and send them a gift. They can receive it as an typical order with price of 0.
* Pet profile. User can add their pet profile into their account (as many as they want).
-- Create one more model for pet and more functions.
* Book a service. We have 2 types of service here: spa and healthcare.
-- User can book a service from website.
-- Only admin who can confirm its final cost and status (by PUT method). We would take these to calculate that user's point.
**2. Competition: Pet of the Year**
* Admin would choose 5 pet profiles from the accounts with the most total value order during a year
* Users can see these pet profiles and vote for their favorite ones.
* The number of vote is calculated from user's paid order, 1 vote for every 100k. E.x: 100k = +1 vote, 110k = +1 vote, 250k = +2 votes...
* The pet who got the most votes wins.
### Key Models
* Users (standard fields)
-- Standard fields, email/pass/etc
-- Profile Fields
++ Name
++ Role
++ Pet
++ Cart
++ Order
++ Schedule
++ Point
++ Tier
++ Reward
* Product
++ name
++ category
++ images
++ description
++ price
* Order
++ owner
++ order: []
++ address
++ phone
++ totalCost
++ isPaid
* Service
++ name
++ type
++ price
++ description
++ images
* Schedule
++ owner
++ service
++ date
++ time
++ totalCost
++ isDone
* Pet
++ owner
++ name
++ birthday
++ age
++ male
++ type
++ images
++ videos
++ description
++ vaccinationRecord
++ medicalRecord
* Competition
++ competitor: [{pet, vote}]
++ time
++ result
### Landing Page
N/A
### High-Level Sprint Planning
**Week 0: Key Functionality Backend**
* Users can register and sign up for the site.
* Users can browse products and services.
* Users can add to cart, order & pay, product filter by name & category.
* Users can book a service.
* Users can gain more point in term of membership program.
* Users can create pet profiles.
* Admin can create, update new products and services.
* Admin can update final cost and status from a service booking
* Competition backend
**Week 1: E-com Frontend**
* Set up frontend
* Chooste template, color, style and flow (frontend)
* Users can execute at least 4 core functions above
**Week 2: Competition Frontend**
* User can execute the rest functions
* Admin can create a competition Pet of the Year
* Users can join the competition