A modern, responsive e-commerce web application built with React 19, Vite, and Tailwind CSS.
JHAY HUB uses the Fake Store API to retrieve product data and provide a realistic online shopping experience while demonstrating modern React development practices.
The project was built to strengthen my understanding of React fundamentals, reusable component architecture, state management, routing, API integration, responsive design, UI/UX principles, and frontend best practices.
๐ Live Preview: JHAY HUB
๐ GitHub Repository: JhayCodesDev/react-ecommerce-jhayhub
- ๐ Browse available products
- ๐ Search for products
- ๐ Browse products by category
- ๐ View detailed product information
- ๐๏ธ Add products to the shopping cart
- โ Increase and decrease cart quantities
- ๐๏ธ Remove products from the cart
- ๐พ Persist cart data using Local Storage
- ๐ Dark and Light mode
- ๐ฑ Fully responsive design
- ๐ฑ Responsive mobile navigation
- ๐ Toast notifications
- โฌ๏ธ Back-to-top button
- โก Custom loading state
โ ๏ธ Custom API and network error handling- ๐ซ Custom 404 Not Found page
- ๐จ Custom category images
- ๐ผ๏ธ Custom favicon
- ๐ Basic SEO optimization
- ๐งฉ Reusable React components
- ๐จ Custom design system and CSS utilities
The JHAY HUB interface was refined through a combination of custom development, responsive testing, and UI analysis.
Google Stitch was used as a UI analysis and design reference tool to explore possible improvements to the application's interface and user experience.
The final implementation was developed and customized manually in React and Tailwind CSS, with a focus on:
- Clear visual hierarchy
- Responsive layouts
- Consistent spacing and typography
- Reusable design tokens
- Light and Dark themes
- Accessible navigation
- Consistent interactive states
- Mobile usability
- Practical and maintainable component architecture
The goal was to use UI analysis as a reference while maintaining full control over the application's implementation and codebase.
- React 19 โ UI development
- Vite 7 โ Development environment and build tool
- JavaScript (ES6+) โ Application logic
- Tailwind CSS 4 โ Styling and responsive design
- React Router โ Client-side routing
- React Icons โ Icon library
- React Hook Form โ Form handling
- React Toastify โ Toast notifications
- Context API โ Global state management
- Fake Store API โ Product data
- Prettier โ Code formatting
- Google Stitch โ UI/UX analysis and design reference
- Vercel โ Deployment
react-ecommerce-jhayhub/
โ
โโโ public/
โ โโโ 404-page.png
โ โโโ cart.png
โ โโโ dark-mode.png
โ โโโ home.png
โ โโโ light-mode.png
โ โโโ mobile-navigation.png
โ โโโ product-details.png
โ โโโ shop.png
โ
โโโ src/
โ โ
โ โโโ assets/
โ โ โโโ ...
โ โ
โ โโโ components/
โ โ โโโ About.jsx
โ โ โโโ CategoryCard.jsx
โ โ โโโ ErrorMessage.jsx
โ โ โโโ Footer.jsx
โ โ โโโ Hero.jsx
โ โ โโโ Loading.jsx
โ โ โโโ Login.jsx
โ โ โโโ NavBar.jsx
โ โ โโโ ProductCard.jsx
โ โ โโโ ScrollToTop.jsx
โ โ โโโ SearchBar.jsx
โ โ โโโ SignUp.jsx
โ โ โโโ ...
โ โ
โ โโโ context/
โ โ โโโ AuthContext.jsx
โ โ โโโ CartContext.jsx
โ โ โโโ ThemeContext.jsx
โ โ
โ โโโ Pages/
โ โ โโโ Cart.jsx
โ โ โโโ Electronics.jsx
โ โ โโโ FeaturedProduct.jsx
โ โ โโโ Home.jsx
โ โ โโโ Jewelry.jsx
โ โ โโโ Mens.jsx
โ โ โโโ NotFound.jsx
โ โ โโโ ProductDetails.jsx
โ โ โโโ Shop.jsx
โ โ โโโ WhyChooseUs.jsx
โ โ โโโ Womens.jsx
โ โ
โ โโโ App.jsx
โ โโโ main.jsx
โ โโโ index.css
|
โโโ package.json
โโโ vite.config.js
โโโ README.md
โโโ ...
git clone https://github.com/JhayCodesDev/react-ecommerce-jhayhub.gitcd react-ecommerce-jhayhubnpm installnpm run devThe application will be available at the local development URL provided by Vite.
JHAY HUB uses the Fake Store API to retrieve product information.
API Endpoint:
https://fakestoreapi.com/products
The application fetches product data from the API and uses it to populate product listings, categories, search results, and product detail pages.
Because the application depends on an external API, JHAY HUB includes custom error handling for situations such as:
- API request failures
- Network connectivity problems
- Unexpected API responses
- Empty or unavailable product data
When a connection problem occurs, users receive a custom error message prompting them to refresh the page or check their network connection.
Building and refining JHAY HUB strengthened my understanding of:
- React component architecture
- Reusable component design
- State management with Context API
- React Hooks such as
useState,useEffect, anduseContext - React Router navigation
- Fetching and displaying API data
- Conditional rendering
- Search and filtering logic
- Responsive UI development
- Dark and Light theme implementation
- Local Storage
- Loading and error states
- Custom API and network error handling
- Toast notifications
- Mobile navigation
- Accessible navigation
- UI/UX analysis and implementation
- Maintaining a scalable React application
Planned enhancements include:
- Offline fallback using local JSON data when the Fake Store API is unavailable
- Persist fetched products in Local Storage to reduce unnecessary API requests
- Product sorting by price, popularity, and newest
- Wishlist functionality
- Backend-based user authentication
- Checkout and payment integration
- Product reviews and ratings
- Pagination and lazy loading
- Further performance optimization
- Unit and integration testing
JHAY HUB is part of my journey toward becoming a skilled software developer through building practical, production-style applications.
The project focuses on clean architecture, maintainable code, responsive design, reusable components, and a strong user experience.
- ๐ GitHub: @JhayCodesDev
- ๐ฆ Twitter: @JhayCodes
- ๐ธ Instagram: @jhaycodes_
- ๐ผ LinkedIn: Joshua Odusanya
This project is licensed under the MIT License.
โญ If you found this project interesting, feel free to explore the repository and follow my development journey.







