Skip to content

A ticket buy and sell app with node microserices best practices, nats streamming server, typescript, nextjs, testing, and complete integration with docker and kubernetes.

License

Notifications You must be signed in to change notification settings

RobinHaider/ticketing-microservice-node

Repository files navigation

Ticketing Microservices with Node

A complete and production-ready microservice project built with Node.js that implements industry-standard best practices, including asynchronous communication and unit testing. Using github workflow for deployment in Digital Ocean. This project can be used as a reference or starting point for creating your own microservices.

Features

  • Authentication system with sign-up and login functionality (Auth Service)
  • Ability for users to add tickets for sale (Tickets Service)
  • Ability for users to purchase tickets (Orders Service)
  • Payment processing for ticket purchases (Payment Service)
  • Expiration service that automatically cancels orders that have not been paid for after a set period of time (Expiration Service)

Services

  • Auth Service
  • Tickets Service
  • Orders Service
  • Payment Service
  • Expiration Service
  • Common Module

Tech Stack

Client: React, NextJs

Server: Node, Express, MongoDB

Deployment: Docker, Kubernetes, Github Action

Kubernetes: Deployment, ClusterIp Service, Load balancer, Ingress-nginx,

Installation

Clone the repository. Install docker and enable kubernetes. Install Skaffold Cli.

Edit your host file (if windows "C:\Windows\System32\drivers\etc\hosts"). Add this

  127.0.0.1 ticketing.com

Then inside blog-micoservices-node/infra/ingress-nginx/ run

  kubectl apply -f ingress-controller.yaml

Then in root folder run

  skaffold dev

Now visit

  ticketing.com:81

About

A ticket buy and sell app with node microserices best practices, nats streamming server, typescript, nextjs, testing, and complete integration with docker and kubernetes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published