๐๏ธ ๐๏ธ The Ticket App Microservices Backend is an efficient Node.js and Typescript-based solution that uses microservices, NATS streaming, and Kubernetes deployment for ticketing apps.
To get a local copy up and running, follow these steps.
In order to run this project you need:
To run this project, you will need to add the following environment variables to your secrets.yaml file
JWT_KEY
: string, JSON web token secret (Example: JwtKey)
SALT_FACTORY
: number of rounds to create salt for hashing ( Example: 10 )
STRIPE_KEY
: your stripe API key to handle the payment
Note: All environment variables must be encoded in base64 format.
Setup Ingress-Nginx Controller, refer to the documentation for instructions. This will guide you through the process of setting it up correctly to handle incoming traffic.
Clone this repository to to your preferred directory:
cd my-folder
git clone https://github.com/ahmedeid6842/Tickets.git
Install this project with kubectl :
kubectl apply -f ./infra/k8s
After following the above instructions, the Kubernetes cluster should be up and running.
kubectl get all
ticketing.dev/api/users/currentuser
and BOOM! ๐ฅ You should see the microservices working like a charm. โจ๐งโโ๏ธNote: the reason you are receiving
{"currentUser":null}
is because you are not currently logged in. However, this indicates that the services are operational and functioning properly.
Here is the link to the Postman documentation for Tickets: Postman Docs - Tickets.
Ahmed Eid ๐โโ๏ธ
We're always looking to improve this project! ๐ If you notice any issues or have ideas for new features, please don't hesitate to submit a pull request ๐ or create a new issue ๐ก. Your contribution will help make this project even better! โค๏ธ ๐ช
If you find this project helpful, I would greatly appreciate it if you could leave a star! ๐ ๐
Understanding of concurrency issues and techniques to mitigate them.
Development of a good interface and base classes using TypeScript to enhance code organization and reusability.
Configuration and use of a message broker to facilitate event sharing between microservices.
Creation of a robust architecture for the microservices cluster using Kubernetes.
There is always something new to learn ๐จโ๐ป.