A modern Point of Sale (POS) system built with React, Express, and PostgreSQL. ProSaleManager helps businesses manage their inventory, track sales, and handle product pricing with multiple unit types.
-
🏪 Product Management
- Multiple unit pricing (per piece, three piece, dozen)
- Stock tracking
- Category management
- Supplier management
-
💰 Sales Management
- Purchase orders
- Dynamic pricing based on unit types
- Real-time stock updates
-
🎨 Modern UI
- Professional theme with light/dark mode support
- Responsive design using Tailwind CSS
- Beautiful component library with Radix UI
-
🔒 Secure Authentication
- Session-based authentication
- Role-based access control
- Secure password handling with bcrypt
- Node.js (v20 or higher)
- PostgreSQL (v16)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/ProSaleManager.git
- Install dependencies:
npm install
# or
yarn install
- Set up environment variables:
DATABASE_URL=postgresql://username:password@localhost:5432/prosalemanager
PORT=5000
- Initialize the database:
npm run db:generate # Generate migrations
npm run db:migrate # Run migrations
npm run seed # (Optional) Seed demo data
Start the development server:
npm run dev
This will start:
- Frontend development server with Vite
- Backend Express server with hot reload
- TypeScript type checking
npm run build
This will:
- Build the React frontend
- Bundle the Express backend
- Generate production assets
The application includes a robust deployment pipeline with:
- Pre-deployment database backups
- Environment validation
- Database migration checks
- Progressive rollout support
- Health checks and monitoring
-
Frontend
- React
- TypeScript
- Tailwind CSS
- Radix UI Components
- React Query
- Zustand (State Management)
- React Hook Form
- React Router
-
Backend
- Express.js
- PostgreSQL
- Drizzle ORM
- Zod (Validation)
- Passport.js (Authentication)
├── client/ # Frontend React application
├── server/ # Express backend
├── db/ # Database schema and migrations
├── migrations/ # Generated database migrations
└── dist/ # Production build output
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.