Skip to content

agnuramdan/fitnest

 
 

Repository files navigation

Fitnest

E-commerce for fitness and sports equipment.

References

Links

Frontend

Production:

Local:

Backend

Production:

  • https://api.kontenbase.com/query/api/v1/19877131-8b2f-4e7a-91fc-db45066dea23

Design

Main Features

  • Products showcase
  • Detail product
  • Show products by brand
  • Filter products by category
  • Search products
  • See cart page
  • Add to cart
  • Checkout cart
  • Review product
  • Authorization user

Team Members

Name Role GitHub URL
Fikri Alwan R. Lead, Frontend, Design @fikrialwan
Nur Ikhwan Frontend, Design @ikhwanmachmud
Muhamad Agung Nur R. Frontend, Design @agnuramdan
Mohammad Farizan Frontend, Design @mohammadfarizan

Tech Stack

Commerce

  • HTML
  • CSS
    • Tailwind CSS
  • JavaScript
    • TypeScript
  • Node.js & npm
  • React
    • Vite v3
      • React Router v6
  • Data Fetching
    • REST API: swr & axios
  • Misc
    • Prettier
    • ESLint
    • React Router DOM

Development

Install dependencies:

npm install

Run server in development mode:

npm run dev

Build for production:

npm run build

Start in production mode:

npm start

Deployment

This project is deployed on Netlify, you can check the website on the about section or visit fifa-fitnest.netlify.app.

REST API Endpoints

HTTP Endpoint Description
GET /brands?$lookup=* Get all brands
POST /brands/ Create brand
PATCH /brands/:id Patch brand
DELETE /brands/:id Delete brand
GET /products?$lookup=* Get all products
POST /products/ Create product
PATCH /products/:id Patch product
DELETE /products/:id Delete product

Data Model

Product

{
  "_id": "abc123",
  "brandId": "nike123",
  "name": "Nike Tiempo",
  "descripton": "Some details about\nthe product",
  "imageUrl": "https://fitnest/imags/filename.jpeg",
  "price": 1500000,
  "createdAt": "",
  "updatedAt": ""
}

Cart

Simple:

{
  "_id": "abc123",
  "products": ["abc123", "abc123"],
  "isCheckout": false,
  "userId": "user123",
  "createdAt": "",
  "updatedAt": ""
}

Complete:

{
  "_id": "abc123",
  "cartProducts": [
    {
      "_id": "cartproduct123",
      "productId": "product123",
      "cartId": "cart123",
      "quantity": 3
    }
  ],
  "userId": "user123",
  "isCheckout": false,
  "createdAt": "",
  "updatedAt": ""
}

CartProduct

{
  "_id": "cartproduct123",
  "productId": "product123",
  "cartId": "cart123",
  "quantity": 3
}

Brand

{
  "_id": "abc123",
  "name": "Adidas",
  "description": "Some details about\nthe brand",
  "imageUrl": "https://fitnest/images/filename.jpeg",
  "createdAt": "",
  "updatedAt": ""
}

Category

{
  "_id": "abc123",
  "productId": "nike123",
  "sizeQuantityId": "l123",
  "userId": "user123",
  "isCheckout": false,
  "createdAt": "",
  "updatedAt": ""
}

SizeQuantity

{
  "_id": "abc123",
  "productId": "nike123",
  "size": "40",
  "quantity": 50,
  "createdAt": "",
  "updatedAt": ""
}

Review

{
  "_id": "abc123",
  "productId": "nike123",
  "userId": "user123",
  "rating": 4,
  "message": "Message about product",
  "createdAt": "",
  "updatedAt": ""
}

User

{
  "_id": "abc123",
  "name": "First Last",
  "email": "firstlast@user.com",
  "password": "sadw1231ceasdav4qwq",
  "createdAt": "",
  "updatedAt": ""
}

About

E-commerce for fitness and sports equipment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.1%
  • HTML 2.9%
  • JavaScript 2.5%
  • Other 0.5%