Skip to content

Twitter clone using k8s, node, react, python and go

License

Notifications You must be signed in to change notification settings

robbdimitrov/thoughts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thoughts

Thoughts is a post-sharing application where users can create, browse, like and repost posts and follow other users.

Architecture

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.

Setup

Clone the repository

Clone the repository to your filesystem

git clone git@github.com:robbdimitrov/thoughts.git
cd thoughts

Build the images

Build all the images

make

Or build specific images

make apigateway
make authservice
make database
make frontend
make postservice
make userservice

Create namespace

Create namespace for the k8s resources

kubectl create namespace thoughts

Create deployments

Create deployments and volumes

kubectl apply -f ./k8s -n thoughts

Access the frontend

Enable port forwarding

kubectl port-forward service/frontend 8080:8080 -n thoughts

Open the frontend here.

Cleanup

Delete all resources

kubectl delete -f ./k8s -n thoughts

Delete the namespace

kubectl delete namespace thoughts

API

The API documentation is available here.

License

Licensed under the MIT License.