A premium B2B marketplace platform connecting global drinks brands with distributors worldwide. Built with React, TypeScript, and TailwindCSS, featuring Supabase authentication and modern animations.
- Multi-step Registration - Seamless onboarding with account details, company information, and document upload
- Authentication - Secure login/signup with Supabase integration
- Document Upload - Drag-and-drop file upload with progress tracking and preview
- Responsive Design - Optimized for mobile, tablet, and desktop devices
- Smooth Animations - Powered by Framer Motion for engaging user experience
- π― Full Product Management - Comprehensive catalog and inventory tracking
- π Price Comparison - Real-time market insights and competitive analysis
- π‘οΈ Market Restrictions - Automated compliance and regulation management
- π’ Brand Activation - Marketing tools for brand amplification
- π Alerts & Notifications - Real-time updates on orders and opportunities
- π Web Responsiveness - Seamless cross-device experience
- Background:
#121212(Dark) - Primary Accent:
#8B0000(Rich Wine Red) - Secondary Accent:
#D4AF37(Luxury Gold) - Text Color:
#F5F5F5(Light)
- Sans-serif: Inter
- Serif: Playfair Display
- Frontend Framework: React 18.2
- Language: TypeScript 5.0
- Styling: TailwindCSS 3.3
- Routing: React Router DOM 6.x
- Animations: Framer Motion 10.x
- Backend: Supabase (Auth, Database, Storage)
- File Upload: React Dropzone
- Icons: Lucide React
- Build Tool: Vite 5.x
- Node.js 18+ and npm/yarn
- Supabase account (for backend services)
```bash cd cigaty-marketplace ```
```bash npm install ```
Create a `.env` file in the root directory:
```env
VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your-anon-key-here ```
Get your Supabase credentials:
- Go to Supabase Dashboard
- Create a new project or select existing one
- Navigate to Settings β API
- Copy the URL and anon/public key
Run the following SQL in your Supabase SQL Editor:
```sql -- Create profiles table CREATE TABLE profiles ( id UUID REFERENCES auth.users PRIMARY KEY, first_name TEXT, last_name TEXT, phone TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() );
-- Create companies table CREATE TABLE companies ( id UUID DEFAULT uuid_generate_v4() PRIMARY KEY, user_id UUID REFERENCES auth.users NOT NULL, name TEXT NOT NULL, type TEXT NOT NULL, registration_number TEXT NOT NULL, country TEXT NOT NULL, city TEXT NOT NULL, address TEXT NOT NULL, website TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() );
-- Enable Row Level Security ALTER TABLE profiles ENABLE ROW LEVEL SECURITY; ALTER TABLE companies ENABLE ROW LEVEL SECURITY;
-- Profiles policies CREATE POLICY "Users can view own profile" ON profiles FOR SELECT USING (auth.uid() = id);
CREATE POLICY "Users can update own profile" ON profiles FOR UPDATE USING (auth.uid() = id);
-- Companies policies CREATE POLICY "Users can view own company" ON companies FOR SELECT USING (auth.uid() = user_id);
CREATE POLICY "Users can insert own company" ON companies FOR INSERT WITH CHECK (auth.uid() = user_id); ```
- Go to Storage in Supabase Dashboard
- Create a new bucket named `company-docs`
- Set it as private or configure access policies as needed
```bash npm run dev ```
The application will be available at `http://localhost:5173\`
``` cigaty-marketplace/ βββ public/ # Static assets βββ src/ β βββ assets/ # Images, animations, fonts β βββ components/ # React components β β βββ common/ # Header, Footer, Layout β β βββ features/ # Feature-specific components β β βββ forms/ # Form components (Button, Input, etc.) β βββ lib/ # Supabase client and utilities β βββ pages/ # Page components β βββ styles/ # Additional styles β βββ types/ # TypeScript type definitions β βββ utils/ # Utility functions β βββ App.tsx # Main app component with routing β βββ main.tsx # Entry point β βββ index.css # Global styles with Tailwind βββ .env.example # Environment variables template βββ tailwind.config.js # Tailwind configuration βββ tsconfig.json # TypeScript configuration βββ vite.config.ts # Vite configuration ```
- Home (
/) - Hero section with features and CTAs - About Us (
/about) - Brand story, mission, values, team - Platform (
/platform) - Detailed platform features - Media (
/media) - Press releases and media resources - FAQs (
/faqs) - Frequently asked questions - Contact (
/contact) - Contact form and information - Login (
/login) - User authentication - Register (
/register) - Multi-step registration - Confirmation (
/confirmation) - Post-registration success - Dashboard (
/dashboard) - User dashboard (placeholder)
The codebase includes clearly marked TODO comments for future improvements:
- Hero Animation - Replace placeholder with 3D wine bottle or Lottie animation
- Product Grid - Integrate actual product data from database
- Dashboard - Complete dashboard implementation with analytics
- Platform Screenshots - Replace placeholder images with actual screenshots
- Map Integration - Add Google Maps or similar service to Contact page
- Social Auth - Implement Google and Facebook OAuth
- Email Integration - Connect contact form to email service
```bash
npm run dev
npm run build
npm run preview
npm run lint ```
Edit `tailwind.config.js`:
```javascript theme: { extend: { colors: { wine: '#8B0000', // Change primary color gold: '#D4AF37', // Change secondary color dark: '#121212', // Change background } } } ```
Animations are handled by Framer Motion. Edit component files to customize:
- Page transitions in `App.tsx`
- Component animations in individual page files
- Hover effects in component files
```bash npm run build ```
The built files will be in the `dist/` directory.
```bash npm install -g vercel vercel ```
```bash npm install -g netlify-cli netlify deploy --prod ```
Important: Set environment variables in your deployment platform:
- `VITE_SUPABASE_URL`
- `VITE_SUPABASE_ANON_KEY`
- Dashboard is currently a placeholder - full implementation pending
- Social authentication (Google, Facebook) is UI-only - backend integration needed
- Email notifications not yet implemented
- Product catalog requires backend data integration
This is a template project. Feel free to customize and extend it for your needs.
This project is based on a free Bootstrap template from ThemeWagon and has been completely rebuilt with React, TypeScript, and TailwindCSS.
For questions or issues:
- Email: support@cigaty.com
- Create an issue in the repository
- Original template inspiration: ThemeWagon - LiquorStore
- Icons: Lucide React
- Fonts: Google Fonts
- Images: Unsplash
Built with β€οΈ for the global drinks industry
CIGATY - Indiaβs First B2B Liquor Exchange