Skip to content

googleinterns/tagpost

Repository files navigation



⚡ 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.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •