A comprehensive ERP system for Tabsons (antenna dishes ODM manufacturer) with two plants support.
tabsons-erp/
├── backend/ # Node.js + Express + Prisma API
├── frontend/ # React + Tailwind CSS SPA
├── task.md # Project requirements
├── Beggining.md # Detailed specifications
└── README.md # This file
- Authentication & Users: Login/logout, role-based permissions (Admin, Accountant, Sales, Warehouse)
- Dashboard: Today's sales, pending receivables, low stock alerts, quick shortcuts
- Products & Inventory: CRUD operations, stock management, multi-warehouse support
- Customers & Vendors: Contact management, opening balances, payment history
- Sales Module: Invoice creation, returns, receipts, PDF generation
- Purchase Module: Bills, returns, payments, auto stock addition
- Accounting: Chart of accounts, ledger, trial balance, P&L, balance sheet
- Reports: PDF/Excel export capabilities
- Frontend: React 18 + TypeScript + Tailwind CSS + React Router
- Backend: Node.js + Express + TypeScript + Prisma ORM
- Database: PostgreSQL
- Authentication: JWT tokens
- Deployment: Ready for Railway/Render (backend) + Vercel/Netlify (frontend)
- Node.js 18+
- PostgreSQL 14+
- npm or yarn
- Navigate to backend directory:
cd backend- Install dependencies:
npm install- Set up environment variables:
cp .env.example .envEdit .env with your database URL and JWT secrets:
DATABASE_URL="postgresql://username:password@localhost:5432/tabsons_erp"
JWT_SECRET="your-super-secret-jwt-key"
JWT_REFRESH_SECRET="your-super-secret-refresh-key"
PORT=4000
NODE_ENV="development"
FRONTEND_URL="http://localhost:3000"
- Generate Prisma client:
npx prisma generate- Run database migrations:
npx prisma migrate dev --name init- Start development server:
npm run devThe API will be available at http://localhost:4000
- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Start development server:
npm run devThe frontend will be available at http://localhost:3000
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/products- List productsPOST /api/products- Create productGET /api/products/:id- Get productPUT /api/products/:id- Update productDELETE /api/products/:id- Delete product
GET /api/customers- List customersPOST /api/customers- Create customerGET /api/customers/:id- Get customerPUT /api/customers/:id- Update customerDELETE /api/customers/:id- Delete customer
GET /api/sales- List sales invoicesPOST /api/sales- Create sales invoice
The application uses the following main entities:
- Company, Plant, Warehouse (multi-location support)
- Products, Stock Movements (inventory tracking)
- Customers, Vendors (contacts)
- Sales, Sales Items (sales management)
- Purchase, Purchase Items (procurement)
- Accounts, Journal Entries (accounting)
- Users, Roles (authentication)
See backend/prisma/schema.prisma for complete schema.
- ✅ Authentication system
- ✅ Products management
- ✅ Customer management
- ✅ Sales invoice creation
- ✅ Inventory auto-update
- Purchase management
- Basic accounting
- Dashboard widgets
- Reports with PDF export
- Multi-warehouse advanced features
- Manufacturing/BOM support
- E-commerce integration
- Auto reminders (SMS/Email)
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is proprietary to Tabsons.