Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HotPotatoC/twitter-clone
🕊 Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis
https://github.com/HotPotatoC/twitter-clone
aws clone docker full-stack golang postgresql redis rest-api s3 tailwindcss twitter typescript vite vue
Last synced: about 1 month ago
JSON representation
🕊 Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis
- Host: GitHub
- URL: https://github.com/HotPotatoC/twitter-clone
- Owner: HotPotatoC
- License: mit
- Created: 2021-03-18T06:03:43.000Z (over 3 years ago)
- Default Branch: rewrite
- Last Pushed: 2023-11-01T17:09:56.000Z (about 1 year ago)
- Last Synced: 2024-08-01T21:46:12.298Z (4 months ago)
- Topics: aws, clone, docker, full-stack, golang, postgresql, redis, rest-api, s3, tailwindcss, twitter, typescript, vite, vue
- Language: Go
- Homepage:
- Size: 15.1 MB
- Stars: 426
- Watchers: 14
- Forks: 64
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-made-by-indonesian - Twitter Clone - `Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis` *by [Juan Christian](https://github.com/HotPotatoC)* (T)
- made-in-indonesia - Twitter Clone - `Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis` *by [Juan Christian](https://github.com/HotPotatoC)* (T)
README
# Twitter Clone
An attempt to recreate one of the largest social networking application Twitter.
> Note: This is my first attempt at developing a distributed system, so any feedback would be greatly appreciated.
## Services
1. [Edge Service (GraphQL)](./edge/)
2. [Media Service](./media/)
3. [Notifications Service](./notifications/)
4. [Search Service](./search/)
5. [Timeline Service](./timeline/)
6. [Tweet Service](./tweet/)
7. [Web UI Service](./website/)## Technologies Used
1. Golang (Internal Services)
2. Next.JS (Website UI)
3. Kafka (Pub/Sub)
4. Apache Spark (Analytics)
5. PostgreSQL (Main Database)
6. PgPool II (Database Load Balancer)
7. Redis (Caching)
8. Docker (Containerization)
9. Nginx (Load Balancer)
10. GraphQL (Edge Server / Frontend for Backend)
11. ElasticSearch (Searching & Indexing)
12. Firebase Cloud Messenger (Notification Service)## System Design
### Functional Requirements
1. Create Tweets (text, images, videos, etc)
2. View Timeline
3. Like tweets
4. Retweet / Quote Retweet
5. Follow others### Non-Functional Requirements
1. Scalable & Efficient
2. High Availability### Optional Requirements
1. Metrics and analytics
2. Notifications
3. Observability & Monitoring (Prometheus, Grafana, Jaeger, etc)### Database Schema
# How to run locally
Check [here](RUNNING_LOCALLY.md) on how to run locally