Skip to content

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

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors