Full-stack • 2026 • Completed
Kenzat
Kenzat is an Arabic web store for custom hoodies. The project combines a customer storefront, cart and orders, user accounts, and an admin dashboard for products, images, catalogs, colors, sizes, ready-made designs, and print positions.
Problem
The project needed more than a simple product page. It had to manage customizable product details such as colors, sizes, print positions, designs, and cart choices, while keeping the Arabic customer experience clear and the store data editable from an admin dashboard.
Solution
The backend was built as a Laravel API with Sanctum authentication, admin-protected routes, and rate limiting for registration, login, and design uploads. The frontend uses React, Vite, React Query, and Zustand, with caching for public storefront data and cache invalidation when products or store content change.
Result
The result is a working store that lets users view products, choose color, size, design, and print position, then add the configured item to the cart. The admin dashboard covers product, catalog, design, size, and order status management, with a technical foundation that considers security and performance.
Deliverables
- Arabic storefront for custom hoodie products
- Cart and checkout preview flow
- Account registration and login with Laravel Sanctum
- Admin product, image, price, and currency management
- Product catalog, color, and size management
- Ready-made design and print position management
- Order status and customer data management
- Rate limiting for registration, login, and design upload routes
- Public storefront caching with invalidation after updates
- Client-side image optimization before upload
Results and metrics
- Scope
- Store + admin dashboard
- Security
- Sanctum + rate limiting
- Performance
- Cache + React Query
Arabic customer interface plus admin tools for products, orders, and settings
API authentication, admin role protection, and request limits for sensitive flows
Cached storefront data and frontend request management to avoid unnecessary loading
Project gallery





