A modern, fully-functional ecommerce website built with React showcasing advanced front-end development skills. This project demonstrates comprehensive knowledge of React ecosystem, state management, responsive design, and real-world application architecture.
- Project Overview
- Key Features
- Technical Skills Demonstrated
- Technologies Used
- Installation & Setup
- Project Structure
- Component Architecture
- State Management
- Responsive Design
- Future Enhancements
- Contact
Robos Wishlist is a personal ecommerce portfolio project featuring items I genuinely want to purchase. This isn't just a generic ecommerce template - every product represents real interests, making the project authentic and demonstrating attention to detail in content curation.
Built in 3 weeks while learning React and modern web development practices, this project showcases rapid learning ability and practical application of new technologies.
- Authentic Content: Real wishlist items, not placeholder products
- Production-Ready Features: Cart persistence, email integration, responsive design
- Advanced Functionality: Search, filtering, dynamic routing, multi-step forms
- Professional UI/UX: Clean, modern interface with smooth interactions
- Scalable Architecture: Modular components, reusable logic, maintainable code
- Product Catalog: 18 real products across 3 categories (Technology, Apparel, Misc)
- Dynamic Product Pages: SEO-friendly URLs with product slugs
- Shopping Cart: Persistent cart with quantity management
- Favorites System: Save items with localStorage persistence
- Advanced Search: Real-time search with suggestions and filtering
- Category Filtering: Filter by category with product counts
- Multi-Sort Options: Sort by price, name, newest, popularity
- Responsive Design: Mobile-first approach, works on all devices
- Interactive Elements: Hover effects, animations, smooth transitions
- Loading States: User feedback during async operations
- Error Handling: Graceful fallbacks and user-friendly messages
- Accessibility: Semantic HTML, ARIA labels, keyboard navigation
- Contact Form: Multi-field form with validation
- Multi-Step Checkout: 3-step process with email confirmations
- EmailJS Integration: Automated emails to both customer and business
- Form Validation: Real-time validation with user feedback
- Size Selection: Apparel items require size selection
- Breadcrumb Navigation: Clear navigation hierarchy
- Search Suggestions: Dropdown with product previews
- Cart Sidebar: Slide-out cart with full functionality
- Product Recommendations: Related products with pagination
- Professional Filtering: Multiple filters working together
- Hooks Mastery: useState, useEffect, useContext, useRef
- Component Architecture: Functional components, custom hooks
- Props & State Management: Proper data flow and state updates
- Event Handling: Complex user interactions and form management
- Conditional Rendering: Dynamic UI based on application state
- Context API: Global state management for cart and favorites
- Custom Hooks: Reusable logic abstraction
- Higher-Order Components: Component composition patterns
- Error Boundaries: Graceful error handling
- Performance Optimization: Efficient re-renders and component optimization
- React Router: Dynamic routing with useParams()
- Nested Routes: Complex routing structure
- Route Protection: Conditional navigation logic
- URL Management: SEO-friendly URLs and navigation
- Global State: Context API for cart, favorites, checkout
- Local State: Component-level state management
- State Persistence: localStorage integration
- State Synchronization: Multiple components sharing state
- Controlled Components: Form inputs with React state
- Multi-Step Forms: Complex checkout flow
- Form Validation: Real-time validation and error messages
- Dynamic Forms: Conditional fields and validation rules
- ES6+ Features: Arrow functions, destructuring, template literals
- Async/Await: Promise handling and async operations
- Array Methods: map, filter, reduce for data manipulation
- Module System: Import/export and code organization
- React 18 - Component-based UI library
- Vite - Fast build tool and development server
- React Router DOM - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Modern icon library
- Custom CSS - Additional styling and animations
- React Context API - Global state management
- localStorage - Client-side data persistence
- EmailJS - Email service for contact forms and checkout
- ESLint - Code linting and formatting
- Git - Version control
- npm - Package management
- Node.js (v16 or higher)
- npm or yarn package manager
- Git
-
Clone the repository
git clone https://github.com/yourusername/robos-wishlist.git cd robos-wishlist
-
Install dependencies
npm install
-
Set up environment variables Create a
.env
file in the root directory:VITE_EMAILJS_SERVICE_ID=your_service_id VITE_EMAILJS_TEMPLATE_ID=your_template_id VITE_AUTO_REPLY_TEMPLATE_ID=your_auto_reply_template VITE_INQUIRY_TEMPLATE_ID=your_inquiry_template VITE_EMAILJS_PUBLIC_ID=your_public_key
-
Start development server
npm run dev
-
Build for production
npm run build
- Create account at EmailJS
- Set up email service (Gmail, Outlook, etc.)
- Create email templates for:
- Contact form notifications
- Auto-reply confirmations
- Order confirmations
- Add your credentials to
.env
file
src/
βββ Components/ # Reusable UI components
β βββ Grids/ # Product grid components
β β βββ HomeGrids.jsx
β β βββ ProductGrid.jsx
β β βββ RecommendedGrids.jsx
β βββ Cart.jsx # Shopping cart sidebar
β βββ Dropdown.jsx # Navigation dropdown
β βββ FilterBar.jsx # Product filtering component
β βββ Footer.jsx # Site footer
β βββ Header.jsx # Site header with search
β βββ ProductCard.jsx # Individual product card
β βββ Products.js # Product data and utilities
β βββ ScrollToTop.jsx # Utility component
β βββ SearchResults.jsx # Search results page
βββ Context/ # React Context providers
β βββ CartContext.jsx
β βββ CheckoutContext.jsx
β βββ FavoritesContext.jsx
βββ Pages/ # Main application pages
β βββ About.jsx # About page
β βββ Category.jsx # Category listing page
β βββ Checkout.jsx # Multi-step checkout
β βββ Contact.jsx # Contact form
β βββ FavoritesPage.jsx
β βββ Home.jsx # Homepage
β βββ NotFound.jsx # 404 page
β βββ ProductDetail.jsx # Individual product page
β βββ ProductPage.jsx # Product listing with filters
βββ Pictures/ # Product images and assets
β βββ apparel/
β βββ technology/
β βββ misc/
β βββ logos/
βββ CSS/ # Global styles
β βββ index.css
βββ App.jsx # Main application component
βββ main.jsx # Application entry point
Header.jsx
- Global navigation with search functionality
- Real-time search suggestions with product previews
- Mobile-responsive design with hamburger menu
- Cart and favorites counters
ProductCard.jsx
- Reusable product display component
- Conditional size selection for apparel
- Favorites toggle functionality
- Add to cart with validation
Cart.jsx
- Slide-out cart sidebar
- Quantity management
- Item removal and cart clearing
- Persistent state with localStorage
FilterBar.jsx
- Advanced product filtering
- Multiple sort options
- Category filtering with counts
- Search functionality with real-time results
ProductDetail.jsx
- Dynamic product pages using useParams()
- Image gallery with multiple views
- Size selection for apparel items
- Breadcrumb navigation
- Related product recommendations
Checkout.jsx
- Multi-step checkout process
- Form validation and error handling
- Email integration for confirmations
- Order summary and review
CartContext
- Global cart state management
- Persistent cart with localStorage
- Cart operations (add, remove, update, clear)
- Cart sidebar visibility control
FavoritesContext
- User favorites management
- localStorage persistence
- Favorites operations and checking
CheckoutContext
- Multi-step form management
- Form data persistence
- Step navigation control
- Global State: Cart, favorites, user preferences
- Local State: Form inputs, UI interactions, loading states
- Derived State: Calculations, filtered data, computed values
- State Persistence: localStorage for cart and favorites
- Tailwind CSS breakpoints:
sm:
,md:
,lg:
,xl:
- Touch-friendly interface elements
- Optimized mobile navigation
- Responsive grid layouts
- Collapsible Navigation: Mobile hamburger menu
- Flexible Grids: Adaptive product layouts
- Touch Interactions: Mobile-optimized buttons and inputs
- Readable Typography: Scalable text across devices
- Database: PostgreSQL for product and user data
- API: Node.js/Express REST API
- Authentication: User accounts and order history
- Payment Processing: Stripe integration
- Product Reviews: User ratings and comments
- Inventory Management: Stock tracking and notifications
- Order Tracking: Real-time order status updates
- Recommendation Engine: AI-powered product suggestions
- Code Splitting: Lazy loading of components
- Image Optimization: WebP format and lazy loading
- Caching: Service worker implementation
- Bundle Analysis: Webpack bundle optimization
Alexander Robaczewski - Aspiring Full-Stack Developer
- Background: 8+ years in tech sales and management
- Current Focus: Full-stack web development
- Learning Journey: Codecademy Full-Stack Development Course
- Strengths: Quick learner, user-focused design, business acumen
- Rapid Learning: Built this entire application in 3 weeks while learning React
- Business Mindset: Understand user needs and business requirements
- Attention to Detail: Professional UI/UX and code quality
- Real-World Experience: Management and customer service background
- Genuine Passion: Career changer who chose development deliberately
Let's connect and discuss opportunities!
- LinkedIn: Alexander Robaczewski
- GitHub: Arobaczewski
- Email: alexander.robaczewski@gmail.com
- Location: Chicago, Illinois
- Tip Calculator - Clean, responsive utility app
- Weather Music App - Spotify integration with weather API
This project represents my journey from tech sales to web development. Every line of code demonstrates my commitment to learning, growing, and building exceptional user experiences.
β If you like this project, please give it a star!