Skip to content

Simple Prototype for Twitter with frontend and backend

Notifications You must be signed in to change notification settings

JamesHsu333/go-twitter

Repository files navigation

Twitter Clone

CircleCI

Introduction

A Twitter clone created with Golang, PostgreSQL, Redis, VueJS, Vite and element-plus integrated Prometheus, Grafana and Jaeger.

Using tech

Frontend

Backend

Database

Monitor

DevOps

Features

  • Clean Architecture
  • Metrics and alerting with Prometheus
  • Monitor metrics with Grafana
  • Monitor and troubleshoot transactions with Jaeger
  • Backend features
- Users
    - Create User
    - Get User Info By User ID, User Name
    - Update User Info
    - Delete User
    - Search User By Name, Email, User Name
- Tweets
    - Create Tweet With Image
    - Get Tweet By Tweet ID, User ID (Author), Reply
    - Delete Tweet
- Like
    - Like Tweet
    - Get User-Liked Tweets
    - Get Liked-Tweet Users
    - Cancel Like Tweet
- Follow
    - Follow User
    - Get Followers Of User
    - Get Following Of User
    - Unfollow User
- Middleware
    - Role Management
    - Verify Admin or Owner
    - Verify CSRF token
    - Verify Session
- Log
    - Rolling Log Files Automatically

Getting Started

# Clone the project
git clone 

# Enter project directory
cd go-twitter

# Install dependencies
make tidy

# Run database environment by docker-compose
# Jaeger UI localhost:16686
# Prometheus UI localhost:9090
# Grafana UI localhost:3000
make local

# Run backend
make run

# Enter frontend directory
cd web/ui

# Install
yarn

# Run frontend
yarn run dev

Monitoring

Prometheus

http://localhost:9090

Grafana

http://localhost:3001

Jaeger

http://localhost:16686

Preview

For more check out screenshots at .github/screenshots

References

About

Simple Prototype for Twitter with frontend and backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published