Skip to content

Arobaczewski/eCommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›’ Robos Wishlist - Full-Stack Ecommerce Portfolio

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 Status React Tailwind CSS Vite

🌟 Live Demo

View Live Project β†’

πŸ“‹ Table of Contents

🎯 Project Overview

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.

Why This Project Stands Out

  • 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

✨ Key Features

πŸ›οΈ Core Ecommerce Functionality

  • 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

🎨 User Experience

  • 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

πŸ“§ Communication Features

  • 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

πŸ”§ Advanced Features

  • 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

πŸ’» Technical Skills Demonstrated

React Fundamentals

  • 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

Advanced React Patterns

  • 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

Routing & Navigation

  • React Router: Dynamic routing with useParams()
  • Nested Routes: Complex routing structure
  • Route Protection: Conditional navigation logic
  • URL Management: SEO-friendly URLs and navigation

State Management

  • Global State: Context API for cart, favorites, checkout
  • Local State: Component-level state management
  • State Persistence: localStorage integration
  • State Synchronization: Multiple components sharing state

Form Handling

  • 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

Modern JavaScript

  • 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

πŸ› οΈ Technologies Used

Frontend Framework

  • React 18 - Component-based UI library
  • Vite - Fast build tool and development server
  • React Router DOM - Client-side routing

Styling & Design

  • Tailwind CSS - Utility-first CSS framework
  • Lucide React - Modern icon library
  • Custom CSS - Additional styling and animations

State Management

  • React Context API - Global state management
  • localStorage - Client-side data persistence

Email Integration

  • EmailJS - Email service for contact forms and checkout

Development Tools

  • ESLint - Code linting and formatting
  • Git - Version control
  • npm - Package management

⚑ Installation & Setup

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn package manager
  • Git

Local Development

  1. Clone the repository

    git clone https://github.com/yourusername/robos-wishlist.git
    cd robos-wishlist
  2. Install dependencies

    npm install
  3. 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
  4. Start development server

    npm run dev
  5. Build for production

    npm run build

EmailJS Setup

  1. Create account at EmailJS
  2. Set up email service (Gmail, Outlook, etc.)
  3. Create email templates for:
    • Contact form notifications
    • Auto-reply confirmations
    • Order confirmations
  4. Add your credentials to .env file

πŸ“ Project Structure

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

πŸ—οΈ Component Architecture

Core Components

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

Page Components

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

πŸ”„ State Management

Context Providers

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

State Patterns Used

  • 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

πŸ“± Responsive Design

Mobile-First Approach

  • Tailwind CSS breakpoints: sm:, md:, lg:, xl:
  • Touch-friendly interface elements
  • Optimized mobile navigation
  • Responsive grid layouts

Key Responsive Features

  • Collapsible Navigation: Mobile hamburger menu
  • Flexible Grids: Adaptive product layouts
  • Touch Interactions: Mobile-optimized buttons and inputs
  • Readable Typography: Scalable text across devices

πŸš€ Future Enhancements

Backend Integration

  • Database: PostgreSQL for product and user data
  • API: Node.js/Express REST API
  • Authentication: User accounts and order history
  • Payment Processing: Stripe integration

Advanced Features

  • 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

Performance Optimizations

  • Code Splitting: Lazy loading of components
  • Image Optimization: WebP format and lazy loading
  • Caching: Service worker implementation
  • Bundle Analysis: Webpack bundle optimization

πŸ‘¨β€πŸ’» About the Developer

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

Why Hire Me?

  • 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

πŸ“ž Contact

Let's connect and discuss opportunities!

Other Portfolio Projects


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!