Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cobbinma/booking-platform
Table Booking Platform 🍹
https://github.com/cobbinma/booking-platform
Last synced: 10 days ago
JSON representation
Table Booking Platform 🍹
- Host: GitHub
- URL: https://github.com/cobbinma/booking-platform
- Owner: cobbinma
- Created: 2020-07-18T06:44:38.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-04-13T16:41:49.000Z (over 1 year ago)
- Last Synced: 2024-10-12T13:09:58.579Z (26 days ago)
- Language: Go
- Homepage:
- Size: 1.82 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# table booking platform monorepo
![](https://images.pexels.com/photos/1267708/pexels-photo-1267708.jpeg?cs=srgb&dl=four-women-sitting-on-benches-outside-building-1267708.jpg&fm=jpg)
## architecture
![](docs/platform-architecture.png)
## development environment
### apis
#### venue api
used to manage venue information on the booking platform
1. Go to the `venue_api` lib directory.
1. populate `.env` file from example
1. ensure lib folder contains certs (see below)
1. run `make dev` to run api and postgres instance in docker-compose#### booking api
used to manage bookings on the platform
1. Go to the `booking_api` lib directory.
1. populate `.env` file from example
1. ensure lib folder contains certs (see below)
1. run command `make postgres` to create an instance of the booking database in docker-compose
1. run command `cargo run` to start api locally#### gateway api
graphql api used to receive requests from clients and forward them to gRPC apis
1. Go to the `gateway_api` lib directory.
1. populate `.env` file from example
1. ensure lib folder contains certs (see below)
1. run command `make local` to start api locally##### certificate generation
APIs need a public and private key to communicate with each other.
Run the following command to generate certificates. Place them in the individual API folders.```shell
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:4096 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
```### user interfaces
#### booking ui
a front end client that allows users to make bookings
1. Go to the `booking_ui` lib directory.
1. Run `make dev` to install dependencies, generate graphql code and run user interface.#### admin ui
a front end client that allows venue administrators to make service changes
1. Go to the `admin_ui` lib directory.
1. Run `make dev` to install dependencies, generate graphql code and run user interface.