This consists of 2 sides:
- 1 Head Office
- Multiple Branch Offices
Each has the following SQL Table structure that represents product sales locally:
Using SQLite for the database with SQLAlchemy as an ORM.
- Each office can insert new product sales, edit & delete them.
- Branch offices can send the changes done to their local database to the Head Office via a RabbitMQ Broker.
- Head office can take the changes from RabbitMQ Broker & apply them to the local database.
- RabbitMQ Connection is required only when synchronizing.
Example of how to use can be found in bash scripts:
- BO1.sh: Start a Branch Office with ID
BO1
(ID Used for queue name) - BO2.sh: Start a Branch Office with ID
BO2
(ID Used for queue name) - HO.sh: Start a Branch Office with ID
HO
Can be found in requirements