JamesHsu333 / go-twitter

Simple Prototype for Twitter with frontend and backend

Home Page:https://tooru.info

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

https://tooru.info


Languages

Language:Go 56.4%Language:Vue 35.7%Language:JavaScript 6.0%Language:CSS 1.1%Language:Makefile 0.6%Language:HTML 0.1%Language:Dockerfile 0.1%