E-commerce for fitness and sports equipment.
Production:
- https://fifa-fitnest.agnuramdan.com
- https://fifa-fitnest.mohammadfarizan.com
- https://fifa-fitnest.fikrialwan.com
- https://fifa-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
- Review product
- 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:
- Misc
- Prettier
- ESLint
- React Router DOM
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 on 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 |
{
"_id": "abc123",
"brandId": "nike123",
"name": "Nike Tiempo",
"descripton": "Some details about\nthe product",
"imageUrl": "https://fitnest/imags/filename.jpeg",
"price": 1500000,
"createdAt": "",
"updatedAt": ""
}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": ""
}{
"_id": "cartproduct123",
"productId": "product123",
"cartId": "cart123",
"quantity": 3
}{
"_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": "abc123",
"productId": "nike123",
"userId": "user123",
"rating": 4,
"message": "Message about product",
"createdAt": "",
"updatedAt": ""
}{
"_id": "abc123",
"name": "First Last",
"email": "[email protected]",
"password": "sadw1231ceasdav4qwq",
"createdAt": "",
"updatedAt": ""
}