├── translations
├── README.de.md
├── README.fr.md
├── README.zh.md
├── README.pt_br.md
├── README.bg.md
├── README.es.md
├── README.si.md
├── README.it.md
├── README.pl.md
├── README.ru.md
├── README.cs.md
├── README.uk.md
├── README.te.md
├── README.id.md
├── README.ta.md
└── Translations.md
├── public
├── robots.txt
├── favicon.ico
├── manifest.json
└── index.html
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE
│ ├── feature_request.md
│ └── bug_report.md
└── PULL_REQUEST_TEMPLATE.md
├── src
├── pages
│ ├── index.js
│ ├── LandingPage.js
│ └── Resume.js
├── assets
│ └── readme
│ │ └── screenshot.png
├── setupTests.js
├── components
│ ├── index.js
│ ├── NotFoundPage.js
│ ├── Loader.js
│ ├── Footer.js
│ ├── RepoCard.js
│ ├── Header.js
│ ├── SearchForm.js
│ └── UserProfile.js
├── index.js
├── App.js
├── constants
│ └── languages.js
├── i18n.js
└── serviceWorker.js
├── CONTRIBUTING.md
├── .gitignore
├── LICENSE
├── package.json
├── CODE_OF_CONDUCT.md
└── README.md
/translations/README.de.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/translations/README.fr.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ilhan-mstf/React-GitHub-Resume/master/public/favicon.ico
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # This owner will be the default owner for everything
2 | * @sabesansathananthan
3 |
--------------------------------------------------------------------------------
/src/pages/index.js:
--------------------------------------------------------------------------------
1 | export { default as LandingPage } from "./LandingPage";
2 | export { default as Resume } from "./Resume";
3 |
--------------------------------------------------------------------------------
/src/assets/readme/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ilhan-mstf/React-GitHub-Resume/master/src/assets/readme/screenshot.png
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom/extend-expect';
6 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Github Resume",
3 | "name": "GitHub Resume Generator",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/index.js:
--------------------------------------------------------------------------------
1 | export { default as Loader } from "./Loader";
2 | export { default as NotFoundPage } from "./NotFoundPage";
3 | export { default as RepoCard } from "./RepoCard";
4 | export { default as SearchForm } from "./SearchForm";
5 | export { default as UserProfile } from "./UserProfile";
6 | export { default as Footer } from "./Footer";
7 | export { default as Header } from "./Header";
8 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to React-Github-Resume
2 |
3 | When contributing to this repository, please first discuss the change you wish to make via [Issues](https://github.com/sabesansathananthan/React-GitHub-Resume/issues).
4 |
5 | Please note we have a [code of conduct](https://github.com/sabesansathananthan/React-GitHub-Resume/blob/main/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 | .env
21 |
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import "./i18n";
4 | import App from "./App";
5 | import * as serviceWorker from "./serviceWorker";
6 |
7 | ReactDOM.render(
8 |
9 |
10 | ,
11 | document.getElementById("root")
12 | );
13 |
14 | // If you want your app to work offline and load faster, you can change
15 | // unregister() to register() below. Note this comes with some pitfalls.
16 | // Learn more about service workers: https://bit.ly/CRA-PWA
17 | serviceWorker.unregister();
18 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
3 | import { LandingPage, Resume } from "./pages";
4 | import { NotFoundPage } from "./components";
5 |
6 | const App = () => (
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 |
18 | export default App;
19 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/src/constants/languages.js:
--------------------------------------------------------------------------------
1 | const languages = [
2 | {
3 | "code": "en",
4 | "name": "English",
5 | "nativeName": "English"
6 | },
7 | {
8 | "code": "fr",
9 | "name": "French",
10 | "nativeName": "français, langue française"
11 | },
12 | {
13 | "code": "de",
14 | "name": "German",
15 | "nativeName": "Deutsch"
16 | },
17 | {
18 | "code": "it",
19 | "name": "Italian",
20 | "nativeName": "Italiano"
21 | },
22 | {
23 | "code": "es",
24 | "name": "Spanish; Castilian",
25 | "nativeName": "español, castellano"
26 | },
27 | {
28 | "code": "pl",
29 | "name": "Polish",
30 | "nativeName": "polski"
31 | },
32 | {
33 | "code": "pt",
34 | "name": "Portuguese",
35 | "nativeName": "Português"
36 | },
37 | ]
38 |
39 | export default languages;
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Sathananthan Sabesan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-github-resume",
3 | "version": "1.1.4",
4 | "private": true,
5 | "dependencies": {
6 | "@material-ui/core": "^4.11.0",
7 | "@material-ui/icons": "^4.9.1",
8 | "@testing-library/jest-dom": "^4.2.4",
9 | "@testing-library/react": "^9.3.2",
10 | "@testing-library/user-event": "^7.1.2",
11 | "axios": "^0.20.0",
12 | "i18next": "^19.8.2",
13 | "prop-types": "^15.7.2",
14 | "react": "^16.13.1",
15 | "react-dom": "^16.13.1",
16 | "react-i18next": "^11.7.3",
17 | "react-router-dom": "^5.2.0",
18 | "react-scripts": "3.4.3"
19 | },
20 | "scripts": {
21 | "start": "react-scripts start",
22 | "build": "react-scripts build",
23 | "test": "react-scripts test",
24 | "eject": "react-scripts eject"
25 | },
26 | "eslintConfig": {
27 | "extends": "react-app"
28 | },
29 | "browserslist": {
30 | "production": [
31 | ">0.2%",
32 | "not dead",
33 | "not op_mini all"
34 | ],
35 | "development": [
36 | "last 1 chrome version",
37 | "last 1 firefox version",
38 | "last 1 safari version"
39 | ]
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/components/NotFoundPage.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Proptypes from "prop-types";
3 | import { Grid, makeStyles, Typography } from "@material-ui/core";
4 |
5 | const useStyles = makeStyles((theme) => ({
6 | container: {
7 | maxWidth: "80%",
8 | margin: "2rem auto",
9 | padding: "1rem",
10 | background: "white",
11 | borderRadius: "10px",
12 | textAlign: "center",
13 | "@media (min-width: 992px)": {
14 | maxWidth: "800px",
15 | },
16 | },
17 | }));
18 |
19 | const NotFoundPage = (props) => {
20 | const { location } = props;
21 |
22 | setTimeout(() => {
23 | props.history.push("/");
24 | }, 1500);
25 |
26 | const classes = useStyles();
27 |
28 | return (
29 |
30 |
31 |
32 |
33 | 404 - {location && location.state ? location.state.error : ""}
34 |
35 |
36 |
37 |
38 | );
39 | };
40 |
41 | NotFoundPage.propTypes = {
42 | location: Proptypes.object.isRequired,
43 | };
44 |
45 | export default NotFoundPage;
46 |
--------------------------------------------------------------------------------
/src/i18n.js:
--------------------------------------------------------------------------------
1 | import i18n from "i18next";
2 | import { initReactI18next } from "react-i18next";
3 |
4 | const resources = {
5 | en: {
6 | translation: {
7 | "Github Resume Generator": "Github Resume Generator"
8 | }
9 | },
10 | es: {
11 | translation: {
12 | "Github Resume Generator": "Generador de CV Github"
13 | }
14 | },
15 | de: {
16 | translation: {
17 | "Github Resume Generator": "Github Resume Generator"
18 | }
19 | },
20 | pl: {
21 | translation: {
22 | "Github Resume Generator": "Generator wznawiania Github"
23 | }
24 | },
25 | it: {
26 | translation: {
27 | "Github Resume Generator": "Github Resume Generator"
28 | }
29 | },
30 | pt: {
31 | translation: {
32 | "Github Resume Generator": "Gerador de currículo Github"
33 | }
34 | },
35 | fr: {
36 | translation: {
37 | "Github Resume Generator": "Générateur de CV Github"
38 | }
39 | }
40 | };
41 |
42 | i18n
43 | .use(initReactI18next) // passes i18n down to react-i18next
44 | .init({
45 | resources,
46 | lng: "en",
47 |
48 | keySeparator: false, // we do not use keys in form messages.welcome
49 |
50 | interpolation: {
51 | escapeValue: false // react already safes from xss
52 | }
53 | });
54 |
55 | export default i18n;
--------------------------------------------------------------------------------
/src/components/Loader.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Grid, makeStyles } from "@material-ui/core";
3 |
4 | const useStyles = makeStyles((theme) => ({
5 | container: {
6 | maxWidth: "80%",
7 | margin: "2rem auto",
8 | padding: "1rem",
9 | background: "white",
10 | borderRadius: "10px",
11 | "@media (min-width: 992px)": {
12 | maxWidth: "800px",
13 | },
14 | },
15 | spinner: {
16 | display: "block",
17 | margin: "0 auto",
18 | width: "64px",
19 | height: "64px",
20 | "&:after": {
21 | content: '" "',
22 | display: "block",
23 | width: "46px",
24 | height: "46px",
25 | margin: "1px",
26 | borderRadius: "50%",
27 | border: "5px solid #000000",
28 | borderColor: "#000000 transparent #000000 transparent",
29 | animationName: "$spin",
30 | animationDuration: "1.2s",
31 | animationTimingFunction: "linear",
32 | animationIterationCount: "infinite",
33 | },
34 | },
35 | "@keyframes spin": {
36 | "0%": {
37 | transform: "rotate(0deg)",
38 | },
39 | "100%": {
40 | transform: "rotate(360deg)",
41 | },
42 | },
43 | }));
44 |
45 | const Loader = () => {
46 | const classes = useStyles();
47 | return (
48 |
49 |
50 |
51 | );
52 | };
53 |
54 | export default Loader;
55 |
--------------------------------------------------------------------------------
/translations/README.zh.md:
--------------------------------------------------------------------------------
1 | # GitHub 简历生成器
2 |
3 | 
4 |
5 | ## 目录
6 |
7 | - [关于](#about)
8 | - [构建工具](#built-with)
9 | - [安装](#installation)
10 | - [演示](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _阅读[其他语言](./Translations.md)_
15 |
16 |
17 |
🤔 关于
18 |
19 | 本项目的目的是为每个 GitHub 用户生成`Github Resume`
20 |
21 | 🛠️ 构建工具
22 |
23 | - [React JS](https://reactjs.org/) - JavaScript 前端库
24 | - [Material UI](https://material-ui.com/) - React UI 框架
25 |
26 | 安装
27 |
28 | 为了设置本地开发环境,请遵循以下安装步骤
29 |
30 | 1. 克隆本项目到本机
31 |
32 | ```bash
33 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
34 | cd React-GitHub-Resume
35 | ```
36 |
37 | 2. 安装依赖包
38 |
39 | 如果你用`npm`
40 |
41 | ```bash
42 | npm install
43 | ```
44 |
45 | 或者
46 |
47 | 如果你用`yarn`
48 |
49 | ```bash
50 | yarn
51 | ```
52 |
53 | 3. 运行开发服务器
54 |
55 | 如果你用`npm`
56 |
57 | ```bash
58 | npm start
59 | ```
60 |
61 | 或者
62 |
63 | 如果你用`yarn`
64 |
65 | ```bash
66 | yarn start
67 | ```
68 |
69 | 4. 访问
70 |
71 |
72 |
73 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
74 |
75 | ## 📄 许可
76 |
77 | 本项目遵照 MIT 许可证 - 详情请访问[许可](../LICENSE)
78 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | Thank you so much for opening a pull request! :smiley:
6 |
7 | Please provide the following information where possible to help the pull request reviewer merge your PR quicker!
8 |
9 | ## Relevant Project Issue Numbers :hash:
10 |
11 | _Add any related issue numbers from the GitHub project. Append the `#` symbol before issue numbers._
12 |
13 | > e.g. #58
14 |
15 | ## Involved Project Members :bust_in_silhouette:
16 |
17 | _Tag any GitHub usernames involved or directly responsible for reviewing the proposed changes. Append the `@` symbol before usernames._
18 |
19 | > e.g @Charlotteis
20 |
21 | ## An Explanation of Your Changes :speech_balloon:
22 |
23 | _Your explanation goes here!_
24 |
25 | ## For transilators.
26 |
27 | - [ ] Create a file called `README.lang.md` in the translations folder.
28 | lang means shorten form of your language Refer this [site](https://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code).
29 |
30 | - [ ] Check all the links are working.
31 |
32 | - [ ] Check all the parts are translated.
33 | - [ ] If about and built-with are not working then inspect the page and copy the href and paste in your file.
34 | - [ ] Edit the translations/Translations.md adding you language icon/link
35 | - [ ] Edit the main README.md adding your language icon
36 |
37 |
40 |
--------------------------------------------------------------------------------
/src/components/Footer.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Grid, makeStyles, Typography } from "@material-ui/core";
3 |
4 | const useStyles = makeStyles((theme) => ({
5 | container: {
6 | maxWidth: "80%",
7 | margin: "2rem auto",
8 | padding: "1rem",
9 | background: "white",
10 | borderRadius: "10px",
11 | "@media (min-width: 992px)": {
12 | maxWidth: "800px",
13 | },
14 | },
15 | }));
16 |
17 | const Footer = () => {
18 | const classes = useStyles();
19 | return (
20 |
25 |
26 | Created with care by{" "}
27 |
33 | Sabesan Sathananthan
34 |
35 |
36 |
37 | If you like this project don't forget to give{" "}
38 |
45 | Star
46 | {" "}
47 | to this repository
48 |
49 |
50 | );
51 | };
52 |
53 | export default Footer;
54 |
--------------------------------------------------------------------------------
/translations/README.pt_br.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Sumário
6 |
7 | - [Sobre](#about)
8 | - [Feito com](#built-with)
9 | - [Instalação](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Leia em [outras línguas](./Translations.md)_
15 |
16 | 🤔 Sobre
17 |
18 | O objetivo deste repositório é gerar um resumo do GitHub para cada usuário do github.
19 |
20 | 🛠️ Feito com
21 |
22 | - [React JS](https://reactjs.org/) - Biblioteca Front-End JavaScript
23 | - [Material UI](https://material-ui.com/) - Framework do React para UI
24 |
25 | Instalação
26 |
27 | Para configurar o app para desenvolvimento na sua máquina, siga as instruções abaixo:
28 |
29 | 1. Clone o repositório na sua maquina
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Instale as bibliotecas
37 |
38 | Se você usa `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | or
45 |
46 | Se você usa `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Rode o servidor de desenvolvimento
53 |
54 | Se você usa `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | or
61 |
62 | Se você usa `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Visite
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Licença
75 |
76 | Este projeto está licenciado com a Licença do MIT - consulte o arquivo [LICENÇA](../LICENSE) para obter detalhes
77 |
--------------------------------------------------------------------------------
/translations/README.bg.md:
--------------------------------------------------------------------------------
1 | # GitHub Резюме Генератор
2 |
3 | 
4 |
5 | ## Съдържание
6 |
7 | - [Относно](#about)
8 | - [Изготвено с](#built-with)
9 | - [Инсталация](#installation)
10 | - [Демо](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Прочетете на [други езици](./Translations.md)_
15 |
16 | 🤔 Относно
17 |
18 | Целта на тази репозитория е да генерира `Github Resume` за всеки github потребители.
19 |
20 | 🛠️ Изготвено с
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript библиотека
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | Инсталация
26 |
27 | За да настроите приложението за разработка на вашата локална машина, моля, следвайте инструкциите по-долу:
28 |
29 | 1. Клонирайте репозиторията на вашата машина:
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Инсталирайте пакетите
37 |
38 | Ако използвате `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | или
45 |
46 | Ако използвате `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Стартирайте сървъра за разработка
53 |
54 | Ако използвате `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | или
61 |
62 | Ако използвате `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Посетете
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Лиценз
75 |
76 | Този проект е лицензиран под лиценза MIT - вижте файла [Лиценз](../LICENSE) за подробности.
77 |
--------------------------------------------------------------------------------
/translations/README.es.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Tabla de contenidos
6 |
7 | - [Sobre](#about)
8 | - [Construido con](#built-with)
9 | - [Instalación](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 | ### 🌎 _Leer en [otros idiomas](./Translations.md)_
14 |
15 | 🤔 Sobre
16 |
17 | El objetivo de este repositorio es generar un currículum de Github para cada usuario de github.
18 |
19 | 🛠️ Construido con
20 |
21 | - [React JS](https://reactjs.org/) - Biblioteca Front-End JavaScript
22 | - [Material UI](https://material-ui.com/) - React UI Framework
23 |
24 | Instalación
25 |
26 | Para configurar la aplicación para el desarrollo en su máquina local, siga las instrucciones a continuación:
27 |
28 | 1. Clona el repositorio en tu máquina
29 |
30 | ```bash
31 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
32 | cd React-GitHub-Resume
33 | ```
34 |
35 | 2. Instalar paquetes
36 |
37 | Si utiliza `npm`
38 |
39 | ```bash
40 | npm install
41 | ```
42 |
43 | or
44 |
45 | Si utiliza `yarn`
46 |
47 | ```bash
48 | yarn
49 | ```
50 |
51 | 3. Ejecuta el servidor de desarrollo
52 |
53 | Si utiliza `npm`
54 |
55 | ```bash
56 | npm start
57 | ```
58 |
59 | or
60 |
61 | Si utiliza `yarn`
62 |
63 | ```bash
64 | yarn start
65 | ```
66 |
67 | 4. Visita
68 |
69 |
70 |
71 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
72 |
73 | ## 📄 Licencia
74 |
75 | Este proyecto tiene la licencia del MIT; consulte el archivo [LICENCIA](../LICENSE) para obtener más detalles
76 |
--------------------------------------------------------------------------------
/translations/README.si.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## අන්තර්ගතය
6 |
7 | - [හැදින්වීම](#about)
8 | - [භාවිතා කල මෙවලම්](#built-with)
9 | - [ස්ථාපනය කිරීම](#installation)
10 | - [ආදර්ශනය](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _[වෙනත් භාෂාවලින්](./Translations.md) කියවන්න_
15 |
16 | 🤔 හැදින්වීම
17 |
18 | මෙම repository එකෙහි පරමාර්ථය වන්නේ එක් එක් GitHub භාවිතා කරන්නන් සඳහා `GitHub Resume` නිර්මාණය කිරීමයි.
19 |
20 | 🛠️ භාවිතා කල මෙවලම්
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript library
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | ස්ථාපනය කිරීම
26 |
27 | ඔබගේ පරිගණකයේ මෙම යෙදුම සංවර්ධනය සඳහා සැකසීමට, කරුණාකර පහත උපදෙස් අනුගමනය කරන්න:
28 |
29 | 1. ඔබේ පරිගණකයට මෙම repo එක ක්ලෝන කරන්න
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. පැකේජ ස්ථාපනය කරන්න
37 |
38 | ඔබ `npm` භාවිතා කරන්නේ නම්
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | හෝ
45 |
46 | `yarn` භාවිතා කරන්නේ නම්
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Development server එක ධාවනය කරන්න
53 |
54 | ඔබ `npm` භාවිතා කරන්නේ නම්
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | හෝ
61 |
62 | `yarn` භාවිතා කරන්නේ නම්
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. වෙත පිවිසෙන්න
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 බලපත්රය
75 |
76 | මෙම ව්යාපෘතිය MIT බලපත්රය යටතේ බලපත්ර ලබා ඇත - විස්තර සඳහා [බලපත්රය](../LICENSE) ගොනුව බලන්න.
77 |
--------------------------------------------------------------------------------
/translations/README.it.md:
--------------------------------------------------------------------------------
1 | # Generatore di curriculum per GitHub
2 |
3 | 
4 |
5 | ## Indice
6 |
7 | - [Informazioni](#about)
8 | - [Materiale utilizzato](#built-with)
9 | - [Installazione](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Leggi in [altre lingue](./Translations.md)_
15 |
16 | 🤔 Informazioni
17 |
18 | Lo scopo di questa repository è di generare un `Curriculum Github` per ogni utente di github.
19 |
20 | 🛠️ Materiale utilizzato
21 |
22 | - [React JS](https://reactjs.org/) - Libreria Front-End JavaScript
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | Installazione
26 |
27 | Per configurare l'applicazione per lo sviluppo nella tua macchina locale, per favore segui le istruzioni qui sotto:
28 |
29 | 1. Clona la repo nella tua macchina
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Installa i pacchetti
37 |
38 | Se usi `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | o
45 |
46 | Se usi `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Esegui il server per lo sviluppo
53 |
54 | Se usi `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | o
61 |
62 | Se usi `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Visita
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Licenza
75 |
76 | Questo progetto è sotto la lincenza MIT - leggi il file [LICENZA](../LICENSE) per ulteriori dettagli
77 |
--------------------------------------------------------------------------------
/translations/README.pl.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Spis treści
6 |
7 | - [O Projekcie](#about)
8 | - [Wykorzystane technologie](#built-with)
9 | - [Instalacja](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Przeczytaj w [innych językach](./Translations.md)_
15 |
16 | 🤔 O projekcie
17 |
18 | Celem tego repozytorium jest wygenerowanie `Github Resume` dla każdego użytkownika github.
19 |
20 | 🛠️ Wykorzystane technologie
21 |
22 | - [React JS](https://reactjs.org/) - Biblioteka Front-End JavaScript
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | Instalacja
26 |
27 | Aby skonfigurować aplikację do programowania na komputerze lokalnym, postępuj zgodnie z poniższymi instrukcjami:
28 |
29 | 1. Sklonuj repozytorium na swój komputer
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Zainstaluj paczki
37 |
38 | Jeśli używasz `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | lub
45 |
46 | Jeśli używasz `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Uruchom serwer deweloperski
53 |
54 | Jeśli używasz `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | lub
61 |
62 | Jeśli używasz `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Wejdź na adres
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Licencja
75 |
76 | Ten projekt jest objęty licencją MIT - zobacz [LICENCJA](../LICENSE) plik aby sprawdzić szczegóły
77 |
--------------------------------------------------------------------------------
/translations/README.ru.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Таблица содержимого
6 |
7 | - [О проекте](#about)
8 | - [Создано с помощью](#built-with)
9 | - [Установка](#installation)
10 | - [Демо](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Читайте на [других языках](./Translations.md)_
15 |
16 | 🤔 О проекте
17 |
18 | Цель этого репозитория - создать `Github Резюме` для каждого пользователя github.
19 |
20 | 🛠️ Создано с помощью
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript библиотека
23 | - [Material UI](https://material-ui.com/) - React UI фреймворк
24 |
25 | Установка
26 |
27 | Чтобы настроить приложение для разработки на локальном компьютере, следуйте инструкциям ниже:
28 |
29 | 1. Склонируйте репозиторий на свой компьютер
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Установите зависимости
37 |
38 | Если вы используете `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | или
45 |
46 | Если вы используете `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Запустите сервер разработки
53 |
54 | Если вы используете `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | или
61 |
62 | Если вы используете `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Откройте в браузере
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Лицензия
75 |
76 | Этот проект находится под лицензией MIT Лицензия - откройте [ЛИЦЕНЗИЯ](../LICENSE) файл для подробностей
77 |
--------------------------------------------------------------------------------
/translations/README.cs.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Seznam obsahu
6 |
7 | - [O projektu](#about)
8 | - [Použité nástroje](#built-with)
9 | - [Instalace](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Čti v [jiných jazycích](./Translations.md)_
15 |
16 | 🤔 O projektu
17 |
18 | Cíl tohoto repozitáře je vygenerovat `Github resumé` pro každého uživatele Github.
19 |
20 | 🛠️ Použité nástroje
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript library
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | Instalace
26 |
27 | Chceš-li nastavit aplikaci k vývoji na tvém lokálním stroji, následuj prosím pokyny níže:
28 |
29 | 1. Naklonuj si repozitář na svůj stroj
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Nainstaluj balíčky
37 |
38 | Používáš-li `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | nebo
45 |
46 | používáš-li `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Spusť vývojářský server
53 |
54 | Používáš-li `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | nebo
61 |
62 | používáš-li `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Přejdi na adresu
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Licenci
75 |
76 | Tento projekt spadá pod licenci MIT — pro více detailů navštiv soubor s [LICENCÍ](../LICENSE)
77 |
--------------------------------------------------------------------------------
/translations/README.uk.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Таблиця вмісту
6 |
7 | - [Про проект](#about)
8 | - [Створено за допомогою](#built-with)
9 | - [Встановлення](#installation)
10 | - [Демо](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Читайте [іншими мовами](./Translations.md)_
15 |
16 | 🤔 Про проект
17 |
18 | Мета цього репозиторію - створити `Github Резюме` для кожного користувача github.
19 |
20 | 🛠️ Створено за допомогою
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript бібліотека
23 | - [Material UI](https://material-ui.com/) - React UI фреймворк
24 |
25 | Встановлення
26 |
27 | Щоб налаштувати додаток для розробки на локальному комп'ютері, дотримуйтесь інструкцій нижче:
28 |
29 | 1. Клонуйте репозиторій на свій комп'ютер
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Встановіть залежності
37 |
38 | Якщо ви використовуєте `npm`
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | або
45 |
46 | Якщо ви використовуєте `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Запустіть сервер розробки
53 |
54 | Якщо ви використовуєте `npm`
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | або
61 |
62 | Якщо ви використовуєте `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Відкрийте в браузері
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Ліцензія
75 |
76 | Цей проект знаходиться під ліцензією MIT Ліцензія - відкрийте [ЛІЦЕНЗІЯ](../LICENSE) файл для подробиць
77 |
--------------------------------------------------------------------------------
/translations/README.te.md:
--------------------------------------------------------------------------------
1 | # గిట్ హబ్ రెసుమె జెనరేటర్
2 |
3 | 
4 |
5 | ## విషయ సూచిక
6 |
7 | - [అబౌట్](#about)
8 | - [బిల్ట్-విత్](#built-with)
9 | - [ఇన్స్టల్లేషన్](#installation)
10 | - [డెమో](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _ [వేరే భాషలో](./Translations.md) చదవండి_
15 |
16 | 🤔 అబౌట్
17 |
18 | ఈ రెపొసిటొరీ యొక్క ముఖ్య ఉద్దేశం ప్రతీ గిట్ హబ్ ఖాతాదారుని `గిట్ హబ్ రెసుమే` తయారుచెయ్యటంలో సహాయపడటం.
19 |
20 | 🛠️ బిల్ట్-విత్
21 |
22 | - [రియాక్ట్ జేయస్](https://reactjs.org/) - ఫ్రంట్-ఎండ్ జావాస్క్రిప్ట్ లైబ్రరీ
23 | - [మెటీరియల్ యు.ఐ](https://material-ui.com/) - రియాక్ట్ యు.ఐ ఫ్రేం వర్క్
24 |
25 | ఇన్స్టల్లేషన్
26 |
27 | మీ లొకల్ మషిన్ లో ఈ ఆప్ డెవెలొప్ చెయ్యటానికి, ఈ కింది సూచనలను పాటించండి:
28 |
29 | 1. ఈ రెపొ ని మీ లొకల్ మెషిన్ లో క్లోన్ చెయ్యండి.
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. ప్యాకేజిలని ఇన్స్టాల్ చెయ్యండి.
37 |
38 | మీరు గనక `npm` వాడితే
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | or
45 |
46 | మీరు గనక `yarn` వాడితే
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. డెవెలొప్మెంట్ సర్వర్ ని రన్ చెయ్యండి
53 |
54 | మీరు గనక `npm` వాడితే
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | or
61 |
62 | మీరు గనక `yarn` వాడితే
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. బ్రౌసర్ లొ కి వెళ్ళండి.
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 లైసెన్స్
75 |
76 | ఈ ప్రొజెక్ట్ యం.ఐ.టి లైసెన్స్ కింద ఉన్నది. మరిన్ని విషయాల కోసం [లైసెన్స్](../LICENSE) ఫైలు చూడండి.
77 |
--------------------------------------------------------------------------------
/translations/README.id.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## Daftar Isi
6 |
7 | - [Perkenalan](#about)
8 | - [Bahasa yang digunakan](#built-with)
9 | - [Instalasi](#installation)
10 | - [Demo](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _Baca juga dalam [bahasa yang lain](./Translations.md)_
15 |
16 | 🤔 Perkenalan
17 |
18 | Tujuan dari repositori ini adalah untuk menghasilkan `Resume Github` untuk setiap pengguna github.
19 |
20 | 🛠️ Dibuat dengan bahasa
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript library
23 | - [Material UI](https://material-ui.com/) - React UI Framework
24 |
25 | Instalasi
26 |
27 | Untuk menyiapkan aplikasi ini di komputer lokal Anda, ikuti petunjuk di bawah ini:
28 |
29 | 1. Klon repositori ini ke perangkat yang anda gunakan dengan cara
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. Install paket, dengan beberapa pilihan di bawah
37 |
38 | Jika kamu menggunakan `npm`,
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | atau
45 |
46 | Jika kamu menggunakan `yarn`
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. Lalu jalankan, dengan beberapa pilihan di bawah
53 |
54 | Jika kamu menggunakan `npm`,
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | atau
61 |
62 | Jika kamu menggunakan `yarn`
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. Lalu buka
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 Lisensi
75 |
76 | Proyek ini dilisensikan dengan Lisensi MIT - lihat [LISENSI](../LICENSE) file untuk selengkapnya
77 |
--------------------------------------------------------------------------------
/translations/README.ta.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | ## உள்ளடக்கம்
6 |
7 | - [விபரம்](#about)
8 | - [உருவாக்க பயன்பட்டவை](#built-with)
9 | - [நிறுவும் முறை](#installation)
10 | - [செய்முறை](#live-demo)
11 |
12 |
13 |
14 | ### 🌎 _[வேற்று மொழிகளில்](./Translations.md) வாசிக்க_
15 |
16 | 🤔 விபரம்
17 |
18 | இந்த GitHub நிரல் களஞ்சியம் உருவாக்கபட்டதன் நோக்கம் யாதெனில் அனைத்து GitHub பயனர்களுக்கும் ஒரு `Github Resume` ஐ உருவாக்குவதே ஆகும்.
19 |
20 | 🛠️ உருவாக்க பயன்பட்டவை
21 |
22 | - [React JS](https://reactjs.org/) - Front-End JavaScript நூலகம்
23 | - [Material UI](https://material-ui.com/) - React UI கட்டமைப்பு
24 |
25 | நிறுவும் முறை
26 |
27 | உங்கள் கணினியில் இந்த செயலியை விருத்தி செய்ய, பின்வரும் அறிவுறுத்தல்களை பின்பற்றவும்.
28 |
29 | 1. இந்த களஞ்சியத்தை உங்கள் கணினியில் நகல் செய்தல்
30 |
31 | ```bash
32 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
33 | cd React-GitHub-Resume
34 | ```
35 |
36 | 2. தொகுப்புக்களை நிறுவுதல்
37 |
38 | நீங்கள் `npm` பயன்படுத்துபவர் ஆயின்
39 |
40 | ```bash
41 | npm install
42 | ```
43 |
44 | அல்லது
45 |
46 | நீங்கள் `yarn` பயன்படுத்துபவர் ஆயின்
47 |
48 | ```bash
49 | yarn
50 | ```
51 |
52 | 3. விருத்தியாக்க சேவையகத்தை இயக்கல்
53 |
54 | நீங்கள் `npm` பயன்படுத்துபவர் ஆயின்
55 |
56 | ```bash
57 | npm start
58 | ```
59 |
60 | அல்லது
61 |
62 | நீங்கள் `yarn` பயன்படுத்துபவர் ஆயின்
63 |
64 | ```bash
65 | yarn start
66 | ```
67 |
68 | 4. பார்வையிடல்
69 |
70 |
71 |
72 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
73 |
74 | ## 📄 உரிமம்
75 |
76 | இந்த திட்டம் MIT உரிமத்தின் கீழ் உரிமமளிக்கபட்டது - விபரங்களுக்கு [உரிம](../LICENSE) கோப்பை பார்வையிடவும்
77 |
--------------------------------------------------------------------------------
/src/pages/LandingPage.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import { SearchForm, Footer, Header } from "../components";
3 | import { Grid, withStyles, Typography } from "@material-ui/core";
4 | import packageJson from "../../package.json";
5 | import { withTranslation } from 'react-i18next';
6 |
7 | const style = {
8 | container: {
9 | maxWidth: "80%",
10 | margin: "2rem auto",
11 | padding: "1rem",
12 | background: "white",
13 | borderRadius: "10px",
14 | "@media (min-width: 992px)": {
15 | maxWidth: "800px",
16 | },
17 | },
18 | };
19 |
20 | class Home extends Component {
21 | state = {
22 | username: "",
23 | validationError: false,
24 | };
25 |
26 | handleChange = (event) => {
27 | this.setState({ username: event.target.value });
28 | };
29 |
30 | handleSubmit = (event) => {
31 | event.preventDefault();
32 |
33 | if (this.state.username.trim() !== "") {
34 | this.props.history.push("/user/" + this.state.username + "/resume");
35 | } else {
36 | this.setState({ validationError: true });
37 | }
38 | };
39 |
40 | render() {
41 | const { classes } = this.props;
42 |
43 | return (
44 |
45 |
46 |
52 |
53 | {this.props.t('Github Resume Generator')} {packageJson.version}
54 |
55 |
56 | Please enter GitHub username
57 |
58 |
59 |
64 |
65 |
66 |
67 | );
68 | }
69 | }
70 |
71 | export default withStyles(style)(withTranslation()((Home)));
72 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
16 |
17 |
23 |
24 |
28 |
29 |
38 | GitHub | Resume
39 |
40 |
46 | You need to enable JavaScript to run this app.
47 |
48 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/components/RepoCard.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { Grid, makeStyles, Typography } from "@material-ui/core";
4 |
5 | const useStyles = makeStyles((theme) => ({
6 | card: {
7 | borderTop: "1px dashed #bfbfbf",
8 | padding: "1rem",
9 | display: "inline-block",
10 | "@media (min-width: 992px)": {
11 | width: "40%",
12 | minHeight: "100px",
13 | },
14 | },
15 | chip: {
16 | display: "inline-block",
17 | margin: "0 0.5rem 0.5rem 0",
18 | fontSize: "0.7rem",
19 | fontWeight: "bold",
20 | },
21 | icon: {
22 | marginRight: "0.5rem",
23 | color: "black",
24 | },
25 | iconAlign: {
26 | verticalAlign: "middle",
27 | },
28 | }));
29 |
30 | const RepoCard = (props) => {
31 | const { item, language } = props;
32 | const classes = useStyles();
33 | const hasLanguages = Object.keys(item.languages).length === 0 ? false : true;
34 |
35 | return (
36 |
37 | {item.stars}
38 |
44 |
48 | {item.name}
49 |
50 |
51 |
52 | {item.description}
53 |
54 | {hasLanguages ? (
55 | Object.keys(item.languages).map((lang, index) =>
56 | language[lang] ? (
57 |
58 |
62 | {lang}
63 |
64 | ) : null
65 | )
66 | ) : (
67 | <>
68 |
75 | no language detected
76 | >
77 | )}
78 |
79 | );
80 | };
81 |
82 | RepoCard.propTypes = {
83 | item: PropTypes.shape({
84 | name: PropTypes.string,
85 | stars: PropTypes.number,
86 | languages: PropTypes.object,
87 | description: PropTypes.string,
88 | url: PropTypes.string,
89 | }),
90 | };
91 |
92 | export default RepoCard;
93 |
--------------------------------------------------------------------------------
/src/components/Header.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react';
2 | import { Grid, InputLabel, makeStyles, Select, MenuItem } from "@material-ui/core";
3 |
4 | import i18n from '../i18n';
5 |
6 | import languages from '../constants/languages';
7 |
8 | const useStyles = makeStyles((theme) => ({
9 | container: {
10 | maxWidth: "80%",
11 | margin: "2rem auto",
12 | padding: "1rem",
13 | borderRadius: "10px",
14 | "@media (min-width: 992px)": {
15 | maxWidth: "800px",
16 | },
17 | },
18 | languageWrapper: {
19 | display: 'flex',
20 | width: '100%',
21 | alignItems: 'center',
22 | justifyContent: 'flex-end'
23 | },
24 | languageLabel: {
25 | marginRight: '8px'
26 | }
27 | }));
28 |
29 | const Header = () => {
30 | const classes = useStyles();
31 | const [languageCode, setLanguageCode] = useState('en');
32 |
33 | const handleChangeLanguage = ({ target: { value } }) => {
34 | setLanguageCode(value);
35 | i18n.changeLanguage(value);
36 |
37 | if (
38 | window
39 | && window.localStorage
40 | ) {
41 | window.localStorage.setItem('REACT_GITHUB_PROFILE_LANG', value);
42 | }
43 | }
44 |
45 | useEffect(() => {
46 | if (
47 | window
48 | && window.localStorage
49 | ) {
50 | const lang = window.localStorage.getItem('REACT_GITHUB_PROFILE_LANG');
51 | setLanguageCode(lang || 'en');
52 | }
53 | }, []);
54 |
55 | useEffect(() => {
56 | i18n.changeLanguage(languageCode);
57 | }, [languageCode]);
58 |
59 | return (
60 |
64 |
67 |
71 | Languages
72 |
73 |
79 |
80 | None
81 |
82 | {
83 | languages.length > 0
84 | ?
85 | languages.map((item, index) => {
86 | return (
87 |
91 | {item.nativeName}
92 |
93 | )
94 | })
95 | : null
96 | }
97 |
98 |
99 |
100 | )
101 | };
102 |
103 | export default Header;
104 |
--------------------------------------------------------------------------------
/src/components/SearchForm.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import {
4 | FormControl,
5 | makeStyles,
6 | Grid,
7 | TextField,
8 | Button,
9 | Typography,
10 | } from "@material-ui/core";
11 | import AccountCircle from "@material-ui/icons/AccountCircle";
12 |
13 | const useStyles = makeStyles((theme) => ({
14 | margin: {
15 | margin: theme.spacing(1),
16 | },
17 | textField: {
18 | margin: "1.5rem 0",
19 | height: "30px",
20 | width: "100%",
21 | maxWidth: "300px",
22 | fontSize: "0.9rem",
23 | },
24 | button: {
25 | border: "none",
26 | borderRadius: "5px",
27 | color: "#fff",
28 | fontWeight: "bold",
29 | backgroundColor: "#29b6f6",
30 | height: "36px",
31 | padding: "0 1.5rem",
32 | marginLeft: "0.5rem",
33 | },
34 | validationTypo: {
35 | color: "red",
36 | fontSize: "0.9rem",
37 | },
38 | icon: {
39 | marginRight: "0.5rem",
40 | color: "black",
41 | },
42 | }));
43 |
44 | const SearchForm = (props) => {
45 | const classes = useStyles();
46 |
47 | return (
48 |
49 |
89 |
90 | );
91 | };
92 |
93 | SearchForm.propTypes = {
94 | validationError: PropTypes.bool.isRequired,
95 | handleChange: PropTypes.func.isRequired,
96 | handleSubmit: PropTypes.func.isRequired,
97 | };
98 |
99 | export default SearchForm;
100 |
--------------------------------------------------------------------------------
/translations/Translations.md:
--------------------------------------------------------------------------------
1 | # Translations
2 |
3 | | | Translated Link |
4 | | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
5 | | | [Français](README.fr.md) |
6 | | | [Español](README.es.md) |
7 | | | [Deutsch](README.de.md) |
8 | | | [Português (Brasil)](README.pt_br.md) |
9 | | | [Polski](README.pl.md) |
10 | | | [Українська](./README.uk.md) |
11 | | | [Русский](./README.ru.md) |
12 | | | [Italiano](./README.it.md) |
13 | | | [తెలుగు](./README.te.md) |
14 | | | [Čeština](README.cs.md) |
15 | | | [தமிழ்](./README.ta.md) |
16 | | | [Bahasa Indonesia](./README.id.md) |
17 | | | [සිංහල](./README.si.md) |
18 | | | [Български](./README.bg.md) |
19 | | | [中文](./README.zh.md) |
20 |
--------------------------------------------------------------------------------
/src/pages/Resume.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import { UserProfile, Loader } from "../components";
3 | import { Grid } from "@material-ui/core";
4 | import Axios from "axios";
5 |
6 | const GITHUB_API_USER = "https://api.github.com/users/";
7 |
8 | export default class Resume extends Component {
9 | state = {
10 | data: null,
11 | isFetching: false,
12 | language: [],
13 | };
14 |
15 | async componentDidMount() {
16 | const { username } = this.props.match.params;
17 | this.setState({ isFetching: true });
18 | let lang = {};
19 |
20 | //Cached language data
21 | if (localStorage.getItem("lang")) {
22 | lang.data = JSON.parse(localStorage.getItem("lang"));
23 | } else {
24 | localStorage.clear();
25 | lang = await Axios.get("https://github-lang-deploy.herokuapp.com/lang");
26 | localStorage.setItem("lang", JSON.stringify(lang.data));
27 | }
28 | this.setState({ language: lang.data });
29 | try {
30 | const userData = await this.fetchUserData(username);
31 | const userRepos = await this.fetchUserRepos(username);
32 | this.setState({
33 | isFetching: false,
34 | data: { ...userData, repositories: userRepos },
35 | });
36 | } catch (err) {
37 | this.props.history.push({
38 | pathname: "/404-not-found",
39 | state: {
40 | user: this.props.match.params.username,
41 | error: err.message,
42 | },
43 | });
44 | }
45 | }
46 |
47 | handleErrors(response) {
48 | if (!response.statusText) {
49 | var error = new Error(response.statusText || response.status);
50 | return Promise.reject(error);
51 | }
52 | return response.data;
53 | }
54 |
55 | fetchUserData(username) {
56 | return Axios.get(GITHUB_API_USER + username).then(this.handleErrors);
57 | }
58 |
59 | fetchUserRepos(username) {
60 | return Axios.get(GITHUB_API_USER + username + "/repos")
61 | .then(this.handleErrors)
62 | .then((repositories) => this.fetchReposLanguages(repositories));
63 | }
64 | comapare(a, b) {
65 | if (a.stargazers_count > b.stargazers_count) return -1;
66 | else if (a.stargazers_count < b.stargazers_count) return 1;
67 | else if ((a.stargazers_count = b.stargazers_count)) {
68 | if (a.forks_count > b.forks_count) return -1;
69 | else if (a.forks_count < b.forks_count) return 1;
70 | else return 0;
71 | }
72 | }
73 |
74 | fetchReposLanguages(repositories) {
75 | repositories.sort(this.comapare);
76 | return Promise.all(
77 | repositories.map((repo) =>
78 | Axios.get(repo.languages_url)
79 | .then(this.handleErrors)
80 | .then((repoLanguages) => {
81 | return {
82 | name: repo.name,
83 | description: repo.description,
84 | url: repo.html_url,
85 | languages: repoLanguages,
86 | stars: repo.stargazers_count,
87 | watchers: repo.watchers_count,
88 | };
89 | })
90 | )
91 | );
92 | }
93 |
94 | render() {
95 | const { username } = this.props.match.params;
96 | const { data, isFetching, language } = this.state;
97 |
98 | if (!isFetching && data) {
99 | return (
100 |
101 |
102 |
103 | );
104 | } else {
105 | return ;
106 | }
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # React-Github-Resume Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at Sabesan996@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/src/components/UserProfile.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { Link } from "react-router-dom";
4 | import { RepoCard, Footer } from "./index";
5 |
6 | import { makeStyles, Grid, Avatar, Typography } from "@material-ui/core";
7 |
8 | const useStyles = makeStyles((theme) => ({
9 | container: {
10 | maxWidth: "80%",
11 | margin: "2rem auto",
12 | padding: "1rem",
13 | background: "white",
14 | borderRadius: "10px",
15 | "@media (min-width: 992px)": {
16 | maxWidth: "800px",
17 | },
18 | },
19 | avatar: {
20 | borderRadius: "100%",
21 | maxWidth: "150px",
22 | maxHeight: "150px",
23 | width: theme.spacing(30),
24 | height: theme.spacing(30),
25 | },
26 | blockFlex: {
27 | width: "80%",
28 | "@media (min-width: 992px)": {
29 | display: "flex",
30 | justifyContent: "space-evenly",
31 | alignItems: "center",
32 | width: "800px",
33 | },
34 | },
35 | blockFlexRepo: {
36 | width: "80%",
37 | "@media (min-width: 992px)": {
38 | display: "flex",
39 | justifyContent: "space-evenly",
40 | flexWrap: "wrap",
41 | alignItems: "flex-start",
42 | width: "800px",
43 | },
44 | },
45 | blockItem: {
46 | padding: "0 1rem",
47 | },
48 | info: {
49 | margin: "2rem 0",
50 | },
51 | icon: {
52 | marginRight: "0.5rem",
53 | color: "black",
54 | },
55 | }));
56 |
57 | const UserProfile = (props) => {
58 | const { username, language } = props;
59 | const {
60 | name,
61 | bio,
62 | location,
63 | company,
64 | login,
65 | avatar_url,
66 | repositories,
67 | } = props.data;
68 | const classes = useStyles();
69 | return (
70 |
71 |
72 |
73 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | {name ? (
83 |
84 | {" "}
85 | {name}
86 |
87 | ) : null}
88 | {login ? (
89 |
90 | {" "}
91 | {login}
92 |
93 | ) : null}
94 | {bio ? (
95 |
96 | {" "}
97 | {bio}
98 |
99 | ) : null}
100 | {location ? (
101 |
102 |
105 | {location}
106 |
107 | ) : null}
108 | {company ? (
109 |
110 |
111 | {company}
112 |
113 | ) : null}
114 |
115 |
116 |
117 |
118 | {repositories.length > 0 ? (
119 | repositories.map((repo, index) => (
120 |
121 | ))
122 | ) : (
123 |
124 |
125 | {username} does not has any repositories
126 |
127 | )}
128 |
129 |
130 |
131 |
132 | );
133 | };
134 |
135 | UserProfile.propTypes = {
136 | data: PropTypes.object.isRequired,
137 | };
138 |
139 | export default UserProfile;
140 |
--------------------------------------------------------------------------------
/src/serviceWorker.js:
--------------------------------------------------------------------------------
1 | // This optional code is used to register a service worker.
2 | // register() is not called by default.
3 |
4 | // This lets the app load faster on subsequent visits in production, and gives
5 | // it offline capabilities. However, it also means that developers (and users)
6 | // will only see deployed updates on subsequent visits to a page, after all the
7 | // existing tabs open on the page have been closed, since previously cached
8 | // resources are updated in the background.
9 |
10 | // To learn more about the benefits of this model and instructions on how to
11 | // opt-in, read https://bit.ly/CRA-PWA
12 |
13 | const isLocalhost = Boolean(
14 | window.location.hostname === 'localhost' ||
15 | // [::1] is the IPv6 localhost address.
16 | window.location.hostname === '[::1]' ||
17 | // 127.0.0.0/8 are considered localhost for IPv4.
18 | window.location.hostname.match(
19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
20 | )
21 | );
22 |
23 | export function register(config) {
24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
25 | // The URL constructor is available in all browsers that support SW.
26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
27 | if (publicUrl.origin !== window.location.origin) {
28 | // Our service worker won't work if PUBLIC_URL is on a different origin
29 | // from what our page is served on. This might happen if a CDN is used to
30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374
31 | return;
32 | }
33 |
34 | window.addEventListener('load', () => {
35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
36 |
37 | if (isLocalhost) {
38 | // This is running on localhost. Let's check if a service worker still exists or not.
39 | checkValidServiceWorker(swUrl, config);
40 |
41 | // Add some additional logging to localhost, pointing developers to the
42 | // service worker/PWA documentation.
43 | navigator.serviceWorker.ready.then(() => {
44 | console.log(
45 | 'This web app is being served cache-first by a service ' +
46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA'
47 | );
48 | });
49 | } else {
50 | // Is not localhost. Just register service worker
51 | registerValidSW(swUrl, config);
52 | }
53 | });
54 | }
55 | }
56 |
57 | function registerValidSW(swUrl, config) {
58 | navigator.serviceWorker
59 | .register(swUrl)
60 | .then(registration => {
61 | registration.onupdatefound = () => {
62 | const installingWorker = registration.installing;
63 | if (installingWorker == null) {
64 | return;
65 | }
66 | installingWorker.onstatechange = () => {
67 | if (installingWorker.state === 'installed') {
68 | if (navigator.serviceWorker.controller) {
69 | // At this point, the updated precached content has been fetched,
70 | // but the previous service worker will still serve the older
71 | // content until all client tabs are closed.
72 | console.log(
73 | 'New content is available and will be used when all ' +
74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
75 | );
76 |
77 | // Execute callback
78 | if (config && config.onUpdate) {
79 | config.onUpdate(registration);
80 | }
81 | } else {
82 | // At this point, everything has been precached.
83 | // It's the perfect time to display a
84 | // "Content is cached for offline use." message.
85 | console.log('Content is cached for offline use.');
86 |
87 | // Execute callback
88 | if (config && config.onSuccess) {
89 | config.onSuccess(registration);
90 | }
91 | }
92 | }
93 | };
94 | };
95 | })
96 | .catch(error => {
97 | console.error('Error during service worker registration:', error);
98 | });
99 | }
100 |
101 | function checkValidServiceWorker(swUrl, config) {
102 | // Check if the service worker can be found. If it can't reload the page.
103 | fetch(swUrl, {
104 | headers: { 'Service-Worker': 'script' },
105 | })
106 | .then(response => {
107 | // Ensure service worker exists, and that we really are getting a JS file.
108 | const contentType = response.headers.get('content-type');
109 | if (
110 | response.status === 404 ||
111 | (contentType != null && contentType.indexOf('javascript') === -1)
112 | ) {
113 | // No service worker found. Probably a different app. Reload the page.
114 | navigator.serviceWorker.ready.then(registration => {
115 | registration.unregister().then(() => {
116 | window.location.reload();
117 | });
118 | });
119 | } else {
120 | // Service worker found. Proceed as normal.
121 | registerValidSW(swUrl, config);
122 | }
123 | })
124 | .catch(() => {
125 | console.log(
126 | 'No internet connection found. App is running in offline mode.'
127 | );
128 | });
129 | }
130 |
131 | export function unregister() {
132 | if ('serviceWorker' in navigator) {
133 | navigator.serviceWorker.ready
134 | .then(registration => {
135 | registration.unregister();
136 | })
137 | .catch(error => {
138 | console.error(error.message);
139 | });
140 | }
141 | }
142 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GitHub Resume Generator
2 |
3 | 
4 |
5 | [](https://github.com/sabesansathananthan/React-GitHub-Resume) [](https://react-github-resume.vercel.app/) [](https://react-github-resume.vercel.app/) [](https://github.com/sabesansathananthan/React-GitHub-Resume) [](https://github.com/sabesansathananthan/React-GitHub-Resume/search?l=JavaScript&type=code) [](https://github.com/sabesansathananthan/React-GitHub-Resume/tree/master/src) [](https://github.com/sabesansathananthan/React-GitHub-Resume) [](https://github.com/sabesansathananthan/React-GitHub-Resume/deployments) [](./LICENSE)
6 |
7 | ## Table of Content
8 |
9 | - [About](#about)
10 | - [Built with](#built-with)
11 | - [Installation](#installation)
12 | - [Demo](#live-demo)
13 |
14 |
15 |
16 | ### 🌎 _Read in [other languages](./translations/Translations.md)_
17 |
18 |
19 |
20 | [ ](./translations/README.fr.md) Upcoming
21 | [ ](./translations/README.es.md)
22 | [ ](./translations/README.de.md) Upcoming
23 | [ ](./translations/README.pt_br.md)
24 | [ ](./translations/README.pl.md)
25 | [ ](./translations/README.uk.md)
26 | [ ](./translations/README.ru.md)
27 | [ ](./translations/README.it.md)
28 | [ ](./translations/README.te.md)
29 | [ ](./translations/README.cs.md)
30 | [ ](./translations/README.ta.md)
31 | [ ](./translations/README.id.md)
32 | [ ](./translations/README.si.md)
33 | [ ](./translations/README.bg.md)
34 | [ ](./translations/README.zh.md)
35 |
36 |
37 |
38 | 🤔 About
39 |
40 | Aim of this repository is to generate `Github Resume` for each github users.
41 |
42 | 🛠️ Built with
43 |
44 | - [React JS](https://reactjs.org/) - Front-End JavaScript library
45 | - [Material UI](https://material-ui.com/) - React UI Framework
46 |
47 | Installation
48 |
49 | To setup the app for development on your local machine, please follow the instructions below:
50 |
51 | 1. Clone the repo to your machine
52 |
53 | ```bash
54 | git clone https://github.com/sabesansathananthan/React-GitHub-Resume.git
55 | cd React-GitHub-Resume
56 | ```
57 |
58 | 2. Install packages
59 |
60 | If you use `npm`
61 |
62 | ```bash
63 | npm install
64 | ```
65 |
66 | or
67 |
68 | If you use `yarn`
69 |
70 | ```bash
71 | yarn
72 | ```
73 |
74 | 3. Run the development server
75 |
76 | If you use `npm`
77 |
78 | ```bash
79 | npm start
80 | ```
81 |
82 | or
83 |
84 | If you use `yarn`
85 |
86 | ```bash
87 | yarn start
88 | ```
89 |
90 | 4. Visit
91 |
92 |
93 |
94 | [](https://vercel.com/new/git/external?repository-url=https://github.com/sabesansathananthan/React-GitHub-Resume)
95 |
96 | ## 📄 License
97 |
98 | This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details
99 |
--------------------------------------------------------------------------------