Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Furnixy - Furniture E-commerce Platform

Furnixy is a modern furniture e-commerce platform built with Laravel 11 and React 18, featuring an intelligent product recommendation system powered by AI. The platform provides a seamless shopping experience for customers while offering comprehensive management tools for administrators.

🚀 Features

Customer Features

Description

  • Product Browsing: Browse furniture products with advanced search and filtering capabilities
  • AI-Powered Search: Intelligent product search using external AI service for better results
  • Product Recommendations: Related product suggestions based on AI analysis
  • Shopping Cart: Add products to cart with quantity management
  • Checkout System: Complete purchase transactions with stock validation
  • Transaction History: View past purchases with detailed information
  • User Authentication: Secure registration and login system

Demo

User.Furnixy.mp4

Admin Features

Description

  • Product Management: Create, edit, and delete furniture products
  • AI Category Detection: Automatic category detection using Roboflow API when uploading product images
  • Category Management: Organize products with multiple categories
  • Transaction Monitoring: View all customer transactions with filtering options
  • Stock Management: Real-time inventory tracking
  • Image Upload: Drag-and-drop image upload with automatic processing

Demo

Admin.Furnixy.mp4

Technical Features

  • Responsive Design: Mobile-first approach with Tailwind CSS
  • Real-time Updates: Live search with debounced input
  • Image Carousel: Swiper.js integration for product showcases
  • Form Validation: Comprehensive client and server-side validation
  • Role-based Access: Secure admin and user role management
  • Database Transactions: ACID compliance for critical operations

🛠️ Tech Stack

Backend

  • Laravel 11: PHP framework with Inertia.js for SPA-like experience
  • SQLite: Lightweight database for development and testing
  • Laravel Sanctum: API authentication
  • Laravel Breeze: Authentication scaffolding
  • Pest: Testing framework

Frontend

  • React 18: Modern React with hooks and functional components
  • TypeScript: Type-safe JavaScript development
  • Inertia.js: Server-side routing with client-side rendering
  • Tailwind CSS: Utility-first CSS framework
  • Vite: Fast build tool and development server

UI Components & Libraries

  • Headless UI: Accessible UI components
  • Radix UI: Low-level UI primitives
  • Lucide React: Beautiful icon library
  • React Hook Form: Performant form handling
  • React Select: Advanced select components
  • Swiper: Modern slider/carousel
  • Sonner: Toast notifications
  • React Dropzone: File upload handling

Development Tools

  • Biome: Fast linter and formatter
  • Husky: Git hooks for code quality
  • Commitlint: Conventional commit messages
  • Lint-staged: Pre-commit linting

📁 Project Structure

furnixy/
├── app/
│   ├── Http/
│   │   ├── Controllers/          # API controllers
│   │   ├── Middleware/           # Custom middleware
│   │   └── Requests/            # Form request validation
│   └── Models/                  # Eloquent models
├── database/
│   ├── migrations/              # Database schema
│   └── seeders/                 # Sample data
├── resources/
│   ├── js/
│   │   ├── Components/          # Reusable React components
│   │   ├── Layouts/             # Page layouts
│   │   ├── Pages/               # Page components
│   │   ├── types/               # TypeScript type definitions
│   │   └── Lib/                 # Utility functions
│   └── css/                     # Global styles
├── routes/                      # Application routes
└── public/                      # Static assets

🗄️ Database Schema

Core Tables

  • users: User accounts with role-based access (admin/user)
  • products: Furniture product information
  • categories: Product categories (Chair, Sofa, Table, etc.)
  • product_categories: Many-to-many relationship between products and categories
  • cart_products: Shopping cart items linked to users
  • transactions: Purchase records with total pricing

Key Relationships

  • Users can have multiple cart products
  • Products can belong to multiple categories
  • Transactions contain multiple cart products
  • Cart products reference both users and transactions

🔧 Installation & Setup

Prerequisites

  • PHP 8.2+
  • Node.js 18+
  • Composer
  • SQLite (or MySQL/PostgreSQL)

