π About β’ β¨ Features β’ π» Technologies β’ π Project structure β’ βοΈ Environment variables β’ π How to run β’ π License
E-Commerce store is the fornend part of this project. You can find it here. I have created this project to learn more about next js app router. I have use nextjs as fullstack framework, tailwind css as css framework, zustand as state management, shadcn/ui as ui components, axios for mutations. I know that there are many things that I can improve in this project, I will try to improve it in the future. Feel free to contribute to this project. I will be very happy if you give this project a star β.
- Persisted cart
- Product overview modal
- Search products with filters
- Add/remove products from cart
- Checkout with Stripe
- Responsive design
- Increment/decrement product quantity from cart
- Next.js v13.4 with TypeScript and app router
- Tailwind CSS
- Zustand for state management
- shadcn/ui for UI components
- Axios for mutations
- Swiper for billboard slider
βββ .eslintrc.json
βββ .gitignore
βββ README.md
βββ actions
β βββ get-billboard.ts
β βββ get-billboards.ts
β βββ get-categories.ts
β βββ get-category.ts
β βββ get-colors.ts
β βββ get-product.ts
β βββ get-products.ts
β βββ get-sizes.ts
βββ app
β βββ (routes)
β β βββ cart
β β β βββ components
β β β β βββ cart-item.tsx
β β β β βββ summary.tsx
β β β βββ error.tsx
β β β βββ loading.tsx
β β β βββ page.tsx
β β βββ category
β β β βββ [categoryId]
β β β β βββ components
β β β β β βββ filter.tsx
β β β β β βββ mobile-filter.tsx
β β β β βββ error.tsx
β β β β βββ loading.tsx
β β β β βββ page.tsx
β β β βββ error.tsx
β β β βββ loading.tsx
β β βββ error.tsx
β β βββ loading.tsx
β β βββ page.tsx
β β βββ products
β β βββ [productId]
β β β βββ error.tsx
β β β βββ loading.tsx
β β β βββ page.tsx
β β βββ error.tsx
β β βββ loading.tsx
β βββ error.tsx
β βββ favicon.ico
β βββ globals.css
β βββ layout.tsx
β βββ loading.tsx
βββ components.json
βββ components
β βββ billboard-swiper.tsx
β βββ footer.tsx
β βββ gallery
β β βββ gallery-tab.tsx
β β βββ index.tsx
β βββ info.tsx
β βββ main-nav.tsx
β βββ navbar-actions.tsx
β βββ navbar.tsx
β βββ preview-modal.tsx
β βββ product-list.tsx
β βββ ui
β βββ billboard.tsx
β βββ button.tsx
β βββ card.tsx
β βββ container.tsx
β βββ currency.tsx
β βββ dialog.tsx
β βββ heading.tsx
β βββ label.tsx
β βββ loader.tsx
β βββ no-results.tsx
β βββ product-card.tsx
β βββ radio-group.tsx
β βββ separator.tsx
β βββ sheet.tsx
β βββ tabs.tsx
βββ hooks
β βββ use-cart.ts
β βββ use-preview-modal.ts
βββ lib
β βββ utils.ts
βββ next.config.js
βββ package-lock.json
βββ package.json
βββ postcss.config.js
βββ providers
β βββ modal-providers.tsx
β βββ nprogress-provider.tsx
βββ public
β βββ next.svg
β βββ vercel.svg
βββ tailwind.config.ts
βββ tsconfig.json
βββ types.ts
- actions: Contains Redux action creators and related logic.
- app: Main application directory.
- app/routes: Contains route configurations for different pages.
- app/routes/cart: Handles cart-related functionality.
- app/routes/category: Manages category-related functionality.
- app/routes/category/categoryId: Handles category-specific functionality.
- app/routes/products: Handles products-related functionality.
- app/routes/products/productId: Manages product-specific functionality.
- components: Contains reusable UI components.
- lib: Houses utility functions and helper classes.
Create a .env.local
file in the root directory and add the following variables:
NEXT_PUBLIC_API_URL=<COPY_STORE_API_URL_FROM_ADMIN_PANEL>
- Clone this repository
git clone https://github.com/b-l-i-n-d/ecommerce-store.git
- Install dependencies
npm install
- Run the development server
npm run dev
- Open http://localhost:3000 with your browser to see the result.