Transform your living space with AI-powered interior design. Upload a photo of your room and get instant, personalized design suggestions. Fast, affordable, and DIY-friendly.
- AI-Powered Design Analysis: Upload room photos and get instant design suggestions
- Personalized Recommendations: Tailored suggestions based on room type, size, and style preferences
- Visual Redesign: See your room transformed with AI-generated redesigns
- Product Catalog: Curated furniture and decor from trusted brands
- User Authentication: Secure login with email verification
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Performance Optimized: Fast loading with image compression and lazy loading
- Security Enhanced: Rate limiting, input validation, and secure authentication
- Accessibility: WCAG compliant with keyboard navigation and screen reader support
- SEO Optimized: Meta tags, structured data, and performance optimization
- Error Handling: Comprehensive error boundaries and user-friendly error messages
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI + shadcn/ui
- Authentication: Firebase Auth
- AI Integration: Google AI (Gemini)
- State Management: React Hooks + Context
- Form Handling: React Hook Form + Zod
- Testing: Jest + React Testing Library
- Code Quality: ESLint + Prettier + Husky
- Node.js 18+
- npm 8+
- Firebase project
- Google AI API key
-
Clone the repository
git clone https://github.com/your-username/artistry-ai.git cd artistry-ai -
Install dependencies
npm install
-
Environment Configuration
cp env.example .env.local
Update
.env.localwith your configuration:# Firebase Configuration NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id NEXT_PUBLIC_FIREBASE_APP_ID=your-app-id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-storage-bucket NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-auth-domain NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-sender-id FIREBASE_API_KEY=your-api-key # Google AI Configuration GOOGLE_AI_API_KEY=your-google-ai-api-key # Application Configuration NEXT_PUBLIC_APP_URL=http://localhost:9002 NEXT_PUBLIC_APP_NAME=Artistry AI # Rate Limiting RATE_LIMIT_MAX_REQUESTS=10 RATE_LIMIT_WINDOW_MS=60000 # File Upload MAX_FILE_SIZE=10485760 ALLOWED_FILE_TYPES=image/jpeg,image/png,image/webp # Analytics NEXT_PUBLIC_GA_MEASUREMENT_ID=your-ga-id
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:9002
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage- Unit tests for components and utilities
- Integration tests for AI flows
- E2E tests for critical user journeys
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run typecheck # Run TypeScript checks
npm run format # Format code with Prettier
npm run format:check # Check code formatting
# Testing
npm run test # Run tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage
# Analysis
npm run analyze # Analyze bundle size
# AI Development
npm run genkit:dev # Start Genkit development server
npm run genkit:watch # Start Genkit in watch modesrc/
βββ app/ # Next.js App Router pages
β βββ design/ # Design upload and analysis
β βββ redesign/ # AI redesign visualization
β βββ products/ # Product catalog
β βββ login/ # Authentication
βββ components/ # Reusable UI components
β βββ ui/ # Base UI components
β βββ layout/ # Layout components
βββ hooks/ # Custom React hooks
βββ lib/ # Utilities and configurations
βββ ai/ # AI integration and flows
βββ types/ # TypeScript type definitions
- Follow TypeScript best practices
- Use functional components with hooks
- Implement proper error handling
- Write comprehensive tests
- Follow accessibility guidelines
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on push to main branch
The app is configured for standalone output and can be deployed to:
- Netlify
- AWS Amplify
- Google Cloud Run
- Docker containers
- Environment variable validation
- Input sanitization and validation
- Rate limiting for API endpoints
- Secure authentication with Firebase
- XSS protection headers
- CSRF protection
- Content Security Policy
- Never commit sensitive data to version control
- Regularly update dependencies
- Monitor for security vulnerabilities
- Implement proper error handling
- Use HTTPS in production
- Image compression and optimization
- Lazy loading for components
- Code splitting and tree shaking
- Bundle size optimization
- Caching strategies
- CDN integration
- Core Web Vitals tracking
- Performance monitoring
- Error tracking and logging
- User analytics
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
- All changes require review
- Tests must pass
- Code must follow style guidelines
- Documentation must be updated
This project is licensed under the MIT License - see the LICENSE file for details.
- Check the documentation
- Search existing issues
- Create a new issue for bugs or feature requests
- Join our Discord server
- Follow us on Twitter
- Subscribe to our newsletter
- Next.js for the amazing framework
- Tailwind CSS for the utility-first CSS
- Radix UI for accessible components
- Firebase for authentication and hosting
- Google AI for AI capabilities
Made with β€οΈ by the Artistry AI Team