Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robbdimitrov/thoughts
Twitter clone using k8s, node, react, python and go
https://github.com/robbdimitrov/thoughts
docker golang grpc javascript kubernetes python react
Last synced: 3 months ago
JSON representation
Twitter clone using k8s, node, react, python and go
- Host: GitHub
- URL: https://github.com/robbdimitrov/thoughts
- Owner: robbdimitrov
- License: mit
- Created: 2018-12-27T16:43:18.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-19T07:57:58.000Z (almost 2 years ago)
- Last Synced: 2024-10-11T10:28:01.040Z (3 months ago)
- Topics: docker, golang, grpc, javascript, kubernetes, python, react
- Language: Python
- Homepage:
- Size: 1.93 MB
- Stars: 5
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](/src/apigateway) | Go | API Gateway between the frontend and the backend services.
[authservice](/src/authservice) | Python | Authentication service for creation and validation of sessions.
[database](/src/database) | SQL | PostgreSQL database with tables, relationships and functions.
[frontend](/src/frontend) | JavaScript | React frontend of the app.
[postservice](/src/postservice) | Go | Service for creation, liking, reposting and fetching of posts.
[userservice](/src/userservice) | Python | Service for creation, following and fetching of users.## Setup
### Clone the repository
Clone the repository to your filesystem
```sh
git clone [email protected]:robbdimitrov/thoughts.git
cd thoughts
```### Build the images
Build all the images
```sh
make
```Or build specific images
```sh
make apigateway
make authservice
make database
make frontend
make postservice
make userservice
```### Create namespace
Create namespace for the k8s resources
```sh
kubectl create namespace thoughts
```### Create deployments
Create deployments and volumes
```sh
kubectl apply -f ./k8s -n thoughts
```## Access the frontend
Enable port forwarding
```sh
kubectl port-forward service/frontend 8080:8080 -n thoughts
```Open the frontend [here](http://localhost:8080/).
## Cleanup
Delete all resources
```sh
kubectl delete -f ./k8s -n thoughts
```Delete the namespace
```sh
kubectl delete namespace thoughts
```## API
The API documentation is available [here](/API.md).
## License
Licensed under the [MIT](LICENSE) License.