A modern manufacturing management system for tracking product production, inventory management, and customer orders. Built with Next.js 14, Supabase, and shadcn/ui with a clean white and orange color scheme.
- 🔐 Authentication - Secure email/password authentication with Supabase Auth
- 📊 Dashboard - Real-time metrics for active orders, pending requests, and low stock alerts
- 👥 Customer Management - Add, edit, and manage customer information
- 📦 Inventory Management - Track items with quantity adjustments and low stock alerts
- 🏭 Product Management - Create products with bill of materials (item requirements)
- 🔄 Manufacturing Workflow - Complete order lifecycle from request → start → complete/cancel
- 📉 Inventory Deduction - Automatic inventory management when manufacturing starts/cancels
- Primary: Orange (#FF6B35)
- Background: White (#FFFFFF)
- Status Badges:
- Requested: Light orange
- In Progress: Solid orange
- Completed: Green
- Cancelled: Gray
- Frontend: Next.js 14 (App Router, TypeScript)
- Backend/Database: Supabase (PostgreSQL, Auth, Real-time)
- UI Components: shadcn/ui (Tailwind CSS based)
- State Management: React Server Components + Server Actions
- Authentication: Supabase Auth (email/password)
npm install- Go to supabase.com and create a new project
- Wait for the project to be ready (~2 minutes)
- Go to Settings > API and copy:
- Project URL
- anon/public key
Create a .env.local file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here- Go to your Supabase project dashboard
- Click on SQL Editor in the left sidebar
- Create a new query
- Copy the contents of
supabase/schema.sqland paste it - Click Run to execute the SQL
This will create:
- All required tables (customers, items, products, product_items, manufacturing_orders, inventory_transactions)
- Custom types (order_status, transaction_type)
- Functions and triggers
- Row Level Security (RLS) policies
npm run devOpen http://localhost:3000 in your browser.
- Navigate to
/signup - Enter your email, name, and password
- Check your email for verification (if email confirmation is enabled in Supabase)
- Log in and start using the application
src/
├── app/
│ ├── (dashboard)/ # Protected dashboard routes
│ │ ├── dashboard/ # Main dashboard
│ │ ├── customers/ # Customer management
│ │ ├── items/ # Inventory management
│ │ ├── products/ # Product management
│ │ └── manufacturing/ # Manufacturing orders
│ ├── login/ # Login page
│ └── signup/ # Signup page
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── dashboard/ # Dashboard components
│ ├── customers/ # Customer components
│ ├── items/ # Item components
│ ├── products/ # Product components
│ └── manufacturing/ # Manufacturing components
├── lib/
│ ├── supabase/ # Supabase client configuration
│ ├── contexts/ # React contexts (Auth)
│ ├── actions/ # Server actions
│ └── utils.ts # Utility functions
└── types/
└── database.types.ts # TypeScript types
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ REQUESTED │ ──> │ IN_PROGRESS │ ──> │ COMPLETED │
└─────────────┘ └──────────────┘ └───────────────┘
│ │
│ │
v v
┌─────────────────────────────────────┐
│ CANCELLED │
└─────────────────────────────────────┘
- Create Order - Select customer, product, and quantity
- Start Manufacturing - Inventory is automatically deducted
- Complete - Mark order as finished
- Cancel - If in_progress, inventory is restored
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintMIT