https://github.com/cdjellen/egh-api

Backend implementation for Explore GitHub

https://github.com/cdjellen/egh-api

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary

Keywords

docker grpc-go redis rpc-server
Last synced: 9 months ago · JSON representation

Repository

Backend implementation for Explore GitHub

Basic Info
  • Host: GitHub
  • Owner: CDJellen
  • License: mit
  • Language: Go
  • Default Branch: trunk
  • Homepage:
  • Size: 2.28 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Topics
docker grpc-go redis rpc-server
Created over 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme License

README.md

Explore GitHub (Backend API Server)

This repository contains the source code for the backend of the "Explore GitHub" project. This project is a web application that allows viewers to explore the social graph induced by GitHub user's contributions to repositories. This project was developed to streamline the process for finding new, interesting projects based on a viewer's interest in a particular repository. Each repository is represented as a node in the graph, and the edges between nodes represent a user's contribution to multiple repositories. By double-clicking on a repository node, the viewer can pull and display the projects README.md file, which provides a brief overview of the project. The viewer can also click on a repository node to view the repository's GitHub page.

Getting Started

This project was developed from a protobuf definition of the API, which was used to generate the server and client code. The server was developed using the grpc framework, and the client was developed using the grpc-web framework. The server was developed in Go, and the client was developed in TypeScript. The server was containerized using Docker, and the client was containerized using Docker and Nginx.

To get started, clone the repository and navigate to the root directory of the project. Create the .env settings file.

bash git clone --recursive cd egh-api touch .env nano .env

Once the .env file is created, add a GitHub personal access token to the file.

bash GITHUB_TOKEN=ghp_... # access token required to leverage the GraphQL API (does not need any permissions)

Making changes

The principal method for making changes is by adding new API objects in the proto directory. Once the changes are made, the server and client code can be regenerated using the buf tool. The server and client code can be regenerated using the following commands:

bash buf generate

Running the server

To run the server, use the following command:

bash go run cmd/server/main.go

Contributing changes

Changes, additions, and improvements are welcome. Please feel free to open an issue or submit a pull request.

Owner

  • Name: Chris Jellen
  • Login: CDJellen
  • Kind: user
  • Location: Seattle, WA
  • Company: @Microsoft

Cloud software engineering at Microsoft. Cross-team data solutions focused on observability, reliability, strategic planning, and automation.

GitHub Events

Total
  • Create event: 1
Last Year
  • Create event: 1

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
proxy.golang.org: github.com/cdjellen/egh-api
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.7%
Average: 9.3%
Dependent repos count: 9.8%
Last synced: about 1 year ago

Dependencies

.github/workflows/build_image.yaml actions
  • actions/checkout v2 composite
  • azure/docker-login v1 composite
Dockerfile docker
  • golang 1.19 build
go.mod go
  • github.com/cespare/xxhash/v2 v2.2.0
  • github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
  • github.com/golang/glog v1.0.0
  • github.com/golang/protobuf v1.5.2
  • github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0
  • github.com/kr/text v0.2.0
  • github.com/machinebox/graphql v0.2.2
  • github.com/matryer/is v1.4.0
  • github.com/pkg/errors v0.9.1
  • github.com/redis/go-redis/v9 v9.0.2
  • github.com/rs/cors v1.8.3
  • golang.org/x/net v0.4.0
  • golang.org/x/sys v0.3.0
  • golang.org/x/text v0.5.0
  • google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37
  • google.golang.org/grpc v1.52.3
  • google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0
  • google.golang.org/protobuf v1.28.1
  • gopkg.in/yaml.v3 v3.0.1
go.sum go
  • github.com/bsm/ginkgo/v2 v2.5.0
  • github.com/bsm/gomega v1.20.0
  • github.com/cespare/xxhash/v2 v2.2.0
  • github.com/creack/pty v1.1.9
  • github.com/davecgh/go-spew v1.1.1
  • github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
  • github.com/golang/glog v1.0.0
  • github.com/golang/protobuf v1.5.0
  • github.com/golang/protobuf v1.5.2
  • github.com/google/go-cmp v0.5.5
  • github.com/google/go-cmp v0.5.9
  • github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0
  • github.com/kr/pretty v0.1.0
  • github.com/kr/text v0.2.0
  • github.com/machinebox/graphql v0.2.2
  • github.com/matryer/is v1.4.0
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/redis/go-redis/v9 v9.0.2
  • github.com/rs/cors v1.8.3
  • github.com/stretchr/testify v1.8.1
  • golang.org/x/net v0.4.0
  • golang.org/x/sys v0.3.0
  • golang.org/x/text v0.5.0
  • golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
  • google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37
  • google.golang.org/grpc v1.52.3
  • google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0
  • google.golang.org/protobuf v1.26.0-rc.1
  • google.golang.org/protobuf v1.26.0
  • google.golang.org/protobuf v1.27.1
  • google.golang.org/protobuf v1.28.1
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
  • gopkg.in/yaml.v3 v3.0.1