Redwash App is a web-based application to help vechile wash business with the concept booking system, built on Codeigniter 3. This application is now a personal project used as an architectural systems experiment.
This application has basic features on the booking system:
- Can do customers registration.
- Make a booking for the vehicle you want to wash.
- Display the order of the vechiles that are being processed.
- Washing process reminder via email.
To activate all systems in this project, make sure our computer has Docker installed.
Install the systems with script (recommended).
./install_script.sh
If the systems is running properly it will appear like the following message.
[~] Run Docker Compose
Creating rabbitmq ... done
Creating mysql_redwash ... done
Creating notification_service ... done
Creating auth_notif_service ... done
Creating phpmyadmin_redwash ... done
Creating redwash_web ... done
Applications that can be accessed after running
App | URL |
---|---|
Redwash App | 127.0.0.1:8084 |
phpmyadmin | 127.0.0.1:8085 |
RabbitMQ Manager | 127.0.0.1:15682 |
App | username | password | role |
---|---|---|---|
Redwash App | akuntesting | 12341234 | user |
karyawan1 | karyawan1 | employee | |
phpmyadmin | root | secret | - |
RabbitMQ Manager | admin | admin | - |
On this system there is a notification service, to view the notification service process can be seen by command.
For Notification Service
docker logs notification_service -f
For Auth Notification Service
docker logs auth_notif_service -f
To shutdown the entire system that is already running, you can use the following command.
docker-compose down -v
Note:
-v
is mean for delete the volume was created before. Make you you didn't delete important data was you input on MySQL container.
Here is the architecture
- In this repository the Redwash App runs in the Docker environment
- Notification Service is written in Python.
- Web App can only send a message without receive response from service.
- Exchange is used when a message is needed to be sent to more than one Queue.
- Exchange can route a message conditionally, in this scenario it only use Direct Routing.
- Booking and Update Booking used asynchronous request for email messaging.
- Reset Password and Registration used synchronous request for email messaging.
MIT
Best regards, Rafi Khalish