/ticketing-app

This is a Microservice for Ticketing application built with React, Node, Docker and Kubernetes

Primary LanguageTypeScriptMIT LicenseMIT

Ticketing App

This is a Microservice for Ticketing application built with React, Node, Docker and Kubernetes

Table of Contents

Technologies

  • Node JS - Node.js® is an open-source, cross-platform JavaScript runtime environment.
  • ReactReact is a free and open-source front-end JavaScript library for building user interfaces based on components.
  • Docker Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.
  • Kubernetes Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
  • [Skaffold] (https://skaffold.dev/docs/getting-started/) A tool that facilitates continuous development for Kubernetes applications.

Getting Started

Installation

    # clone repo
    git clone https://github.com/officialyenum/ticketing-app.git

Resources

  • USERS
    • email : string
    • password : string
  • TICKET
    • title : string
    • price : number
    • userId : Ref to user resource
    • orderId : Ref to order resource
  • ORDER
    • userId : Ref to the user resource
    • status : Enum "Created"|"Cancelled"|"Awaiting Payment"|"Completed"|
    • ticketId : Ref to the ticket resource
    • expiresAt : Date
  • CHARGE
    • orderId : Ref to Order resource
    • status : Enum "Created"|"Failed"|"Completed"|
    • amount : number
    • stripeId : string
    • stripeRefundId : string

Services

  • Auth Micro App :
    • Everything Relating to user signup/signin/signout
  • Tickets :
    • Ticket Creation/Editing.
    • Knows whether a ticket can be updated
  • Orders : Order Creation/Editing.
  • Expirations :
    • Watches For Orders to be created,
    • Cancels them after 15 minutes
  • Payments :
    • Handles Credit Card Payments
    • Cancels Orders if payments fails,
    • Completes if payment succeeds

Events

  • User :
    • UserCreated
    • UserUpdated
  • Order :
    • OrderCreated
    • OrderCancelled
    • OrderExpired
  • Ticket :
    • TicketCreated
    • TicketUpdated
  • Charge :
    • ChargeCreated

Running the app

# install Docker, Kubernetes and Skaffold on your machine

# skaffold app
$   brew install skaffold
# navigeate to your application and run 
$   skaffold dev 

Testing

# run tests
$   npm test

Usage

This is the basic flow of the application.

  • Register
  • Login

Support

Ticketing App is an MIT-licensed open source project. If you'd like to support please :

yenum



Stay in touch

License

Ticketing App is MIT licensed.

Documentation

  • None Yet

Deployment

This project is not yet hosted

Limitations

  • None Yet