- User is able to create a ticket
- User can make purchases on a ticket
- Ticket reserved are locked and user has only 15 minutes to pay for ticket
- Ticket reserved cannot be purchased by other users
- Server-Side Rendering using React and Next.js
- Automated testing suites for each microservice
- Handles payments using the Stripe API
- Shares common code among services using a custom [npm package]
Service | Technologies | Description |
---|---|---|
Auth | TypeScript, MySQL | Handles user regristration, logging in, signing out and resetting users passwords |
Expiration | TypeScript, Redis | Expires tickets listings once they have ran out of time remaining on the listing |
client | React, Next.js | Handles user regristration, logging in, signing out and resetting users passwords |
orders | TypeScript, MySQL | Allows users to make orders on a ticket |
Payments | TypeScript, MySQL | Allows users to pay for ticket |
tickets | TypeScript, MySQL | Saves ticket created by users |
-
Node.js - Runtime environment for JS
-
Express.js - Node.js framework, makes process of building APIs easier & faster
-
MySQL - An open-source relational database management system
-
Redis -Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.
-
Docker - A platform for developing, shipping and running applications
-
Kubernetes - An open-source system for automating deployment, scaling, and management of containerized applications
-
Ingress NGINX - NGINX Ingress Controller for Kubernetes
-
Skaffold - Handles the workflow for building, pushing and deploying applications
-
Stripe - Online payment processing for internet businesses
-
Jest - A JavaScript testing framework
This is my first project on microservices. I followedStephen Griders course on Microservices. However I am yet to add more functionalities of my own to it and I cannot wait to create more microservices projects.