-
This simple version of ticketing platfrom that people could buy and sell tickets related to different events. fault tolerant and decopuled as no dependecny between services.
-
This is application is fully tested , production ready, scalable, fault tolerance
- Users create account and create and update tickets
- Users could buy and sell tickets
- Users could see past orders and state of every order
- Users use credit cards to pay for tickets
- Auth: responsible for creating accounts and checking if user logged in and checking if user has account or not
- Tickets: responsible for creating , deleting , updating , show tickets to Users
- orders: responsible for creating and cancelling orders related to tickets
- expiration : responsible for cancelling orders if no payment submitted for specific order in 10 minutes
- payments: responsible for handling payment for orders that already valid for payments
- common/shared: not a service but code that every service need and accessible as npm package: @shatatickets/shared
Client: React, NextJs, Bootstrap.
Server: Node, Express, Typescript.
Infrastructure: Docker, Kubernetes, Skaffold, Nginx.
Event Streaming/Messaging: NATs.
Testing: Jest, Github Actions.
To run this project, you will need to add the following environment variables to your K8s files or add them as secrets to k8s Pods by apply :
kubectl create secret generic my-secret --from-literal=my-key=my-value
JWT_Key
STRIPE_KEY
- to start the project easily: use skaffold and you want to add to host file :
ticketing.dev:127.0.0.1
- start skaffold in root directory: skaffold dev
skaffold dev
To run tests :
- You should reach directory of each service , then run:
npm run test