Installation Steps

  1. Clone the repository

    git clone <repository-url>
    cd furnixy
  2. Install PHP dependencies

    composer install
  3. Install Node.js dependencies

    npm install
    # or
    pnpm install
  4. Environment setup

    cp .env.example .env
    php artisan key:generate
  5. Database setup

    touch database/database.sqlite
    php artisan migrate
    php artisan db:seed
  6. Storage setup

    php artisan storage:link
  7. Build assets

    npm run build
    # or for development
    npm run dev
  8. Start the development server

    php artisan serve

🔑 Environment Variables

Add these to your .env file:

# Database
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database/database.sqlite

# AI Services (Optional)
ROBOFLOW_API_KEY=your_roboflow_api_key
ROBOFLOW_API_URL=your_roboflow_api_url

# External AI Search Service
AI_SEARCH_SERVICE_URL=http://127.0.0.1:5000/search

🎯 Usage

For Customers

  1. Browse Products: Visit the homepage to see featured products
  2. Search & Filter: Use the search bar and category filters
  3. View Details: Click on products to see detailed information
  4. Add to Cart: Select quantity and add items to cart
  5. Checkout: Review cart and complete purchase
  6. View History: Check transaction history in your profile

For Administrators

  1. Login: Use admin credentials to access admin features
  2. Add Products: Create new furniture products with images
  3. Manage Inventory: Update product details and stock levels
  4. Monitor Sales: View transaction reports and analytics
  5. Category Management: Organize products with categories

🤖 AI Integration

Product Search

  • External AI service integration for intelligent product search
  • Confidence-based filtering for relevant results
  • Real-time search with debounced input

Category Detection

  • Automatic furniture category detection using Roboflow API
  • Image analysis for product categorization
  • Fallback to manual category selection

🧪 Testing

Run the test suite:

# PHP tests
php artisan test

# Frontend tests (if configured)
npm run test

📦 Production Deployment

Build for Production

# Install dependencies
composer install --optimize-autoloader --no-dev
npm ci

# Build assets
npm run build

# Cache configuration
php artisan config:cache
php artisan route:cache
php artisan view:cache

Server Requirements

  • PHP 8.2+
  • Web server (Apache/Nginx)
  • SQLite or MySQL/PostgreSQL
  • Node.js 18+ (for asset building)

🔒 Security Features

  • CSRF Protection: Laravel's built-in CSRF protection
  • SQL Injection Prevention: Eloquent ORM with parameterized queries
  • XSS Protection: Input sanitization and output escaping
  • Role-based Access: Middleware-based authorization
  • Secure File Upload: Validated image uploads with proper storage

🎨 Design System

Color Palette

  • Primary: Warm brown tones (#914F1E)
  • Secondary: Cream and beige (#F7DCB9)
  • Typography: Dark gray (#1F1F1F) with secondary gray (#707070)

Typography Scale

  • Display: Large headings for hero sections
  • Headings: H1-H6 for content hierarchy
  • Body: Regular text with proper line height
  • Small: Captions and metadata

📱 Responsive Design

  • Mobile-first: Optimized for mobile devices
  • Breakpoints: sm (640px), md (768px), lg (1024px), xl (1280px)
  • Grid System: CSS Grid and Flexbox for layouts
  • Touch-friendly: Appropriate touch targets for mobile

🚀 Performance Optimizations

  • Lazy Loading: Images loaded on demand
  • Code Splitting: Route-based code splitting with Vite
  • Caching: Laravel's built-in caching mechanisms
  • Database Indexing: Optimized database queries
  • Asset Optimization: Minified CSS and JavaScript

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Follow PSR-12 for PHP code
  • Use Biome for TypeScript/React formatting
  • Write meaningful commit messages
  • Add tests for new features

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Laravel framework and community
  • React ecosystem and contributors
  • Tailwind CSS for the design system
  • All open-source libraries used in this project

📞 Support

For support and questions:

  • Create an issue in the repository
  • Check the documentation
  • Review the code comments for implementation details

Furnixy - Elevate Your Space, Redefine Your Comfort 🪑✨

About

Full-stack Laravel e-commerce platform for furniture sales, featuring responsive design, secure payments, and personalized shopping experiences.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages