🛒 A full-stack real-time auction website built using a microservices architecture
Service | Technologies | Description |
---|---|---|
Auth | TypeScript, MySQL | Handles user regristration, logging in, signing out and resetting users passwords |
Bids | TypeScript, MySQL | Handles users placing bids on auction listings and allows for real-time bidding using Socket.io |
TypeScript | Allows other services to send emails to users by publishing EmailCreated events | |
Expiration | TypeScript, Redis | Expires auction listings once they have ran out of time remaining on the listing |
Frontend | TypeScript, React, Next.js | Handles serving the website to the user utilizing Server Side Rendering using React with Next.js |
Listings | TypeScript, MySQL | Allows users to create and delete auction listings |
Payments | TypeScript, MySQL | Allows users to pay for auction listings they have won |
Profile | TypeScript, MySQL | Allows users to get a users profile or update their own |
This project is a rewrite of a previous monolithic auction website I wrote. The repository for my monolithic auction website can be found here. The purpose of this rewrite was to gain experience utilizing a microservices architecture after completing Stephen Griders course on Microservices.
git clone https://github.com/jarrodmalkovic/auction-website.git
127.0.0.1 auctionweb.site
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/cloud/deploy.yaml
kubectl create secret generic jwt-secret --from-literal=JWT_KEY=<Your Secret Here>
kubectl create secret generic mysql-root-password-secret --from-literal=MYSQL_ROOT_PASSWORD=<Your Secret Here>
kubectl create secret generic email-secret --from-literal=EMAIL=<Your Secret Here>
kubectl create secret generic email-password-secret --from-literal=EMAIL_PASSWORD=<Your Secret Here>
kubectl create secret generic stripe-secret --from-literal=STRIPE_KEY=<Your Secret Here>
kubectl create secret generic cloudinary-api-key-secret --from-literal=CLOUDINARY_API_KEY=<Your Secret Here>
kubectl create secret generic cloudinary-cloud-name-secret --from-literal=CLOUDINARY_CLOUD_NAME=<Your Secret Here>
kubectl create secret generic cloudinary-api-secret-secret --from-literal=CLOUDINARY_API_SECRET=<Your Secret Here>
skaffold dev
This project is licensed under the Unlicense License