Transform your screen printing workflow with enterprise-grade PWA technology
π Live Demo | π Documentation | π Report Bug | π‘ Request Feature
PrintMaster Pro is a comprehensive, full-stack production management system specifically designed for screen printing businesses. Built with modern web technologies, it provides end-to-end workflow management from client intake to job completion and shipping.
- π’ Production-Ready: Enterprise-grade architecture with proper error handling and validation
- π± Progressive Web App: Mobile-responsive design with offline capabilities
- π Real-time Updates: Live Kanban board with drag-and-drop functionality
- π Advanced Analytics: Comprehensive reporting and inventory tracking
- π Secure Authentication: NextAuth.js integration with role-based access
- β‘ High Performance: Optimized for speed with proper caching strategies
- Node.js 18.0 or higher
- npm or yarn package manager
- Git for version control
# Clone the repository
git clone https://github.com/disuhitarth/printmaster-pro.git
cd printmaster-pro
# Install dependencies
npm install
# Setup environment variables
cp .env.example .env.local
# Initialize database
npm run db:setup
# Start development server
npm run devπ That's it! Open http://localhost:3000 to see your application.
| Frontend | Backend | Database | Authentication | Deployment |
|---|---|---|---|---|
| Next.js 15 | Node.js | Prisma ORM | NextAuth.js | Vercel Ready |
| React 18 | API Routes | SQLite/PostgreSQL | JWT Sessions | Docker Support |
| TypeScript | Server Actions | Database Migration | Role-based Auth | CI/CD Pipeline |
| Tailwind CSS | Zod Validation | Real-time Queries | Secure Cookies | Environment Config |
- Modern UI Components: Built with shadcn/ui and Radix UI primitives
- Responsive Design: Mobile-first approach with Tailwind CSS
- Interactive Kanban: Drag-and-drop job management with @dnd-kit
- Real-time Updates: WebSocket integration for live updates
- Progressive Web App: Offline support and installable app
- RESTful API: Clean API design with proper HTTP status codes
- Database Abstraction: Prisma ORM with type-safe queries
- Input Validation: Zod schemas for robust data validation
- Error Handling: Comprehensive error catching and reporting
- Security: CORS protection, input sanitization, and SQL injection prevention
|
π Authentication & Security
π₯ Client Management
|
π Job Management
π¦ Inventory System
|
- π Reporting Dashboard: Comprehensive analytics and KPI tracking
- π¨ Artwork Management: File upload and approval workflow
- π± Mobile Responsive: Full functionality on mobile devices
- π Export Capabilities: Excel, CSV, and PDF export options
- π Advanced Search: Global search across all entities
- π§ Notifications: Email notifications for job updates
- π·οΈ Barcode Generation: QR codes and barcodes for tracking
Coming Soon - Dashboard Screenshot
Coming Soon - Kanban Screenshot
Coming Soon - Inventory Screenshot
Create your .env.local file with the following configuration:
# Database Configuration
DATABASE_URL="file:./dev.db"
# Authentication
NEXTAUTH_SECRET="your-super-secret-jwt-key-here"
NEXTAUTH_URL="http://localhost:3000"
# Optional: Google OAuth
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# Application Settings
NEXT_PUBLIC_APP_NAME="PrintMaster Pro"# Generate Prisma client
npx prisma generate
# Push database schema
npx prisma db push
# Seed with sample data
npm run db:seed# Development server
npm run dev
# Production build
npm run build && npm start
# Type checking
npm run typecheck
# Linting
npm run lint
# Database studio
npx prisma studioerDiagram
USER ||--o{ JOB : manages
CLIENT ||--o{ JOB : orders
JOB ||--o{ PROOF : has
JOB ||--o{ ACTIVITY : tracks
INVENTORY_ITEM ||--o{ INVENTORY_TRANSACTION : records
INVENTORY_CATEGORY ||--o{ INVENTORY_ITEM : contains
USER {
string id PK
string email
string name
string role
datetime createdAt
}
CLIENT {
string id PK
string name
string email
string phone
datetime createdAt
}
JOB {
string id PK
string jobCode
string status
datetime shipDate
int qtyTotal
datetime createdAt
}
INVENTORY_ITEM {
string id PK
string sku
string name
int currentStock
int minStock
float unitCost
}
- One-click deploy using the button above
- Configure environment variables in Vercel dashboard
- Connect your database (PostgreSQL recommended for production)
- Deploy automatically on every push to main
# Build Docker image
docker build -t printmaster-pro .
# Run container
docker run -p 3000:3000 printmaster-pro# Build for production
npm run build
# Start production server
npm start- β‘ Fast Loading: Optimized bundle size and code splitting
- π Efficient Queries: Prisma optimizations and proper indexing
- π± Mobile Performance: Responsive images and lazy loading
- π― SEO Friendly: Meta tags and structured data
- π Lighthouse Score: 95+ performance score
# Unit tests
npm test
# E2E tests with Playwright
npm run test:e2e
# Type checking
npm run typecheckTest coverage includes:
- β API endpoint testing
- β Component unit tests
- β E2E workflow testing
- β Database operations
- β Authentication flows
POST /api/auth/register // User registration
POST /api/auth/signin // User login
POST /api/auth/signout // User logoutGET /api/jobs // List all jobs
POST /api/jobs // Create new job
PUT /api/jobs/[id] // Update job
DELETE /api/jobs/[id] // Delete jobGET /api/inventory // List inventory items
POST /api/inventory // Add new item
PUT /api/inventory/[id] // Update item
DELETE /api/inventory/[id] // Remove itemContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Hitarth Disu - Full Stack Developer
- π Portfolio: hitarthdisu.dev
- πΌ LinkedIn: [linkedin.com/in/hitarth-disu](#)
- π§ Email: disuhitarth@gmail.com
- π¦ Twitter: @disuhitarth
- Next.js team for the amazing framework
- Prisma for the excellent ORM
- Tailwind CSS for the utility-first CSS framework
- shadcn/ui for the beautiful component library
β Star this repo if you find it helpful!
Built with β€οΈ for the screen printing community