An open API service indexing awesome lists of open source software.

https://github.com/karl-horning/github-api-with-d3

The "GitHub API with D3" project is a web application that leverages the GitHub API to fetch and visualize repository topics for a specified GitHub user (Karl-Horning as the default). The frontend is built using D3.js, providing an interactive and informative chart for the user's GitHub repositories.
https://github.com/karl-horning/github-api-with-d3

api backend d3 github javascript node-js npm

Last synced: 29 days ago
JSON representation

The "GitHub API with D3" project is a web application that leverages the GitHub API to fetch and visualize repository topics for a specified GitHub user (Karl-Horning as the default). The frontend is built using D3.js, providing an interactive and informative chart for the user's GitHub repositories.

Awesome Lists containing this project

README

          

# ๐Ÿง  GitHub API with D3

---

## ๐Ÿ“– Table of Contents

- [๐Ÿง  GitHub API with D3](#-github-api-with-d3)
- [๐Ÿ“– Table of Contents](#-table-of-contents)
- [๐Ÿค“ Overview](#-overview)
- [๐Ÿ“ธ Demo](#-demo)
- [๐Ÿ› ๏ธ Tech Stack](#๏ธ-tech-stack)
- [๐Ÿ“ฆ Installation](#-installation)
- [๐Ÿš€ Scripts](#-scripts)
- [๐Ÿ“ Project Structure](#-project-structure)
- [๐Ÿ“Œ To Do](#-to-do)
- [๐Ÿงช Known Issues](#-known-issues)
- [๐Ÿค Contributing](#-contributing)
- [๐Ÿ“š Acknowledgements](#-acknowledgements)
- [๐Ÿ“„ Licence](#-licence)
- [๐Ÿ‘ค Author](#-author)

---

## ๐Ÿค“ Overview

A simple D3-powered web app that fetches and visualises GitHub repository topics using the GitHub API. It defaults to [Karl-Horning](https://github.com/Karl-Horning) but can be adapted to display any GitHub user's public repos.

---

## ๐Ÿ“ธ Demo

![Preview of topic visualisation](./src/public/img/preview.png)

Runs locally at: [http://localhost:3000](http://localhost:3000)

---

## ๐Ÿ› ๏ธ Tech Stack

- **Frontend**: D3.js, Bootstrap
- **Backend**: Express
- **API**: GitHub REST API via `@octokit/core`
- **Languages**: JavaScript (Node.js)
- **Tooling**: Chalk, Dotenv

---

## ๐Ÿ“ฆ Installation

```bash
git clone https://github.com/Karl-Horning/github-api-with-d3.git
cd github-api-with-d3
npm install
```

---

## ๐Ÿš€ Scripts

| Command | Description |
| ----------- | ------------------------ |
| `npm start` | Start the Express server |

---

## ๐Ÿ“ Project Structure

```bash
/
โ”œโ”€โ”€ public/ # Static assets (if applicable)
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ public/img/ # Visual assets for the UI
โ”‚ โ”œโ”€โ”€ routes/ # Express routes
โ”‚ โ”œโ”€โ”€ utils/ # Utility functions
โ”‚ โ””โ”€โ”€ views/ # HTML and D3 code
โ”œโ”€โ”€ .env.example # Example environment file
โ””โ”€โ”€ index.js # Entry point
```

---

## ๐Ÿ“Œ To Do

- [ ] Add user input to customise GitHub username
- [ ] Refactor into reusable chart components
- [ ] Add tests and CI config

---

## ๐Ÿงช Known Issues

- Does not yet support private repositories
- Chart styling can break on very small screens

---

## ๐Ÿค Contributing

Pull requests are welcome! Please fork the repo and use a feature branch.

```bash
git checkout -b your-feature-name
```

Once your changes are ready, open a pull request with a clear description.

---

## ๐Ÿ“š Acknowledgements

- [D3.js](https://d3js.org/)
- [Express](https://expressjs.com/)
- [@octokit/core](https://github.com/octokit/core.js)
- [Chalk](https://www.npmjs.com/package/chalk)
- [Dotenv](https://www.npmjs.com/package/dotenv)
- [Bootstrap](https://getbootstrap.com/)

---

## ๐Ÿ“„ Licence

MIT ยฉ 2025 Karl Horning

---

## ๐Ÿ‘ค Author

Made with โค๏ธ by [Karl Horning](https://github.com/Karl-Horning)