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 installRun server in development mode:
npm run devBuild for production:
npm run buildStart in production mode:
npm startThis 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": "[email protected]",
"password": "sadw1231ceasdav4qwq",
"createdAt": "",
"updatedAt": ""
}