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.
- 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
User.Furnixy.mp4
- 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
Admin.Furnixy.mp4
- 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
- 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
- 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
- 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
- Biome: Fast linter and formatter
- Husky: Git hooks for code quality
- Commitlint: Conventional commit messages
- Lint-staged: Pre-commit linting
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
- 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
- Users can have multiple cart products
- Products can belong to multiple categories
- Transactions contain multiple cart products
- Cart products reference both users and transactions
- PHP 8.2+
- Node.js 18+
- Composer
- SQLite (or MySQL/PostgreSQL)
-
Clone the repository
git clone <repository-url> cd furnixy
-
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install # or pnpm install -
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
touch database/database.sqlite php artisan migrate php artisan db:seed
-
Storage setup
php artisan storage:link
-
Build assets
npm run build # or for development npm run dev -
Start the development server
php artisan serve
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- Browse Products: Visit the homepage to see featured products
- Search & Filter: Use the search bar and category filters
- View Details: Click on products to see detailed information
- Add to Cart: Select quantity and add items to cart
- Checkout: Review cart and complete purchase
- View History: Check transaction history in your profile
- Login: Use admin credentials to access admin features
- Add Products: Create new furniture products with images
- Manage Inventory: Update product details and stock levels
- Monitor Sales: View transaction reports and analytics
- Category Management: Organize products with categories
- External AI service integration for intelligent product search
- Confidence-based filtering for relevant results
- Real-time search with debounced input
- Automatic furniture category detection using Roboflow API
- Image analysis for product categorization
- Fallback to manual category selection
Run the test suite:
# PHP tests
php artisan test
# Frontend tests (if configured)
npm run test# 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- PHP 8.2+
- Web server (Apache/Nginx)
- SQLite or MySQL/PostgreSQL
- Node.js 18+ (for asset building)
- 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
- Primary: Warm brown tones (#914F1E)
- Secondary: Cream and beige (#F7DCB9)
- Typography: Dark gray (#1F1F1F) with secondary gray (#707070)
- Display: Large headings for hero sections
- Headings: H1-H6 for content hierarchy
- Body: Regular text with proper line height
- Small: Captions and metadata
- 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
- 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PSR-12 for PHP code
- Use Biome for TypeScript/React formatting
- Write meaningful commit messages
- Add tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Laravel framework and community
- React ecosystem and contributors
- Tailwind CSS for the design system
- All open-source libraries used in this project
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 🪑✨