Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simonneutert/ka-ching-demo
Demo project to showcase what ka-ching-backend and ka-ching-client propose as a combo 🥳
https://github.com/simonneutert/ka-ching-demo
demo demo-app starter-template template
Last synced: about 1 month ago
JSON representation
Demo project to showcase what ka-ching-backend and ka-ching-client propose as a combo 🥳
- Host: GitHub
- URL: https://github.com/simonneutert/ka-ching-demo
- Owner: simonneutert
- License: mit
- Created: 2023-06-20T20:45:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-17T13:18:51.000Z (about 2 months ago)
- Last Synced: 2024-09-17T16:31:26.721Z (about 2 months ago)
- Topics: demo, demo-app, starter-template, template
- Language: Ruby
- Homepage: https://github.com/simonneutert/ka-ching-backend
- Size: 855 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ka-ching Demo repository
## IMPORTANT
[ka-ching-backend](https://github.com/simonneutert/ka-ching-backend) and [ka-ching-client](https://github.com/simonneutert/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:
- [ka-ching-backend](https://github.com/simonneutert/ka-ching-backend)
- [ka-ching-client](https://github.com/simonneutert/ka-ching-client)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](#important)
- [Screenshots](#screenshots)
- [Features](#features)
- [Todos](#todos)
- [Run locally with `Docker compose`](#run-locally-with-docker-compose)
- [Local development environment (with Docker)](#local-development-environment-with-docker)
- [Reset the database](#reset-the-database)## Screenshots
Click to expand
![Screenshot of the demo application - landing page](./public/screenshots/1.png)
> ☝️ The landing page of the demo application.
---
![Screenshot of the demo application - select or create a tenant](./public/screenshots/2.png)
> ☝️ The `/tenants` page of the demo application, where you can select or create a tenant.
---
![Screenshot of the demo application - tenant created notification](./public/screenshots/3.png)
> ☝️ A tenant has been created and the user is notified about it.
---
![Screenshot of the demo application - action page after login for deposit, withdraw and lockings](./public/screenshots/4.png)
> ☝️ 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.
---
![Screenshot of the demo application - action page with deposit selected](./public/screenshots/5.png)
> ☝️ The `/bookings` page of the demo application with the deposit form selected.
---
![Screenshot of the demo application - action page with deposit selected](./public/screenshots/6.png)
> ☝️ You can see the saldo has changed after the deposit has been submitted.
---
![Screenshot of the demo application - action page with deposit selected](./public/screenshots/7.png)
> ☝️ Here an attempt to withdraw more money than is available in the cash register is about to be made.
---
![Screenshot of the demo application - action page with deposit selected](./public/screenshots/8.png)
> ☝️ 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.
## Features
- [x] Deposit money into the cash register
- [x] Withdraw money from the cash register
- [x] Show the current balance of the cash register
- [x] Lock the cash register
- [x] Unlock last lock of the cash register 🎉
- [x] Show AuditLogs of current year
- [x] Prohibit double clicks / double submission (htmx throttle ftw)
- [x] Show notifications/toasts on errors
- [x] withdraw
- [x] deposit
- [x] Delete a Booking in the current activeregister
- [ ] Show notifications/toasts on errors
- [ ] locking
- [ ] deletion of a booking## Todos
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 BookingRoadmap / Planned
### Not yet coded features in demo, but the backend/client provides them (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### Bonus (I may or may not code it for this demo)
- [ ] csv export of Lockings
- [ ] csv export of AuditLogs## Run locally with `Docker compose`
```bash
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
```## Local development environment (with Docker)
1. Clone/Download this repository
2. Run `docker-compose pull` in the root directory of this repository
3. Run `docker-compose build` in the root directory of this repository
4. Now get everything up and running with `bin/dev`
5. `ka-ching-backend` is now running on `localhost:4567`Check out what's in the **/bin** folder 😉
### Reset the database
`bin/reset` and when finished `bin/dev` to get everything up and running again 🤷♂️