A comprehensive quote and bid management system built with React, TypeScript, and Supabase for seamless backend integration.
- User Authentication: Secure email/password authentication with Supabase Auth
- Quote Management: Create, edit, and track quotes with real-time updates
- Product Catalog: Comprehensive product management with inventory tracking
- Customer Management: Complete customer profiles with analytics
- Cross-Reference System: Multi-dimensional part number lookup
- Cost Analysis: Advanced margin calculation and pricing tools
- Real-time Updates: Live synchronization across all users
- Responsive Design: Mobile-first design that works on all devices
- Frontend: React 18 + TypeScript + Tailwind CSS
- Backend: Supabase (PostgreSQL + Real-time + Auth)
- Build Tool: Vite
- Icons: Lucide React
- State Management: React Context + Supabase hooks
- Node.js 18+
- npm or yarn
- Supabase account (free tier available)
- Node.js 16+
- npm or yarn
- Supabase account
- Linux server (Ubuntu 20.04+ recommended)
- Docker 20.10+
- Docker Compose 1.29+
- 4GB RAM, 2 CPU cores minimum
- 20GB free disk space
New to the project? Start with our comprehensive local setup guide:
β Local Deployment Guide β RECOMMENDED FOR FIRST-TIME SETUP
This step-by-step guide includes:
- Installing all required tools (Node.js, Git, Docker)
- Setting up Supabase (cloud or local)
- Configuring the application
- Running database migrations
- Creating your first user
- Troubleshooting common issues
For a complete self-hosted deployment with Supabase on Docker, follow our comprehensive guide:
β Self-Hosted Quick Start Guide - Get up and running in 5 minutes!
# One-command setup
sudo ./scripts/setup-selfhosted.shThis includes:
- Complete Supabase stack (PostgreSQL, Auth, REST API, Realtime, Storage, Studio)
- Automated database setup and migrations
- Secure key generation
- SSL certificate setup
- Health monitoring
See also:
- Self-Hosted Deployment Guide - Detailed architecture and configuration
- Database Setup Guide - Database schema and migrations
- Quick Reference Guide - Common commands and tasks
git clone <repository-url>
cd quote-bid-management-tool
npm install-
Create a new Supabase project at supabase.com
-
Run the database migrations:
- Go to your Supabase dashboard
- Navigate to SQL Editor
- Copy and run the contents of
supabase/migrations/001_initial_schema.sql - Then run
supabase/migrations/002_seed_data.sqlfor sample data
-
Configure Authentication:
- In Supabase dashboard, go to Authentication > Settings
- Disable email confirmations for development (optional)
- Configure any additional auth providers if needed
-
Get your Supabase credentials:
- Go to Settings > API
- Copy your Project URL and anon/public key
- Copy the environment template:
cp .env.example .env- Update your
.envfile:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_APP_NAME=QuoteMaster Pro
VITE_APP_VERSION=1.0.0
VITE_APP_ENVIRONMENT=developmentnpm run devThe application will be available at http://localhost:5173
The application uses the following main tables:
- profiles - User profiles extending Supabase auth
- customers - Customer management
- customer_users - Customer contacts
- products - Product catalog
- inventory_levels - Stock management
- quotes - Quote management
- quote_line_items - Quote line items
- cross_references - Part number cross-references
- price_breaks - Supplier pricing tiers
- reservations - Inventory reservations
- cost_analysis - Cost analysis data
- Row Level Security (RLS) enabled on all tables
- User-based data isolation - users can only access their own data
- Secure authentication with Supabase Auth
- API key protection through environment variables
- Email/password sign up and sign in
- Secure session management
- Protected routes
- Create and edit quotes
- Real-time collaboration
- PDF generation
- Status tracking (Draft, Sent, Won, Lost, etc.)
- Visual product browser
- Real-time inventory levels
- Advanced search and filtering
- Price break management
- Performance metrics
- Win/loss analysis
- Historical trends
- Profitability tracking
- Multi-dimensional part lookup
- Customer-specific part numbers
- Usage frequency tracking
- Build the application:
npm run build-
Deploy to your preferred platform:
- Netlify: Connect your repository and set environment variables
- Vercel: Import project and configure environment variables
- Other platforms: Upload the
distfolder
-
Configure environment variables on your deployment platform with the same values from your
.envfile
Your Supabase project is already configured and ready. No additional deployment needed for the backend.
src/
βββ components/
β βββ auth/ # Authentication components
β βββ layout/ # Header, Navigation
β βββ quote/ # Quote management
β βββ catalog/ # Product catalog
β βββ customer/ # Customer management
β βββ management/ # Quote management
βββ context/ # React Context providers
βββ hooks/ # Custom React hooks
βββ lib/ # Supabase client and utilities
βββ types/ # TypeScript type definitions
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Database changes: Add migrations to
supabase/migrations/ - API functions: Add to
src/lib/supabase.ts - React hooks: Create custom hooks in
src/hooks/ - Components: Follow existing patterns in
src/components/
-
Supabase connection errors:
- Verify your environment variables
- Check Supabase project status
- Ensure RLS policies are correctly configured
-
Authentication issues:
- Check if email confirmation is disabled for development
- Verify auth settings in Supabase dashboard
-
Data not loading:
- Check browser console for errors
- Verify RLS policies allow data access
- Ensure user is properly authenticated
- Check the browser console for detailed error messages
- Review Supabase logs in the dashboard
- Ensure all environment variables are correctly set
- Database indexing: Indexes are created for frequently queried columns
- Real-time subscriptions: Used judiciously to avoid excessive updates
- Lazy loading: Components load data as needed
- Caching: Supabase client handles caching automatically
If migrating from an existing system:
- Export existing data to CSV format
- Transform data to match the new schema
- Use Supabase dashboard to import data
- Run data validation queries to ensure integrity
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Check the documentation
- Review existing issues
- Create a new issue with detailed information
QuoteMaster Pro - Professional quote management made simple with Supabase integration.