ka-ching-backend and ka-ching-client DO NOT come with a frontend, this project is one of the unlimited ways you could hook it up and comes with a HTMx frontend, but anything else would work 💡
This project has the purpose to demonstrate what can be easily achieved with:
This project serves as a starting point for users interested in building their own customized cash register systems. It is important to note that this demo represents just one of the countless ways to utilize the backend and client components provided. By exploring this project, you will gain insights into the core features and workflows that power a modern cash register system.
While this demo project provides a solid foundation, we encourage you to customize and adapt it to suit your specific requirements. Consider it a flexible template, ready to be tailored to your unique business needs, industry, and user preferences. By leveraging the code and concepts presented here, you can create a cash register system that aligns perfectly with your vision.
Whether you are a developer seeking inspiration or a business owner exploring the possibilities, we believe that this demo project will inspire you to craft your ideal cash register system. It is just the tip of the iceberg, representing one of the million potential directions you can take.
So, dive in, explore the code, and embark on your journey of building a cash register system that suits your aspirations. I am excited to see the innovative applications you develop using this project as your starting point. Happy coding!
- IMPORTANT
- Screenshots
- Features
- Todos
- Run locally with
Docker compose
- Local development environment (with Docker)
Click to expand
☝️ The landing page of the demo application.
☝️ The
/tenants
page of the demo application, where you can select or create a tenant.
☝️ A tenant has been created and the user is notified about it.
☝️ The
/bookings
page of the demo application, where you can deposit, withdraw and lock the cash register. Below you will see the current active bookings, be it a deposit or a withdrawal.
☝️ The
/bookings
page of the demo application with the deposit form selected.
☝️ You can see the saldo has changed after the deposit has been submitted.
☝️ Here an attempt to withdraw more money than is available in the cash register is about to be made.
☝️ Notifying the user that the withdrawal is not possible. Below you can see the current active bookings, be it a deposit or a withdrawal. Current unlocked bookings can be deleted.
- Deposit money into the cash register
- Withdraw money from the cash register
- Show the current balance of the cash register
- Lock the cash register
- Unlock last lock of the cash register 🎉
- Show AuditLogs of current year
- Prohibit double clicks / double submission (htmx throttle ftw)
- Show notifications/toasts on errors
- withdraw
- deposit
- Delete a Booking in the current activeregister
- Show notifications/toasts on errors
- locking
- deletion of a booking
For features the API backend and client bring, but aren't showcased in this demo, yet.
- Provide a way to navigate through the AuditLogs
- Detail view of a single AuditLog
- Detail view of a single Lock
- Detail view of a single Booking
Roadmap / Planned
- pagination through Lockings
- Show AuditLogs of a year of choice
- multi-tenant support
- change the tenant
- create a new tenant
- reset a tenant
- multi-currency support
- Reset everything every 30min
- csv export of Lockings
- csv export of AuditLogs
docker compose pull
docker compose build
docker compose up -d db && sleep 10 # wait for the db to be ready
docker compose run -i --rm backend bin/setup # prepare the database
docker compose up
- Clone/Download this repository
- Run
docker-compose pull
in the root directory of this repository - Run
docker-compose build
in the root directory of this repository - Now get everything up and running with
bin/dev
ka-ching-backend
is now running onlocalhost:4567
Check out what's in the /bin folder 😉
bin/reset
and when finished bin/dev
to get everything up and running again 🤷♂️