A comprehensive procurement requisition system built for 1PWR to manage purchase requests and orders.
- User authentication with role-based access control
- Purchase request creation and management
- Purchase order tracking
- Multi-organization support
- Document management
- Approval workflow
- User management
- Reference data management
- Departments
- Currencies
- Units of Measure (UOM)
- Vendors
- Project Categories
- Expense Types
- Organization management
- CRUD operations for all reference data types
- Code-based ID generation for currencies and UOM
- Duplicate prevention for codes
- Active/Inactive status tracking
- Organization-specific data filtering
- React with TypeScript
- Tailwind CSS for styling
- Shadcn UI components
- Redux for state management
- React Router for navigation
- Firebase
- Authentication
- Firestore Database
- Storage
- Functions
- Express.js for API endpoints
- Vite for development and building
- ESLint for code linting
- PostCSS for CSS processing
src/
├── components/ # React components
│ ├── admin/ # Admin-specific components
│ ├── common/ # Shared components
│ ├── pr/ # PR-specific components
│ └── ui/ # UI components
├── config/ # Configuration files
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries
├── scripts/ # Database scripts
├── services/ # API services
├── store/ # Redux store
├── styles/ # Global styles
└── types/ # TypeScript types
- Added reference data management with code-based IDs
- Implemented organization filtering for reference data
- Added validation to prevent duplicate codes
- Added success/error notifications
- Improved form validation
- Fixed ghost entry issues in reference data
- Added persistence for selected reference data type
- Node.js >= 16
- npm >= 8
- Firebase project
- Clone the repository
git clone https://github.com/yourusername/pr-system.git- Install dependencies
npm install- Set up environment variables
cp .env.example .envEdit .env with your Firebase configuration.
- Start the development server
npm run dev- Create a feature branch
- Make your changes
- Submit a pull request
Proprietary - All rights reserved