- Voting Microservices App
- Technologies and concepts used
- Project Architecture Diagram
- File Structure
- How to Setup Project on Kubernetes Cluster in AWS EKS
- What to do
This project aims to enable users to vote for the topics created through the application.
- Frontend - React
- Backend RESTful USER API - Node-Express application
- Backend RESTful FEED API - Node-Express application
- Reverse Proxy - Nginx
- Elastic Kubernetes Service (EKS) as Kubernetes Manager
- Kubernetes as Container Orchestrator and CD
- Travis as CI Tool
- AWS NoSQL DB - DynamoDB
- AWS RDS - PostgreSQL
- Docker and Dockerhub
- Nginx as Reverse Proxy/Load Balancer
- React and Express Frameworks
root
│
└───K8s: All deployment and service files
│
└───assets: README.md stuffs
│
└───services
│ │
│ └───feed-service: which is used to serve feeds
│ └───frontend-service: which is used to serve react app
│ └───reverseproxy-service: load balancer
│ └───user-service: which is used to manage sign in/out and authentication
- Create a cluster and node group in EKS
- install kubectl, Set up aws-iam-authenticator and kubeconfig
- Update cluster config at your local env.
- Apply secret files required
- Apply K8s deployment and service files
- To check final end point which is exposed: type 'kubectl get services' and copy the end point of reverse proxy service
- Allowing the user to vote(like/dislike) a feed or its comment
- Enable the user to write only one comment per feed
- Enable the user to add a profile photo and some other information about himself
- Check email and ip address to prevent multiple voting on same feed
- Allowing the user to share link of feed to make possible interaction of other people with feed
- Pagination
- Building a forgot password logic
- Add self healing end points