Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/aabuhijleh/better-github-profile

Use your GitHub profile to create a personal website
https://github.com/aabuhijleh/better-github-profile

github graphql profile react readme styled-components

Last synced: 5 days ago
JSON representation

Use your GitHub profile to create a personal website

Awesome Lists containing this project

README

        

# ๐Ÿš€ Better GitHub Profile

> Use your GitHub profile to create a personal website

[Demo page](https://www.aabuhijleh.com/)


example

## How it works? ๐Ÿ™‹โ€โ™€๏ธ

The content of this website is generated dynamically using the [GitHub GraphQL API](https://docs.github.com/en/graphql) which is used to download your [profile README.md](https://docs.github.com/en/github/setting-up-and-managing-your-github-profile/managing-your-profile-readme) and your [user data](https://docs.github.com/en/graphql/reference/objects#user)

An extra file `extend.json` is required to be in your profile readme repository

[See this example](https://github.com/aabuhijleh/aabuhijleh/blob/main/extend.json)

```ts
// Your "extend.json" file should have this schema

interface ExtendedData {
resume: string;
about: {
paragraphs: string[];
skills: string[];
imageUrl: string;
};
jobs: Job[];
featuredProjects: FeaturedProject[];
otherProjects: Project[];
contactMessage: string;
}

interface Job {
title: string;
company: string;
companyUrl: string;
date: {
from: string;
to: string;
};
accomplishments: string[];
}

interface Project {
name: string;
description: string;
technologies: string[];
date: {
from: string;
to: string;
};
repoUrl?: string;
externalUrl?: string;
}

type FeaturedProject = Project & { imageUrl: string };
```

## Try it out ๐Ÿงช

By default, the app uses the profile of the username set in `src/constants/defaults.ts`

To use a different profile, you can use this URL parameter

```plaintext
/?username={username}
```

## Development ๐Ÿ’ป

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app)

```sh
# install dependencies
$ npm install

# run the app in development
$ npm start

# generate GraphQL code
$ npm run gen

# build the app for production
$ npm run build
```

You need to generate a [GitHub key](https://docs.github.com/en/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql) to use the GraphQL API. Add this key as an environment variable `REACT_APP_GITHUB_KEY` in a `.env` file that needs to be created at the project's root directory