https://github.com/cdjellen/egh-api
Backend implementation for Explore GitHub
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
Repository
Backend implementation for Explore GitHub
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
- Releases: 0
Topics
Metadata Files
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
- Website: cdjellen.com
- Repositories: 5
- Profile: https://github.com/CDJellen
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
- Homepage: https://github.com/cdjellen/egh-api
- Documentation: https://pkg.go.dev/github.com/cdjellen/egh-api#section-documentation
- License: MIT
-
Latest release: v0.0.0-20230424045813-232643e6e44d
published about 3 years ago
Rankings
Dependencies
- actions/checkout v2 composite
- azure/docker-login v1 composite
- golang 1.19 build
- 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
- 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