Git Product home page Git Product logo

microservices-ticketing's Introduction

Microservices: Ticketing application

Quickstart

Requirements: ingress-nginx enabled, skaffold

  • GCE/GCK:
    • skaffold dev
  • Minikube
    1. Rebuild images: docker build -f <path/to/Dockerfile> -t <tag> .
    2. Push to Docker hub: docker push -t <tag>
    3. Update image values in k8s config files
    4. skaffold dev

Features

  • Production grade authentication
  • Production grade event bus
  • Authenticated users can list a ticket for an event for sale
  • Authenticated users can buy tickets listed by others
  • Athenticated user can edit the tickets their listed
  • Ticket Lock with timer
    • "Lock" ticket for 15 minutes when user attempts to purchase it
    • No other user can purchase a ticket while it is locked
    • Ticket price can't be edited while it is locked

Resources

User Ticket Order Charge
email: string title: string userId: ref to User orderId: ref to Order
password: string price: number status: Created/Canceled/AwaitingPayment/Completed status: Created/Completed/Failed
userId: ref to User ticketId: Ref to Ticket amount: number
orderId: ref to Order expiresAt: Date stripeId: string
stripeRefundId: string

Services

Service
auth sign-up/in/out
tickets Ticket creation/editing
orders Order creation/editing
expiration Watched for order to be created. Cancels them after 15 minutes
payments Handles credit card payments. Cancels orders if payment fails, completes if payment succeeds.
NATS Streaming Server "event bus"

Events

Tests

In each /services/<service> folders: yarn && yarn run test

microservices-ticketing's People

Contributors

sripwoud avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.