E-commerce for fitness and sports equipment.
Production:
- https://fitnest.agnuramdan.com
- https://fitnest.mohammadfarizan.com
- https://fitnest.fikrialwan.com
- https://fitnest.nurikhwan.com
Local:
Production:
https://api.kontenbase.com/query/api/v1/19877131-8b2f-4e7a-91fc-db45066dea23
- Products showcase
- Detail product
- Show products by brand
- Filter products by category
- Search products
- See cart page
- Add to cart
- Checkout cart
- Authorization user
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 |
- HTML
- CSS
- Tailwind CSS
- JavaScript
- TypeScript
- Node.js & npm
- React
- Vite v3
- React Router v6
- Vite v3
- Data Fetching
- REST API:
swr
&axios
- REST API:
- State Management
- Recoil
- Misc
- Prettier
- ESLint
Install dependencies:
npm install
Run server in development mode:
npm run dev
Build for production:
npm run build
Start in production mode:
npm start
This project is deployed on Netlify, you can check the website in the about section or visit fifa-fitnest.netlify.app.
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 |
GET | /categories?$lookup=* |
Get all categories |
POST | /categories/ |
Create category |
PATCH | /categories/:id |
Patch category |
DELETE | /categories/:id |
Delete category |
GET | /sizeCategory?$lookup=* |
Get all sizeCategory |
POST | /sizeCategory/ |
Create sizeCategory |
PATCH | /sizeCategory/:id |
Patch sizeCategory |
DELETE | /sizeCategory/:id |
Delete sizeCategory |
GET | /carts?$lookup=* |
Get all carts |
POST | /carts/ |
Create cart |
PATCH | /carts/:id |
Patch cart |
DELETE | /carts/:id |
Delete cart |
GET | /checkout?$lookup=* |
Get all checkout |
POST | /checkout/ |
Create checkout |
PATCH | /checkout/:id |
Patch checkout |
DELETE | /checkout/:id |
Delete checkout |
{
"_id": "abc123",
"brandId": "nike123",
"name": "Nike Tiempo",
"descripton": "Some details about\nthe product",
"imageUrl": "https://fitnest/imags/filename.jpeg",
"price": 1500000,
"createdAt": "",
"updatedAt": ""
}
{
"_id": "abc123",
"productId": ["productID"],
"userId": "user123",
"isCheckout": false,
"createdAt": "",
"updatedAt": ""
}
{
"_id": "abc123",
"name": "Adidas",
"description": "Some details about\nthe brand",
"imageUrl": "https://fitnest/images/filename.jpeg",
"createdAt": "",
"updatedAt": ""
}
{
"_id": "abc123",
"productId": "nike123",
"sizeQuantityId": "l123",
"userId": "user123",
"isCheckout": false,
"createdAt": "",
"updatedAt": ""
}
{
"_id": "abc123",
"productId": "nike123",
"size": "40",
"quantity": 50,
"createdAt": "",
"updatedAt": ""
}
{
"_id": "6354f63fdadc42808a40f60d",
"address": "Jalan Raya",
"carts": ["6354f63fdadc42808a40f60d"],
"city": "Bandung",
"createdAt": "2022-10-23T08:08:14.012Z",
"name": "Agung",
"phone": 8573947183201,
"postalCode": 40291,
"province": "Jawa Barat",
"userId": "6353a32cdadc42808a40f59a"
}
{
"_id": "abc123",
"name": "First Last",
"email": "firstlast@user.com",
"password": "sadw1231ceasdav4qwq",
"createdAt": "",
"updatedAt": ""
}