Thoughts is a post-sharing application where users can create, browse, like and repost posts and follow other users.
Service | Language | Description |
---|---|---|
apigateway | Go | API Gateway between the frontend and the backend services. |
authservice | Python | Authentication service for creation and validation of sessions. |
database | SQL | PostgreSQL database with tables, relationships and functions. |
frontend | JavaScript | React frontend of the app. |
postservice | Go | Service for creation, liking, reposting and fetching of posts. |
userservice | Python | Service for creation, following and fetching of users. |
Clone the repository to your filesystem
git clone git@github.com:robbdimitrov/thoughts.git
cd thoughts
Build all the images
make
Or build specific images
make apigateway
make authservice
make database
make frontend
make postservice
make userservice
Create namespace for the k8s resources
kubectl create namespace thoughts
Create deployments and volumes
kubectl apply -f ./k8s -n thoughts
Enable port forwarding
kubectl port-forward service/frontend 8080:8080 -n thoughts
Open the frontend here.
Delete all resources
kubectl delete -f ./k8s -n thoughts
Delete the namespace
kubectl delete namespace thoughts
The API documentation is available here.
Licensed under the MIT License.