SimpleOMS is a modern, Vietnamese-language Order Management System designed to streamline business operations. Built with React and TypeScript, it provides a comprehensive solution for managing orders, suppliers, delivery points, and products with an intuitive interface and powerful features.
- Dashboard Analytics - Real-time statistics and interactive charts for business insights
- Order Management - Create, view, filter, and track orders efficiently
- Supplier Management - Maintain and organize supplier information
- Delivery Point Management - Manage delivery locations and logistics
- Product Management - Comprehensive product catalog and inventory tracking
- Excel Import/Export - Bulk data operations with Excel file support
- Authentication System - Secure user authentication and authorization
- Dark Mode Support - Toggle between light and dark themes for comfortable viewing
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite
- UI Components: shadcn/ui (Radix UI)
- Styling: Tailwind CSS
- Routing: React Router v6
- State Management: TanStack Query (React Query)
- Backend: NestJS
- Database: PostgreSQL
- Form Handling: React Hook Form with Zod validation
- Date Utilities: date-fns
- Charts: Recharts
- Icons: Lucide React
- Testing: Vitest with Testing Library
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn package manager
- Clone the repository:
git clone <YOUR_GIT_URL>
cd simpleoms- Install dependencies:
npm install- Set up environment variables:
Create a
.envfile inapps/frontend/with the following:
VITE_API_BASE_URL=http://localhost:3000/api- Start the development server:
npm run devThe application will be available at http://localhost:8080
npm run dev- Start development server with hot-reload (frontend)npm run build- Build all apps (Nx)npm run lint- Lint all apps (Nx)npm run test- Test all apps (Nx)
simpleoms/
├── apps/
│ ├── frontend/ # React SPA (Vite)
│ │ └── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── ui/ # shadcn/ui components
│ │ │ ├── layout/ # Layout components (Sidebar, Header)
│ │ │ ├── auth/ # Authentication components
│ │ │ └── dashboard/ # Dashboard-specific components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── contexts/ # React contexts (AuthContext)
│ │ ├── lib/ # Utility functions
│ │ └── services/ # Backend API service integration
│ └── backend/ # NestJS backend server
└── docs/ # Project documentation
This project uses:
- TypeScript for type safety
- ESLint for code linting
- Tailwind CSS for styling
- React Hook Form with Zod for form validation
- TanStack Query for data fetching and caching
To create a production build:
npm run buildThe optimized frontend build will be created in apps/frontend/dist/.
Run the test suite:
npm run testFor development with test watching:
npm run test:watch- 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 private and proprietary.
For issues and questions, please open an issue in the repository.