This project aims to model a comprehensive database system for a company, referred to as Supply Pro, that produces various products and distributes them to customers using a supply chain consisting of railways and trucks. The system's primary functions include order management, train scheduling, route planning, and driver/assistant roster management, along with various reporting functionalities.
- Products: Represents the various products produced by Company A.
- Customers: Includes wholesalers, retailers, and end customers.
- Train Trips: Stores information about each train trip, including capacity allocation.
- Orders: Tracks customer orders and their associated products.
- Cities: Represents the main cities where goods are distributed.
- Stores: Locations near railway stations where order goods are stored.
- Trucks: Information about the trucks used for deliveries.
- Routes: Predefined routes that trucks follow for deliveries.
- Drivers: Information about truck drivers.
- Driver Assistants: Details about driver assistants.
- Roster constraints for drivers and driver assistants.
- Order placement restrictions (7 days prior).
- Maximum work hours for drivers and driver assistants.
- Train capacity allocation and order scheduling.
- The database assumes that certain details not explicitly provided, such as specific product attributes or driver/assistant information, are available.
- At least 40 orders with 10 different routes should be manually inserted for data population.
- Train schedules with defined capacities must be created manually.
- Procedures, functions, and triggers can be employed to enforce business rules, calculate working hours, and automate certain tasks to ensure ACID properties.
- Indexing should be implemented where necessary to optimize query performance, especially for frequently accessed columns like order IDs, customer IDs, and date fields.
- Clone this repository.
- Set up your preferred database management system (e.g., MySQL, PostgreSQL).
- Create the necessary tables, relationships, and constraints based on the provided database design.
- Manually insert data for products, customers, orders, train schedules, trucks, routes, drivers, and driver assistants.
- Implement any required procedures, functions, or triggers.
- Connect MySQL Server using your credentials to Express
- Set up Relevant CRUD Operations using Axios from React to Express Server
- Run 'npm install' to install dependencies and 'npm start' to run the React Development Server
.