Skip to content

Latest commit

 

History

History
132 lines (96 loc) · 4.65 KB

README.md

File metadata and controls

132 lines (96 loc) · 4.65 KB



⚡ Make information sharing smooth and straightforward.

Table of Contents 📑

Introduction 💡

At the very beginning, TagPost is going to be built as a tool for internal use. As the internship program at Google this year went virtual, we decided to shift this project to be open source. See this

TagPost is a full stack project to support information sharing. It maps a tag to discussions, comments and statistics(charts). Any keyword can be used as a tag here, TagPost serves as a forum for tag. Users will be able to use TagPost to search, retrieve and post info using the tag.

TagPost is built on an end-to-end gRPC service architecture using gRPC-web. gRPC-web is a JavaScript client library that enables our Angular web app to interact directly with backend gRPC server with the help of Envoy.



Tech Stack ↘️

Here are some of the amazing tools and librarys we used in TagPost

  • Bazel A fast, scalable, multi-language and extensible build system
  • gRPC-java The Java gRPC implementation.
  • gRPC-web gRPC for web client
  • Angular One framework. Mobile & desktop.
  • Bulma Modern CSS framework based on Flexbox
  • Envoy envoy is an open source edge and service proxy .

Build Process 🔨

  // SpannerService.java
  // Enter YOUR_INSTANCE_ID, YOUR_DATABASE_ID
  private void initDb() {
    SpannerOptions spannerOptions = SpannerOptions.newBuilder().build();
    db = DatabaseId.of(spannerOptions.getProjectId(),YOUR_INSTANCE_ID, YOUR_DATABASE_ID);
    spanner = spannerOptions.getService();
  }
  • Build TagPost backend server locally
  # 1. First, please clone the repo
  git clone https://github.com/googleinterns/tagpost.git
  cd tagpost
  
  # 2. build server 
  bazel build :tagpost_server
  # 3. run server  
  bazel run :tagpost_server 
  # 4. run server unit test 
  bazel test //src/javatests/com/google/tagpost:tagpost_server_test
  • Build Envoy Image
  bazel build third_party/envoy:envoy_image
  • Build TagPost frontend locally
# 1. run script to generate the proto messages and the service client stub
cd ui
./make_ts_proto.sh

# 2. build docker image
./make_docker_image.sh

Features 👇

Here is a few of the things you can do with TagPost:

For a tag of choice, you can:

  • Easily search for discussions
  • Start your own discussion
  • View and add comments under any discussion thread
  • View data visualizations for the tag.

See demos for more details.

Demo ▶️

📍 click to enlarge img

  • A list of threads with experiment-id-was-deleted as the tag


  • A detailed thread page.


  • Add new thread.


Contributors 🎉

This project is brought to you by these contributors

Acknowledgments

This project is part of Google 2020 Summer Internship Program.
This is not an officially supported Google product.