Repository: subeshb1/developer-community-stats
Branch: main
Commit: 424aeec9e77f
Files: 212
Total size: 328.5 KB
Directory structure:
gitextract_fn003fxy/
├── .eslintrc.js
├── .github/
│ ├── pull_request_template.md
│ └── workflows/
│ ├── add_reactions.yaml
│ ├── contributor_greet.yaml
│ ├── contributor_pr_status_comment.yaml
│ ├── contributor_spec.yaml
│ ├── main_deploy.yaml
│ └── staging_deploy.yaml
├── .gitignore
├── .nvmrc
├── .prettierrc
├── .version
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── IDEAS.md
├── LICENSE
├── README.md
├── contributors.json
├── country-codes.js
├── gatsby-browser.js
├── gatsby-config.js
├── gatsby-node.js
├── gatsby-ssr.js
├── legacy_store.js
├── mock-stats-generator.js
├── package.json
├── readme-profiles/
│ ├── 5h0bh4nk.md
│ ├── 96RadhikaJadhav.md
│ ├── AAAliBaba.md
│ ├── Abhikumar98.md
│ ├── Ahkam95.md
│ ├── AhmadShaaban.md
│ ├── AnshumanMahato.md
│ ├── Ashank16.md
│ ├── BasilVictor.md
│ ├── BhanukaC.md
│ ├── Bharrod321.md
│ ├── BillGun.md
│ ├── Chobocharles.md
│ ├── Deveshgsk.md
│ ├── Elisecroft.md
│ ├── Gaurab4.md
│ ├── Guberlo.md
│ ├── Hamza-Slama.md
│ ├── Janitham97.md
│ ├── Kritimakaushal.md
│ ├── Mogakamo.md
│ ├── Mr-emeka.md
│ ├── NathanPickard.md
│ ├── Nyd3lig.md
│ ├── Pratikzzz.md
│ ├── RajeshNathani.md
│ ├── RebaiAhmed.md
│ ├── Riyana6.md
│ ├── Ronal2do.md
│ ├── Semvrij.md
│ ├── Shreejana123.md
│ ├── Siddhant-K-code.md
│ ├── SkyC0der.md
│ ├── SrijitaSarkar99.md
│ ├── TanishqDsharma.md
│ ├── Tawishi.md
│ ├── Thusal06.md
│ ├── Zura79.md
│ ├── abhishekpatel946.md
│ ├── afonsocarlos.md
│ ├── alexkimeu0.md
│ ├── alvinuday.md
│ ├── ami1708.md
│ ├── amitsgh.md
│ ├── amitverma07.md
│ ├── anacarolinaarellano.md
│ ├── ankit-rawani.md
│ ├── anu-ragi.md
│ ├── armsasmart.md
│ ├── ayansiddiqui007.md
│ ├── ayoolafelix.md
│ ├── b2pacific.md
│ ├── bartomiak.md
│ ├── bensbits91.md
│ ├── bianca-michels-barcelos.md
│ ├── binismail.md
│ ├── bojandevic.md
│ ├── bolu-tife.md
│ ├── brianleemcqueen.md
│ ├── bruceyboy86.md
│ ├── claudemuller.md
│ ├── dao-phuong.md
│ ├── devblin.md
│ ├── devonpmack.md
│ ├── edazpotato.md
│ ├── eitinaa.md
│ ├── engrrbilal.md
│ ├── faisaljamil25.md
│ ├── femakin.md
│ ├── fgiuliani.md
│ ├── gauravbisht005.md
│ ├── ghanender-chauhan.md
│ ├── guijacobus2.md
│ ├── hardik7e.md
│ ├── hilbug.md
│ ├── huqi.md
│ ├── improbably.md
│ ├── ishantsingla18.md
│ ├── jackHedaya.md
│ ├── jainsarthak216.md
│ ├── jamesmulligan.md
│ ├── joharikushagra.md
│ ├── jonathanvanhaaften.md
│ ├── kanchanachathuranga.md
│ ├── kikit0106.md
│ ├── kodekin.md
│ ├── kontesanjana.md
│ ├── kree666.md
│ ├── levi-pires.md
│ ├── madhav1928.md
│ ├── mctraore.md
│ ├── mdb1710.md
│ ├── missym2.md
│ ├── mohsin-code.md
│ ├── moisesjsalmeida.md
│ ├── msriaz.md
│ ├── nikolas-haug.md
│ ├── nitch193.md
│ ├── oli799.md
│ ├── oshadeegangangana.md
│ ├── oshka.md
│ ├── ousainu.md
│ ├── parryk303.md
│ ├── philip-hobobo.md
│ ├── pkspyder007.md
│ ├── pranshumaheshwari.md
│ ├── raghavg27.md
│ ├── raj5036.md
│ ├── rendani.md
│ ├── rexdivakar.md
│ ├── riyajain2.md
│ ├── rukundo-kevin.md
│ ├── sagarpandyansit.md
│ ├── saileshbro.md
│ ├── sanjus-robotic-studio.md
│ ├── saranshkotnala.md
│ ├── sathiranipun.md
│ ├── setheal.md
│ ├── shankar524.md
│ ├── shinigami2905.md
│ ├── shreyaraj13.md
│ ├── shubhik7.md
│ ├── sonylomo.md
│ ├── sripaad.md
│ ├── studpeps.md
│ ├── subeshb1.md
│ ├── suffisme.md
│ ├── swojeet.md
│ ├── tae8838.md
│ ├── taylor009.md
│ ├── thpadelis.md
│ ├── tooshar.md
│ ├── vatsalgp.md
│ ├── veranith.md
│ ├── viraldevpb.md
│ ├── vppillai.md
│ ├── vunderkind.md
│ ├── wsameer.md
│ ├── xdebbie.md
│ └── xxx32.md
├── specs/
│ └── contributor.test.js
├── src/
│ ├── components/
│ │ ├── DeveloperCard/
│ │ │ └── index.jsx
│ │ ├── Image.js
│ │ ├── Layouts/
│ │ │ ├── AppDisplayLayout.jsx
│ │ │ ├── BlogLayout.jsx
│ │ │ └── Layout.jsx
│ │ ├── Popover/
│ │ │ └── index.jsx
│ │ ├── SideBar/
│ │ │ └── index.js
│ │ ├── Toc/
│ │ │ └── index.js
│ │ ├── ToolTip/
│ │ │ └── index.jsx
│ │ ├── footer/
│ │ │ └── index.js
│ │ ├── index.js
│ │ ├── mdx/
│ │ │ ├── Header.js
│ │ │ ├── code.js
│ │ │ ├── layout.js
│ │ │ └── theme/
│ │ │ ├── github.css
│ │ │ └── github.js
│ │ ├── navbar/
│ │ │ ├── ThemePicker.jsx
│ │ │ ├── common.jsx
│ │ │ └── index.jsx
│ │ ├── seo.js
│ │ └── utils/
│ │ └── index.js
│ ├── css/
│ │ ├── 404.scss
│ │ ├── _markdown.scss
│ │ ├── components/
│ │ │ ├── _code-snippet.scss
│ │ │ ├── _developer-card.scss
│ │ │ ├── _footer.scss
│ │ │ ├── _navbar.scss
│ │ │ ├── _sidebar.scss
│ │ │ ├── _table-of-contents.scss
│ │ │ ├── _theme-picker.scss
│ │ │ ├── _tooltip.scss
│ │ │ └── app-container.scss
│ │ ├── index.scss
│ │ ├── layout/
│ │ │ └── _blog_layout.scss
│ │ └── page/
│ │ ├── image-to-ascii.scss
│ │ └── nepali-date.scss
│ ├── hooks/
│ │ ├── index.js
│ │ └── windowHooks.js
│ ├── pages/
│ │ ├── .index.js.swp
│ │ ├── 404.js
│ │ └── index.js
│ ├── templates/
│ │ └── readme-profile.js
│ └── utils/
│ └── typography.js
└── stats-generator.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintrc.js
================================================
module.exports = {
"extends": ["react-app", "plugin:jsx-a11y/recommended"],
"plugins": ["jsx-a11y"],
"rules": {
"jsx-a11y/rule-name": "warn",
'jsx-a11y/no-onchange': 'off',
},
"env": {
"browser": true,
"es6": true,
},
"plugins": [
"react",
],
"globals": {
"graphql": false,
},
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true,
},
}
}
================================================
FILE: .github/pull_request_template.md
================================================
## Issue
## Description
## Checklist
- [ ] Added contributor object in ascending order in `contributors.json`
- [ ] Github action build passing
- [ ] No merge conflicts
================================================
FILE: .github/workflows/add_reactions.yaml
================================================
name: add-reaction-to-pr-description
on: [status]
jobs:
add-reaction:
runs-on: ubuntu-latest
steps:
- uses: peter-evans/create-pull-request@v3
with:
message: testing
reactions: heart, hooray, +1, rocket
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token-user-login: 'github-actions[bot]'
allow-repeats: false
================================================
FILE: .github/workflows/contributor_greet.yaml
================================================
name: greet-contributor-action
on: [pull_request_target]
jobs:
greet-user:
runs-on: ubuntu-latest
steps:
- uses: mshick/add-pr-comment@v1
with:
message: |
Thanks for contributing to `developer-community-stats`!
We are happy to have you as a contributor. Your PR will be reviewed and merged to master.
Once it is merged you can see your stats in: https://developer-community-stats.netlify.app/
If you want to contribute to other issues check out [Issues needed Help](https://github.com/subeshb1/developer-community-stats/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
Please share your feedback and suggestions in this Issue: [Suggestions](https://github.com/subeshb1/developer-community-stats/issues/202)
This will help us improve a lot :)
**Note: Don't forget to star, share the repository and follow @subeshb1 :)**
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token-user-login: 'github-actions[bot]'
allow-repeats: false
================================================
FILE: .github/workflows/contributor_pr_status_comment.yaml
================================================
name: ContributorSpecFailure
on:
workflow_run:
workflows:
- ContributorSpec
types:
- completed
jobs:
test-build:
runs-on: ubuntu-latest
steps:
- env:
CONTEXT: ${{ toJSON(github) }}
run: echo $CONTEXT
- name: Download artifact
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow.id }}
- run: echo "##[set-output name=id;]$(jq '.event.number' ${{ github.event.workflow_run.id }}/data.json)"
id: pull_request
- run: jq '.event.number' ${{ github.event.workflow_run.id }}/data.json
- run: jq '.' ${{ github.event.workflow_run.id }}/data.json
- env:
TEST: steps.pull_request.outputs.id
run: echo $TEST
- if: ${{ github.event.workflow_run.conclusion == 'failure' }}
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ steps.pull_request.outputs.id }}
body: |
It looks like you haven't ordered the JSON values in **ascending order alphabetically ignoring case** by Github user name or your JSON syntax is wrong. Please read the issue description before taking them.
If you know about nodejs run the following command to sort the list:
```sh
npx sort-json contributors.json --ignore-case
```
**If you don't know about node js, go the following link:**
https://codeshack.io/json-sorter/
Paste the content of the file and generate a sorted JSON. After the paste the sorted list in the file and make a commit.
Once this is done, your PR will be reviewed and merged.
If you still have problem you can tag in a maintainer: @subeshb1
reactions: eyes, -1, confused
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ steps.pull_request.outputs.id }}
body: |
Great! Your PR has succesfully passed all the checks. 🚀
Your PR will be merged by a maintainer. Please be patient.
In the meantime checkout the issues for anything you can help out on: [Issues needed Help](https://github.com/subeshb1/developer-community-stats/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
reactions: heart, hooray, +1, rocket
================================================
FILE: .github/workflows/contributor_spec.yaml
================================================
name: "ContributorSpec"
on: [pull_request]
jobs:
test-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Build Project
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Cache multiple paths
uses: actions/cache@v2
with:
path: |
~/cache
!~/cache/exclude
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package.lock.json') }}
- run: npm i
- run: NEW_USER=$(git show main:contributors.json | jq -r --argjson new "$(cat contributors.json)" '. | keys - ($new | keys) | join(",")') npm run test
- if: always()
env:
CONTEXT: ${{ toJSON(github) }}
run: echo $CONTEXT > data.json
- uses: actions/upload-artifact@v2
if: always()
with:
name: ${{ github.run_id }}
path: ./data.json
================================================
FILE: .github/workflows/main_deploy.yaml
================================================
name: AppDeploy
on:
schedule:
- cron: '0 */4 * * *'
push:
paths:
- 'readme-profiles/*.md'
- 'src/**'
- 'contributors.json'
branches:
- main
jobs:
deploy-app:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Build Project
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Cache multiple paths
uses: actions/cache@v2
with:
path: |
~/cache
!~/cache/exclude
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package.lock.json') }}
- run: npm i
- env:
GITHUB_TOKEN: ${{ secrets.USER_TOKEN }}
run: npm run build
- name: Deploy production to Netlify
uses: South-Paw/action-netlify-deploy@v1.0.4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify-site-id: ${{ secrets.NETLIFY_SITE_ID }}
build-dir: './public'
comment-on-commit: true
================================================
FILE: .github/workflows/staging_deploy.yaml
================================================
name: StagingAppDeploy
on:
push:
branches:
- staging
jobs:
deploy-app:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Build Project
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Cache multiple paths
uses: actions/cache@v2
with:
path: |
~/cache
!~/cache/exclude
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package.lock.json') }}
- run: npm i
- env:
GITHUB_TOKEN: ${{ secrets.USER_TOKEN }}
run: npm run build
- name: Deploy production to Netlify
uses: South-Paw/action-netlify-deploy@v1.0.4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify-site-id: ${{ secrets.NETLIFY_SITE_ID }}
build-dir: './public'
comment-on-commit: true
draft: true
================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Typescript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# gatsby files
.cache/
public/
# Mac files
.DS_Store
# Yarn
yarn-error.log
.pnp/
.pnp.js
# Yarn Integrity file
.yarn-integrity
# Local Netlify folder
.netlify
cra/*
.idea/*
commit.sh
================================================
FILE: .nvmrc
================================================
v12.4.0
================================================
FILE: .prettierrc
================================================
{
"trailingComma": "es5",
"semi": false,
"singleQuote": true
}
================================================
FILE: .version
================================================
1.0.0
================================================
FILE: CHANGELOG.md
================================================
# CHANGELOG
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at subeshb1@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Developer Community stats
We love contributions! We want to make contributing to this project as easy and friendly as possible, whether it's:
- Beginner PR requests
- Questions regarding any problems
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Suggestions and Feedbacks
## We Develop with Github
We use github to host code, to track issues and feature requests, as well as accept pull requests.
## We Use [Github Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests
Pull requests are the best way to propose changes to the codebase (we use [Github Flow](https://guides.github.com/introduction/flow/index.html)). We actively welcome your pull requests:
1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. Issue that pull request!
## Any contributions you make will be under the MIT Software License
In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project. Feel free to contact the maintainers if that's a concern.
## Contributing to Open issues and Challenges
The repository consists of Open issues encouraging beginners to take their first step to contribute to Open source. If you have any ideas regarding challenges, suggestions or feedback don't feel hesitant, create some issues.
When contributing to an issue be sure to read through the description and follow the steps and make sure all the builds in the PR succeed.
The most common contribution is adding yourself to `contributors.json`. See issue https://github.com/subeshb1/developer-community-stats/issues/8 on how to add your info and view your Github stats in https://developer-community-stats.netlify.app/.
## Contributing to Core Website
The core website is built with Gatsby, React and Github Graphql API. Follow the following steps to contribute to the website
```sh
# Fork the repo
https://github.com/subeshb1/developer-community-stats
# Clone your forked repo
$ git clone git@github.com:username/developer-community-stats.git
$ npm install
# Create a new branch for you.
$ git pull origin master # Pull the latest master
$ git checkout new-branch # Checkout to your new branch
# Start Gatsby mock server
ENV_TYPE=mock gatsby develop
# To start Gatsby server with github token and url expose the following variables
GITHUB_GRAPHQL_URL=
GITHUB_TOKEN=
# Run tests
$ npm run test
# Commit the changes
$ git commit -m "Commit message"
# Push your changes and
$ git push
# Make a pull request of your newly changed branch
[https://github.com/subeshb1/developer-community-stats/compare](https://github.com/username/developer-community-stats/compare)
```
================================================
FILE: IDEAS.md
================================================
# Suggestions or ideas of new features for Developer Community stats
This page will collect all the ideas or any suggestions for Developer Community stats
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2020 Subesh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# 🚀 Developer Community stats








A repository to encourage beginners to contribute to open source and for all contributors to view their Github stats.

## Contributing to Developer Community stats
### Contributing to Open issues and Challenges
The repository consists of Open issues encouraging beginners to take their first step to contribute to Open source. If you have any ideas regarding challenges, suggestions or feedback don't feel hesitant, create some issues.
When contributing to an issue be sure to read through the description and follow the steps and make sure all the builds in the PR succeed.
The most common contribution is adding yourself to `contributors.json`. See issue https://github.com/subeshb1/developer-community-stats/issues/8 on how to add your info and view your Github stats in https://developer-community-stats.netlify.app/.
### Contributing to Core Website
The core website is built with Gatsby, React and Github Graphql API. Follow the following steps to contribute to the website
```sh
# Fork the repo
https://github.com/subeshb1/developer-community-stats
# Clone your forked repo
$ git clone git@github.com:username/developer-community-stats.git
$ npm install
# Create a new branch for you.
$ git pull origin main # Pull the latest main branch
$ git checkout -b new-branch # Checkout to your new branch
# Start Gatsby mock server
ENV_TYPE=mock gatsby develop
# To start Gatsby server with github token and url expose the following variables
GITHUB_GRAPHQL_URL=
GITHUB_TOKEN=
# Run tests
$ npm run test
# Commit the changes
$ git commit -m "Commit message"
# Push your changes and
$ git push --set-upstream origin new-branch
# Make a pull request of your newly changed branch
[https://github.com/subeshb1/developer-community-stats/compare](https://github.com/username/developer-community-stats/compare)
```
### Have some Suggestions or a new Idea?
Add your idea/suggestion in the `IDEAS.md` file.
## License
[MIT](https://github.com/subeshb1/developer-community-stats/blob/main/LICENSE)
## Contributors
================================================
FILE: contributors.json
================================================
{
"21Rutam": {
"country": "India",
"name": "Rutam Prita Mishra"
},
"5h0bh4nk": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/shubhank-kulshreshtha-782627190/",
"name": "Shubhank Kulshreshtha"
},
"96RadhikaJadhav": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/radhika-jadhav-297672160/",
"name": "Radhika Jadhav",
"twitter": "https://twitter.com/Radhika47579652/status/1297174421124182016"
},
"AAAliBaba": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/arafat-arman-0207a714a/",
"name": "Arafat Arman"
},
"abhijeetekad": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/abhijeet-ekad-767a691aa/",
"name": "Abhijeet Rohidas Ekad"
},
"Abhikumar98": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/abhishekkumar98/",
"name": "Abhishek Kumar",
"twitter": "https://twitter.com/abhikumar_98"
},
"abhishekpatel946": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/abhishek-patel-700442172/",
"name": "Abhishek Patel",
"twitter": "https://twitter.com/abhishekpatel_0",
"website": "http://www.devabhishek.tech/"
},
"acorson1": {
"country": "United Kingdom",
"name": "Alex Corson"
},
"adhityamurali": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/adhitya-murali/",
"name": "Adhitya Murai",
"website": "https://thatcoffeeeguy.com/"
},
"adibemohamed": {
"country": "Morocco",
"linkedin": "https://www.linkedin.com/in/adibemohamed/",
"name": "Adibe Mohamed",
"twitter": "https://twitter.com/adibe.mohamed",
"website": "https://adibemohamed.herokuapp.com/"
},
"adriantse136": {
"country": "United States",
"name": "Adrian Tse",
"twitter": "https://twitter.com/atomicdragon136"
},
"afonsocarlos": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/carlos-afonso-b66088124/",
"name": "Carlos Afonso",
"twitter": "https://twitter.com/afonsocarlos97"
},
"Ahkam95": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/ahkamnaseek/",
"name": "Ahkam Naseek",
"twitter": "https://twitter.com/mohamedahkam"
},
"AhmadShaaban": {
"country": "Egypt",
"linkedin": "https://www.linkedin.com/in/ahmadshaaban97/",
"name": "Ahmad Shaaban"
},
"aishwaryakore": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/aishwaryakore",
"name": "Aishwarya"
},
"alexdmckee": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/alex-mckee-a5b2aa61/",
"name": "Alex McKee"
},
"alexkimeu0": {
"country": "Kenya",
"linkedin": "https://www.linkedin.com/in/alexkimeu0/",
"name": "Alex Kimeu",
"twitter": "https://twitter.com/alexkimeu0"
},
"alvinuday": {
"country": "India",
"name": "Alvin Adarsh Kumar"
},
"alwayschange": {
"country": "Nigeria",
"name": "Ibrahim Musa"
},
"amirtechnoide": {
"country": "cameroon",
"linkedin": "https://www.linkedin.com/in/amir-toukour-87b2291a1/",
"name": "Amir toukour"
},
"amit14mitra": {
"country": "India",
"linkedin": "www.linkedin.com/in/amit-kumar-mitra-351ba8190/",
"name": "Amit Kumar Mitra",
"twitter": "twitter.com/Amitmitra141",
"website": "https://akm-website.netlify.app/"
},
"amitsgh": {
"country": "India",
"github": "https://github.com/amitsgh",
"linkedin": "https://www.linkedin.com/in/amit-singh-a794131b5/",
"name": "Amit Singh"
},
"Ampit": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/amarpreet-singh-824179a6/",
"name": "Amarpreet Singh"
},
"ana-vela": {
"country": "United States",
"name": "Ana Vela"
},
"anacarolinaarellano": {
"country": "Mexico",
"linkedin": "https://www.linkedin.com/in/carolina-arellano1/",
"name": "Ana Carolina Arellano",
"website": "https://anacarolinaarellano.dev/"
},
"ankit-rawani": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ankit-r-422192135/",
"name": "Ankit Rawani"
},
"anshika0207": {
"country": "India",
"name": "Anshika Bhatt"
},
"AnshumanMahato": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/anshuman-mahato-15b74b1a9/",
"name": "Anshuman Mahato"
},
"anshutoppo": {
"country": "India",
"name": "Anshu Toppo"
},
"antoniocra04": {
"country": "Russia",
"linkedin": "https://www.linkedin.com/in/anton-ryazanov-7a53101b2/",
"name": "Anton",
"twitter": "https://twitter.com/anton_ryazanov_",
"website": "https://anton-ryazanov.xyz/"
},
"anu-ragi": {
"country": "India",
"name": "Anu Ragi"
},
"aortiz24": {
"country": "United States",
"name": "Andrea Ortiz"
},
"aparnagopalakrishnan432": {
"country": "India",
"name": "Aparna Gopalakrishnan"
},
"Apoorv-Saxena": {
"country": "India",
"name": "Apoorv Saxena",
"website": "https://surviton.ezyro.com/",
"youtube": "https://www.youtube.com/channel/UC4PO0JP-dE5hSaCvsC-Q4Cg"
},
"appukapoor": {
"country": "India",
"name": "Apurva Kapoor"
},
"ares358": {
"country": "India",
"name": "Sunny Kushwaha"
},
"arifinoid": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/rohmadarifin/",
"name": "Rohmad Arifin",
"twitter": "https://twitter.com/arifinoid"
},
"armsasmart": {
"country": "Thailand",
"linkedin": "https://www.linkedin.com/in/sirawit-arayatrakullikit-5a73821b9/",
"name": "Sirawit Arayatrakullikit"
},
"Arnold-Bundotich": {
"country": "Kenya",
"linkedin": "https://www.linkedin.com/in/arnold-bundotich-7753a5120/",
"name": "Arnold Bundotich",
"twitter": "https://twitter.com/BundotichA"
},
"arturssmirnovs": {
"country": "Latvia",
"linkedin": "https://www.linkedin.com/in/art%C5%ABrs-smirnovs-b6399275/",
"name": "Arturs Smirnovs",
"twitter": "https://twitter.com/artuurssmirnovs"
},
"arung86": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/arun-kumar-govindappa-a6325a10a/",
"name": "Arun Govindappa",
"twitter": "https://twitter.com/govindappaarun",
"website": ""
},
"Ashank16": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ashank-juyal-b99783188/",
"name": "Ashank Juyal"
},
"Ashlin21dev": {
"country": "India",
"name": "Ashlin Dev"
},
"auxfuse": {
"country": "Ireland",
"name": "Anthony O' Brien",
"twitter": "https://twitter.com/Auxfuse"
},
"aweditya": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/aditya-sriram-192a951a0/",
"name": "Aditya Sriram"
},
"ayansiddiqui007": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ayaan-siddiqui-2b41451a5/",
"name": "Ayan Siddiqui"
},
"ayoolafelix": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/felix-ayoola-516ab5165/",
"name": "Felix Ayoola",
"twitter": "twitter.com/ayoolafelix",
"website": "felixayoola.com"
},
"axorax": {
"country": "United States",
"name": "Aayan Abdullah",
"website":"https://axorax.github.io/"
},
"azriakmalk": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/azri-akmal-kurniawan-b69746100/",
"name": "Azri Akmal"
},
"b2pacific": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/prashant-pandey-3545aa1ab/",
"name": "Prashant Pandey"
},
"baranwal": {
"country": "India",
"name": "Shubham Kumar Baranwal"
},
"bartomiak": {
"country": "Poland",
"name": "Bartosz"
},
"BasilVictor": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/basil-benedict-victor-119706195/",
"name": "Basil Victor"
},
"bensbits91": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/benbrooks/",
"name": "Ben Brooks",
"website": "http://www.nutandem.com/"
},
"bernawastaken": {
"country": "Portugal",
"name": "Bernardo"
},
"BhanukaC": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/bhanukauyanage",
"name": "Bhanuka Uyanage"
},
"bianca-michels-barcelos": {
"country": "United Kingdom",
"linkedin": "https://www.linkedin.com/in/biancamichelsbarcelos/",
"name": "Bianca",
"twitter": "https://twitter.com/Bibs_Michels"
},
"BillGun": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/billgun/",
"name": "Billy Gunawan"
},
"binismail": {
"country": "Nigeria",
"name": "Khalid Ismail"
},
"blee1710": {
"country": "Australia",
"linkedin": "https://www.linkedin.com/in/brandon-lee-a95b8b1a2/",
"name": "Brandon Lee",
"website": "https://brndnlee.me/"
},
"bojandevic": {
"country": "Bosnia and Herzegovina",
"linkedin": "https://www.linkedin.com/in/bojandevic/",
"name": "Bojan Devic",
"twitter": "https://twitter.com/bojandevic",
"website": "https://bojandevic.com/"
},
"bolu-tife": {
"country": "Nigeria",
"name": "Boluwatife Omosowon"
},
"brianleemcqueen": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/brianmcqueen/",
"name": "Brian McQueen"
},
"bruceyboy86": {
"country": "United Kingdom",
"linkedin": "https://www.linkedin.com/in/bruce-davidson-6a10012b/",
"name": "Bruce Davidson",
"twitter": "https://twitter.com/BruceyBoyD"
},
"brymopo": {
"country": "Colombia",
"name": "Bryan Moreno"
},
"Cap10Kirk": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/quiara-kirkland-659611167/",
"name": "Quiara Kirkland",
"twitter": "https://twitter.com/qrkirk"
},
"carrycooldude": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kartikey-rawat-02822916a/",
"name": "Kartikey Rawat",
"twitter": "https://twitter.com/kari_rawat",
"website": "https://carrycooldude.github.io/"
},
"catw101": {
"country": "United States",
"name": "Catelen Wu"
},
"cb2609": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/chirayubansal2609/",
"name": "Chirayu Bansal"
},
"Chobocharles": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/charles-napierala/",
"name": "Charles Napierala"
},
"ChristineJ82": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/christinejackson82/",
"name": "Christine Jackson"
},
"claudemuller": {
"country": "South Africa",
"linkedin": "https://www.linkedin.com/in/claudemuller007",
"name": "Claude Müller",
"twitter": "https://twitter.com/Claude_Muller",
"website": "https://claudemuller.io"
},
"Code-hunter-star": {
"country": "India",
"name": "sonu"
},
"conejodan": {
"country": "Mexico",
"linkedin": "https://www.linkedin.com/in/daniel-sanchez-fernandez-16851b119/",
"name": "Daniel Sanchez"
},
"danielaamu12345": {
"country": "Colombia",
"name": "Daniela Amu"
},
"dao-phuong": {
"country": "Vietnam",
"linkedin": "https://www.linkedin.com/in/phuong-dao-duy-6159b7a4/",
"name": "Dao Duy Phuong"
},
"degram": {
"country": "Ukraine",
"linkedin": "https://www.linkedin.com/in/aleksandr-gubin-7482a21b7/",
"name": "Aleksandr Gubin"
},
"devblin": {
"country": "India",
"linkedin": "https://linkedin.com/in/devblin",
"name": "Deepanshu Dhruw",
"website": "https://devblin.codes"
},
"Deveshgsk": {
"country": "India",
"linkedin": "linkedin.com/in/devesh-gobind-18a047175",
"name": "Devesh Gobind",
"website": "https://github.com/Deveshgsk"
},
"devonpmack": {
"country": "Canada",
"linkedin": "https://linkedin.com/in/devonpmack",
"name": "Devon Mack",
"website": "https://devonpmack.github.io"
},
"dfrichard": {
"country": "Cameroon",
"name": "Dze Richard",
"twitter": "https://twitter.com/DzeRichard"
},
"dimlaksana": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/dimas-laksana/",
"name": "Dimas Laksana",
"twitter": "https://twitter.com/dimlaksana"
},
"dipanshubhola1009": {
"country": "India",
"name": "Dipanshu Bhola"
},
"dnrm": {
"country": "Mexico",
"name": "Daniel",
"twitter": "https://twitter.com/dannermm_",
"website": "https://dannermm.com"
},
"DOCTSTR": {
"country": "India",
"name": "Rushiraj Hada"
},
"duptitung": {
"country": "Nepal",
"name": "Dhondup Lama",
"twitter": "https://twitter.com/titungdup"
},
"earle-poole": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/earle-poole/",
"name": "Earle Poole",
"twitter": "https://twitter.com/Eepoole4"
},
"edazpotato": {
"country": "New Zealand",
"name": "Edazpotato",
"twitter": "https://twitter.com/edazpotato",
"website": "https://edazpotato.github.io/"
},
"eitinaa": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/christina-oliveira-dos-santos-613a54158/",
"name": "Tina Oliveira"
},
"eldrige": {
"country": "Cameroon",
"linkedin": "https://www.linkedin.com/in/prince-eldrige-9b64881b2/",
"name": "Apoh Prince Eldrige",
"twitter": "https://twitter.com/Apoh68673473",
"website": "https://eldrige.github.io/Portfolio/"
},
"elinaDangol": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/elina-dangol-732a94157/",
"name": "Elina Dangol",
"twitter": "https://twitter.com/eDangol901",
"website": "https://www.quora.com/q/abettercommunity"
},
"Elisecroft": {
"country": "France",
"name": "Elise Guezel"
},
"EmeraldEntities": {
"country": "Canada",
"name": "Joseph Wang"
},
"engrrbilal": {
"country": "Pakistan",
"linkedin": "https://www.linkedin.com/in/engineermuhammadbilal/",
"name": "Muhammad Bilal"
},
"evertonrbraga": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/evertonrbraga/",
"name": "Everton Braga"
},
"faisaljamil25": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/faisaljamil25/",
"name": "Faisal Jamil"
},
"fangstar": {
"country": "USA",
"name": "Mitchell Fang"
},
"FavourOyewumi7": {
"country": "Nigeria",
"name": "Oyewumi Favour",
"twitter": "https://twitter.com/ayomideif"
},
"femakin": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/oluwafemi-tosin-akinyemi-6b028270/",
"name": "Femi Akinyemi",
"twitter": "https://twitter.com/akinyemi_t"
},
"fgiuliani": {
"country": "Argentina",
"linkedin": "https://www.linkedin.com/in/facundogiuliani/",
"name": "Facundo Giuliani",
"twitter": "https://twitter.com/facundozurdo"
},
"Gaurab4": {
"country": "India",
"name": "Gaurab"
},
"gauravbisht005": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/gauravbisht005",
"name": "Gaurav Bisht",
"twitter": "https://www.twitter.com/Jarvis_Me"
},
"gauravgutholia": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/gaurav-gutholia-25615a1a1/",
"name": "Gaurav Gutholia"
},
"ghanender-chauhan": {
"country": "India",
"name": "Ghanender Chauhan"
},
"gisabernardess": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/gisabernardess/",
"name": "Gisele Bernardes",
"twitter": "https://twitter.com/gisabernardess"
},
"guberlo": {
"country": "Italy",
"name": "Salvo Asero",
"twitter": "https://twitter.com/SalvoAsero/"
},
"guijacobus2": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/guilherme-jacobus-379485158/",
"name": "Guilherme Jacobus"
},
"hambali999": {
"country": "Singapore",
"linkedin": "https://www.linkedin.com/in/nur-hambali-064126131/",
"name": "Nur Hambali"
},
"Hamza-Slama": {
"country": "Tunisia",
"linkedin": "https://www.linkedin.com/in/hamza-slama-/",
"name": "Hamza Slama",
"twitter": "https://twitter.com/hamzaslama2"
},
"hardik7e": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sensei9717/",
"name": "Hardik Singh"
},
"hasna-akbarali": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/hasna-akbar-ali-1485981b0/",
"name": "Hasna Akbar Ali"
},
"HellSingCoder": {
"country": "Ireland",
"linkedin": "https://www.linkedin.com/in/pellegrinosimone/",
"name": "Simone Pellegrino",
"website": "https://www.simonepellegrino.com/"
},
"hhelenxu": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/helenzxu/",
"name": "Helen Xu"
},
"hilbug": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/hferraro/",
"name": "Hilary Ferraro",
"twitter": "https://twitter.com/HilbugCodes",
"website": "https://hilbug.github.io/"
},
"himanshu1603": {
"country": "India",
"name": "Himanshu Singh",
"twitter": "https://twitter.com/himanshu30ber"
},
"himanshu2408": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/himanshu-s/",
"name": "Himanshu Singh"
},
"hinsxd": {
"country": "Hong Kong",
"name": "Alvin Li",
"website": "https://hinsxd.dev/"
},
"honorezemagho": {
"country": "Cameroon",
"linkedin": "https://www.linkedin.com/in/honorezemagho",
"name": "ZEMAGHO KALONG EUGENE HONORE"
},
"hu-qi": {
"country": "China",
"linkedin": "https://www.linkedin.com/in/琦-胡-26bb34a1/",
"name": "胡琦",
"twitter": "https://twitter.com/huqii",
"website": "https://www.fashaoge.com"
},
"iamgiribabu": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/giribabu-anisetti-208863154/",
"name": "Giribabu",
"twitter": "https://twitter.com/giri_anisetti"
},
"iampk94": {
"country": "India",
"name": "Pradheep Kumar"
},
"idacioDad": {
"country": "Mozambique",
"linkedin": "https://www.linkedin.com/in/id%C3%A1cio-zibia/",
"name": "Idácio Zibia",
"twitter": "https://twitter.com/idacio_dad"
},
"improbably": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/david6fox/",
"name": "Fox Radosevich",
"twitter": "https://twitter.com/OnlyImprobable"
},
"ipapast": {
"country": "United Kingdom",
"name": "Iliana"
},
"isabellabond": {
"country": "United States",
"name": "Isabella Bond",
"twitter": "https://twitter.com/ibond713"
},
"ishantsingla18": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ishant-singla-361026191/",
"name": "Ishant Singla"
},
"J3ffJessie": {
"country": "United States",
"linkedin": "http://linkedin.com/in/jeff-jessie-4b2323a9",
"name": "Jeff Jessie",
"twitter": "https://twitter.com/j3ffjessie"
},
"jackHedaya": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/jack-hedaya-439801192/",
"name": "Jack Hedaya"
},
"jakolax": {
"country": "Netherlands",
"name": "Jan Carlo"
},
"jamesmulligan": {
"country": "Ireland",
"name": "James Mulligan"
},
"Janitham97": {
"country": "Sri lanka",
"name": "Janitha Missaka"
},
"japnit01": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/japnit-singh-1500561ab/",
"name": "Japnit Singh"
},
"JayZeeXx": {
"country": "USA",
"name": "Rahul Remany"
},
"jboullianne": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/jean-marc-boullianne-aa3a9787/",
"name": "Jean-Marc Boullianne",
"twitter": "https://twitter.com/TrailingClosure",
"website": "https://trailingclosure.com/"
},
"jelmergu": {
"country": "Netherlands",
"name": "Jelmer Wijnja",
"website": "http://jelmerwijnja.nl"
},
"jhonatanbeltran": {
"country": "Colombia",
"linkedin": "https://www.linkedin.com/in/jhonatan-beltran-834234b7/",
"name": "Jhonatan Beltran"
},
"jimlynx": {
"country": "Ireland",
"name": "Jim Morel"
},
"jkrantz": {
"country": "United States",
"name": "Jeff Krantz",
"twitter": "https://twitter.com/JKrantz"
},
"Joblyn": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/job-oaikhenah-5056111a1/",
"name": "Job Oaikhenah",
"twitter": "https://twitter.com/_Joblyn_",
"website": "https://www.job-oaikhenah.netlify.app"
},
"joharikushagra": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kushagra-johari-707183191/",
"name": "Kushagra Johari",
"website": "https://mrweber.netlify.app/"
},
"jonathanvanhaaften": {
"country": "Canada",
"name": "Jonathan Vanhaaften"
},
"julioalfian": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/julioalfian/",
"name": "Julio Alfian Dwicahya"
},
"juliusnguyen": {
"country": "Germany",
"name": "Julius Reischauer"
},
"kanchanachathuranga": {
"country": "Sri Lanka",
"name": "Kanchana Chathuranga"
},
"kannupriyasingh": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kannu-priya-4a38b0157",
"name": "Kannu Priya",
"twitter": "https://twitter.com/impriya_kannu?s=09"
},
"kaushikisinha": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kaushiki-sinha-b52853183/",
"name": "Kaushiki Sinha",
"twitter": "https://twitter.com/KAUSHIKI_SINHA_",
"website": "kaushikisinha06.github.io"
},
"keiteo": {
"country": "Singapore",
"linkedin": "https://www.linkedin.com/in/keiteo/",
"name": "Keith Teo"
},
"KGene1901": {
"country": "Malaysia",
"linkedin": "https://www.linkedin.com/in/kah-gene-leong-73500b196/",
"name": "Kah Gene Leong"
},
"khandelwal20sid": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/siddharth-khandelwal-980992173/",
"name": "Siddharth Khandelwal"
},
"kikit0106": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/pikiring-wh/",
"name": "Pikiring Waskitha"
},
"kimcore": {
"country": "Korea, Republic of South Korea",
"name": "Kim Tae Wan"
},
"Kiralinn": {
"country": "Netherlands",
"name": "Kyara van Putten"
},
"km4": {
"country": "Poland",
"name": "Karol Milewski"
},
"KMuthusamyms": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/muthusamyms/",
"name": "Muthusamy K",
"twitter": "https://twitter.com/k_muthusamyms",
"website": "https://kmuthusamyms.github.io/"
},
"kodekin": {
"country": "Kenya",
"linkedin": "https://www.linkedin.com/in/thomas-mwaka-9bb947ba/",
"name": "Thomas Mwaka"
},
"kontesanjana": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sanjana-konte-3646441a5/",
"name": "konte sanjana"
},
"kree666": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/emily-basile-03427312a/",
"name": "Emily Basile"
},
"Kritimakaushal": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kritima-kaushal-41918519a",
"name": "Kritima Kaushal",
"twitter": "https://twitter.com/KritimaKaushal"
},
"ksvkabra": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ksvkabra",
"name": "Keshav Kabra"
},
"kumarisurbhi": {
"country": "India",
"Linkedin": "https://www.linkedin.com/in/surbhi-kumari-18aa8b152/",
"name": "Surbhi Kumari",
"twitter": "https://twitter.com/SurbhiK79202217"
},
"KushalBhanot": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/kushalbhanot/",
"name": "Kushal Bhanot",
"twitter": "https://twitter.com/bhanot_kushal",
"website": "https://kushalbhanot.github.io/"
},
"lacrosse91": {
"country": "Japan",
"name": "Shoichiro Kawauchi"
},
"laeleoni": {
"country": "France",
"name": "Laetitia Leoni"
},
"LeGnaice": {
"country": "Portugal",
"linkedin": "https://www.linkedin.com/in/joao-carreira-azevedo/",
"name": "João Azevedo"
},
"LemonPlug": {
"country": "Philippines",
"name": "Iridescent Lemon"
},
"LeoAlvarenga": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/leonardo-alvarenga-035a52104/",
"name": "Leonardo Alvarenga"
},
"LeonardoRoccaH": {
"country": "Mexico",
"name": "Leonardo Rocca Herrera",
"twitter": "https://twitter.com/leo_rocca3"
},
"levi-pires": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/levi-pires-5a74331a6/",
"name": "Levi Pires"
},
"lillapulay": {
"country": "Netherlands",
"name": "Lilla Pulay"
},
"lindarama": {
"country": "Indonesia",
"name": "Linda Ramadhani"
},
"Lontchi12": {
"country": "Cameroon",
"linkedin": "https://www.linkedin.com/in/lontchi-lionelle-6a887715b",
"name": "Kamthie Lontchi Lionelle"
},
"lsomacruzl": {
"country": "Colombia",
"name": "Andres"
},
"lucas-c9": {
"country": "Argentina",
"linkedin": "https://www.linkedin.com/in/lucascortesramirez/",
"name": "Lucas Cortés"
},
"luhcasgabriel": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/luhcasgabriel/",
"name": "Lucas Gabriel"
},
"lvmenezes": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/lucas-victor-s-menezes-4212b285/",
"name": "Lucas Menezes"
},
"madhav1928": {
"country": "India",
"Linkedin": "https://www.linkedin.com/in/dadimadhav/",
"name": "Dadi Bindu Madhav"
},
"maeeast": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/jennifermmaher/",
"name": "Jenn Maher",
"twitter": "https://twitter.com/Mae_East",
"website": "https://jennifermaher.me/"
},
"MAHIMA01": {
"country": "India",
"name": "Mahima"
},
"Malvika18": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/malvikabhargava18/",
"name": "Malvika Bhargava"
},
"mani-rsg": {
"country": "India",
"name": "Manigandan Ravi"
},
"MannanAhmad": {
"blog": "https://gyanwithmannan.blogspot.com",
"country": "India",
"Linkedin": "https://www.linkedin.com/in/gyanwithmannan/",
"name": "Sayed Mannan Ahmad",
"website": "https://memannan.cf"
},
"manojhebbani": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/manojhebbani/",
"name": "Manoj Kumar H V"
},
"MasterBrian99": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/pasindu-p-konghawaththa-3808861a0/",
"name": "Pasindu P Konghawaththa",
"twitter": "https://twitter.com/Master_br1an"
},
"Mathur777": {
"country": "India",
"name": "Sumit"
},
"Matthewaustinbell": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/matthewaustinbell/",
"name": "Matt Bell"
},
"mccarthykp": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/mccarki/",
"name": "Kevin McCarthy"
},
"mctraore": {
"country": "United States",
"name": "Marie-Claire",
"twitter": "https://www.twitter.com/mctraore"
},
"mdb1710": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/michael-d-bonner/",
"name": "Michael Bonner",
"twitter": "https://twitter.com/codebymdb",
"website": "https://codebymdb.com/"
},
"mehrapi": {
"country": "Germany",
"linkedin": "https://www.linkedin.com/in/sylviacims/",
"name": "Mehrapi",
"twitter": "https://twitter.com/mehrapi",
"website": "https://mehrapi.github.io/"
},
"missym2": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/missymaloney/",
"name": "Missy Maloney",
"website": "http://missymaloney1.com"
},
"Mogakamo": {
"country": "Kenya",
"linkedin": "www.linkedin.com/in/amos-mogaka-3514aa1a2",
"name": "Mogaka Amos N",
"twitter": "https://twitter.com/m_ogakadev"
},
"mohammadanang": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/anangm182",
"name": "Mohammad Anang",
"twitter": "https://twitter.com/anangm182"
},
"mohammedaz33m": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/mohammed-azeem78/",
"name": "Mohammed Azeem",
"twitter": "https://twitter.com/Mohammed_Azeem_"
},
"mohanedashraf": {
"country": "Egypt",
"linkedin": "https://www.linkedin.com/in/mohanedashraf",
"name": "Mohaned Ashraf",
"twitter": "https://twitter.com/Mohanedzz"
},
"mohdimran001": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/mohdimran001/",
"name": "Mohd Imran",
"twitter": "https://twitter.com/MohdImran05"
},
"mohprilaksono": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/moh-prilaksono-67b119198/",
"name": "Moh Prilaksono",
"twitter": "https://twitter.com/MohPrilaksono"
},
"mohsin-code": {
"country": "Pakistan",
"name": "Mohsin Shah",
"website": "https://mohsin-code.github.io/"
},
"moisesjsalmeida": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/moisesjsalmeida/",
"name": "Moisés Almeida"
},
"molleer": {
"country": "Sweden",
"linkedin": "https://www.linkedin.com/in/damoller",
"name": "David Möller"
},
"Mr-emeka": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/chukwuemeka-ukpai-7232571a1/",
"name": "Ukpai Chukwuemeka"
},
"Mr-garg": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/satyamgrg/",
"name": "Satyam Garg",
"twitter": "https://twitter.com/satyamgarg000"
},
"Mre11i0t": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pavan-karthick-m-4a712a139/",
"name": "Pavan Karthick M",
"twitter": "https://twitter.com/e11i0t_"
},
"msriaz": {
"country": "Pakistan",
"linkedin": "https://www.linkedin.com/in/muhammad-shoaib-riaz-a175594b/",
"name": "Muhammad Shoaib Riaz"
},
"Mugilan-Codes": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/mugilan-codes/",
"name": "Mugilan E.S.",
"twitter": "https://twitter.com/MugilanCodes"
},
"mustafamasvi": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/mustafamasvi/",
"name": "Mustafa Masvi",
"twitter": "https://twitter.com/mustafamasvi",
"website": "http://mustafamasvi.com"
},
"namchaunguyen": {
"country": "Canada",
"name": "NamChau Nguyen"
},
"namita2310": {
"country": "India",
"linkedin": "NA",
"name": "Namita Shetty"
},
"namruthahari": {
"country": "India",
"name": "Namrutha"
},
"narenbakshi97": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/naren-bakshi/",
"name": "Naren Bakshi",
"twitter": "https://twitter.com/narenbakshi97",
"website": "https://narenbakshi97.github.io/naren/"
},
"NathanPickard": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/nathanpickard/",
"name": "Nathan Pickard",
"twitter": "https://twitter.com/NathanPickard"
},
"nicholasbus": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/nicholas-smith-b9a02918b/",
"name": "Nicholas Smith",
"twitter": "https://twitter.com/NicholasSbus",
"website": "http://www.smithdev.us"
},
"nikhilm2302": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/nikhil-mehta-936283115",
"name": "Nikhil Mehta"
},
"nikolas-haug": {
"country": "United States",
"name": "Nikolas Haug",
"website": "https://nikolashaug.com"
},
"nisargpawade": {
"country": "India",
"name": "Nisarg Pawade"
},
"nitch193": {
"country": "India",
"name": "Nitesh Kumar"
},
"noksenberg": {
"country": "Chile",
"name": "Niv Oksenberg"
},
"Nyd3lig": {
"country": "Norway",
"name": "Dines Larsen"
},
"oli799": {
"country": "Hungary",
"name": "Oliver Reider"
},
"OmkarGeedh": {
"country": "India",
"name": "Omkar Geedh"
},
"oshadeegangangana": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/oshadeegangangana/",
"name": "Oshadee Gangangana"
},
"oshka": {
"country": "Ukraine",
"name": "oshka"
},
"Ousainu": {
"country": "United States",
"name": "Ousainu Jabbi"
},
"P-N-C": {
"country": "Brazil",
"name": "Pedro Nogueira Coutinho"
},
"PankajGupta": {
"country": "India",
"name": "Pankaj Gupta "
},
"panvicka": {
"country": "Czech Republic",
"name": "Ren Dlik",
"twitter": "https://twitter.com/panvicka"
},
"PAPADOXIE": {
"country": "Pakistan",
"name": "Nofil Qasim",
"twitter": "https://twitter.com/nofilq"
},
"paraggoyal28": {
"country": "India",
"linkedin": "https://twitter.com/ParagKumarGoya1",
"name": "Parag Kumar Goyal",
"twitter": "https://www.linkedin.com/in/parag-kumar-goyal-2483bb118/",
"website": "https://paraggoyal28.github.io/"
},
"ParanoidWolf": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/p-h-aju-42032915a/",
"name": "Aju"
},
"parrotstone": {
"country": "Egypt",
"linkedin": "https://www.linkedin.com/in/abdulrahman-ali/",
"name": "Abdulrahman Ali",
"twitter": "https://www.twitter.com/abdoalihuss"
},
"parryk303": {
"country": "United States",
"name": "Kyle"
},
"Patea4": {
"country": "Brazil",
"name": "Luis"
},
"pbharathreddy": {
"country": "United States",
"name": "Bharath Reddy"
},
"Pesehr": {
"country": "Canada",
"linkedin": "https://www.linkedin.com/in/pesehr",
"name": "Sepehr",
"website": "http://pesehr.codes/"
},
"pham-jen": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/jennifer-pham-596188185/",
"name": "Jennifer Pham"
},
"Pharcside": {
"country": "United States",
"name": "Brian Corbett"
},
"philip-hobobo": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/philip-hobobo-287623a7/",
"name": "Philip Hobobo",
"twitter": "https://twitter.com/PhilOh_K",
"website": "https://gentle-cove-45249.herokuapp.com/"
},
"pkspyder007": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/praveen-kumar-8512b4189/",
"name": "Praveen Kumar",
"website": "http://thejsguy.me/"
},
"pooja2299": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pooja-yadav-b537181a7/",
"name": "Pooja Yadav"
},
"potter1024": {
"country": "India",
"linkedin": "http://www.linkedin.com/in/potter1024",
"name": "Rishab Kumar"
},
"prabhat34": {
"country": "India",
"name": "Prabhat kumar singh"
},
"prachivishnoi27": {
"country": "India",
"linkedin": "http://linkedin.com/in/prachivishnoi27",
"name": "Prachi Vishnoi"
},
"pradnyavk": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pradnyakatigar",
"name": "Pradnya Katigar"
},
"prajnakalpa": {
"country": "India",
"name": "Prajnakalpa Mishra"
},
"PranayK-666": {
"country": "India",
"name": "Pranay Khosla"
},
"pranshumaheshwari": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pranshu-m-59074297/",
"name": "Pranshu Maheshwari"
},
"prateekcode": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pratiekray/",
"name": "Prateek",
"twitter": "https://twitter.com/pratiekray"
},
"Pratikzzz": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/pratik-gupta-4495a282/",
"name": "Pratik Gupta"
},
"prayas26": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/prayas26/",
"name": "Prayas Mittal",
"twitter": "https://www.twitter.com/prayas26",
"website": "https://prayasmittal.com"
},
"prsttn": {
"country": "Iran",
"linkedin": "www.linkedin.com/in/parastoo-taleiniya-ba0378140",
"name": "Parastoo Taleiniya"
},
"Quattro04": {
"country": "Slovenia",
"linkedin": "https://www.linkedin.com/in/matija-jeras/",
"name": "Matija Jeras"
},
"raghavg27": {
"country": "India",
"name": "Raghav Gupta"
},
"raj5036": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/rajkarmakar97/",
"name": "Raj Karmakar",
"twitter": "https://twitter.com/RajKarm42837213",
"website": "https://raj5036.github.io/portfolio/dist/"
},
"RajeshNathani": {
"country": "India",
"name": "Rajesh Nathani",
"website": "http://rajeshnathani.co"
},
"RajivSah": {
"country": "Nepal",
"name": "Rajiv Sah"
},
"RanulND": {
"country": "Sri Lanka",
"name": "Ranul Navojith Dayarathne"
},
"Raptor-Dev97": {
"country": "India",
"name": "Raptosh DEB"
},
"RAYogeshwaran": {
"country": "India",
"name": "Yogeshwaran"
},
"RebaiAhmed": {
"country": "Tunisia",
"linkedin": "https://www.linkedin.com/in/rebaiahmed/",
"name": "Rebai Ahmed",
"twitter": "https://twitter.com/RebaiAhmed_",
"website": "https://rebaiahmed.github.io"
},
"Renato1478": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/renato-peres-401137179/",
"name": "Renato Peres de Souza"
},
"Renda02": {
"country": "Spain",
"linkedin": "https://www.linkedin.com/in/rendani-luvhengo/",
"name": "Rendani Sandra Luvhengo",
"twitter": "https://twitter.com/rendani18824096/"
},
"reshma-avvaru": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/reshma-avvaru",
"name": "Reshma Avvaru"
},
"rexdivakar": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/divakar-r-9b34b86b/",
"name": "Divakar"
},
"RFormigao": {
"country": "Brazil",
"linkedin": "https://www.linkedin.com/in/rformigaogomes/",
"name": "Robson Formigão",
"twitter": "https://twitter.com/RobsonFormigao",
"website": "https://rformigao.github.io/"
},
"rifafatima": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/rifa-fatima-70b6681b4",
"name": "Rifa Fatima"
},
"riyajain2": {
"country": "India",
"name": "Riya Jain"
},
"Riyana6": {
"country": "Sri lanka",
"name": "Jeema Riyana"
},
"RohanTheProgrammer": {
"country": "India",
"name": "Dhruv Anand"
},
"Ronal2do": {
"country": "Netherlands",
"linkedin": "https://www.linkedin.com/in/ronal2do/",
"name": "Ronaldo Lima",
"twitter": "https://twitter.com/_2d_lima"
},
"ronlaniado": {
"country": "United States",
"name": "Ron Laniado"
},
"rukundo-kevin": {
"country": "Rwanda",
"name": "Rukundo Kevin",
"linkedin": "www.linkedin.com/in/rukundokevin",
"twitter": "https://twitter.com/rukundokevin_",
"website":"http://www.rukundokevin.codes/"
},
"RuteshRathod": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/ruteshrathod/",
"name": "Rutesh Rathod",
"twitter": "https://twitter.com/RuteshRathod"
},
"ruthiel": {
"country": "Portugal",
"linkedin": "https://www.linkedin.com/in/ruthiel-t-b8735b113//",
"name": "Ruthiel Trevisan",
"twitter": "https://twitter.com/tofucru"
},
"rzadev": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/rezadev/",
"name": "Mohammad Reza",
"twitter": "https://twitter.com/rza9001",
"website": "https://rzadev.github.io/work.html"
},
"sadathshariff": {
"country": "India",
"name": "Sadathulla Shariff"
},
"sagarpandyansit": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sagar-pandya-nsit/",
"name": "Sagar Pandya",
"website": "http://sagarpandyansit.github.io/"
},
"sagarrajput": {
"country": "India",
"name": "Sagar Rajput"
},
"saileshbro": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/saileshbro/",
"name": "Sailesh Dahal",
"twitter": "sail_sail30",
"website": "https://sailesh.is-a.dev/"
},
"SamiBeig": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/sami-beig-792346165/",
"name": "Sami Beig"
},
"samuelesimone": {
"country": "Italy",
"linkedin": "https://www.linkedin.com/in/samuele-simone/",
"name": "Samuele Simone"
},
"sandhukaran28": {
"country": "India",
"linkedin": "www.linkedin.com/in/karan-sandhu28",
"name": "Karan Sandhu",
"twitter": "https://twitter.com/sandhukaran28"
},
"sanjus-robotic-studio": {
"country": "India",
"name": "Sanjiv Anand",
"website": "www.sanjusroboticsstudio.me"
},
"saranshkotnala": {
"country": "India",
"name": "Saransh Kotnala"
},
"sathiranipun": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/sathiranipun/",
"name": "Sathira Nipun"
},
"seananth": {
"country": "Sweden",
"linkedin": "https://www.linkedin.com/in/sean-s%C3%A4fstr%C3%B6m/",
"name": "Sean Säfström",
"twitter": "https://twitter.com/safstrm"
},
"Semvrij": {
"country": "Netherlands",
"name": "Sem"
},
"SerekKiri": {
"country": "Poland",
"name": "Kacper",
"twitter": "https://twitter.com/notabaget",
"website": "https://kiri.dev/"
},
"setheal": {
"country": "Belgium",
"name": "Maëlann Barciet"
},
"shankar524": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/er-shankar-acharya/",
"name": "Shankar Acharya",
"website": "https://shankar524.github.io"
},
"Shashi-14": {
"country": "Sri Lanka",
"name": "Nirmani"
},
"shashinkaliyanage": {
"country": "Sri lanka",
"linkedin": "www.linkedin.com/in/shashinka-abeygoda-liyanage-b31b4718b",
"name": "Shashinka Liyanage",
"twitter": "https://twitter.com/shashinkaliyanage"
},
"shehzadosama": {
"country": "Pakistan",
"linkedin": "https://www.linkedin.com/in/shehzad-osama-bb3679a1/",
"name": "Shehzad Osama"
},
"shinigami2905": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/aayush-meshram-a7170a1a2/",
"name": "Aayush Meshram"
},
"Shreejana123": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/shreejana-tandukar-14b6041ab/",
"name": "Shreejana Tandukar"
},
"ShreyanBudhouliya": {
"country": "India",
"name": "Shreyan Budhouliya"
},
"shreyaraj13": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/shreya-raj-ab0743199",
"name": "Shreya Raj",
"twitter": "https://twitter.com/ShreyaR33726664?s=08"
},
"Shubham-Agarwal16": {
"country": "India",
"linkedin": "www.linkedin.com/in/shubham-agarwal16",
"name": "Shubham Agarwal"
},
"shubhik7": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/shubhi-kulshreshtha-13822b1b6",
"name": "Shubhi Kulshreshtha"
},
"Siddhant-K-code": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/siddhantkhare24/",
"name": "Siddhant Khare",
"twitter": "https://twitter.com/Siddhant_K_code"
},
"simran2607": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/simran-6b1665170/",
"name": "Simran"
},
"sketch-tester": {
"country": "Kenya",
"name": "Sketch Tester"
},
"SkyCoder": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/emmanuel-ezenwigbo-194299195/",
"name": "Emmanuel Ezenwigbo",
"twitter": "https://twitter.com/SkyC0der_"
},
"slash-coders": {
"country": "United States",
"name": "Slash Coders"
},
"SnexusG": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/swapnil-gore-2902/",
"name": "Swapnil Gore",
"twitter": "https://twitter.com/SwapnilGore029"
},
"Soham7270": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sohamdixit727/",
"name": "Soham"
},
"sonylomo": {
"country": "Kenya",
"linkedin": "https://www.linkedin.com/in/sonia-lomo/",
"name": "Sonia Lomo",
"twitter": "https://twitter.com/sony_lomo",
"website": "https://sonylomo.github.io/"
},
"Speedstor": {
"country": "Hong Kong",
"name": "Aldrin Cheung"
},
"SrijitaSarkar99": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/srijita-sarkar-1241041b4/",
"name": "Srijita Sarkar"
},
"Sripaad": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sripaad-srinivasan/",
"name": "Sripaad Srinivasan",
"twitter": "https://twitter.com/Sripaad_",
"website": "https://sripaad.github.io/"
},
"stefannypanameno93": {
"country": "El Salvador",
"name": "Stefanny Panameño",
"twitter": "https://twitter.com/StefannyP11"
},
"studpeps": {
"country": "India",
"name": "Stuti Prasad"
},
"subeshb1": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/subesh-bhandari-523438112/",
"name": "Subesh Bhandari",
"twitter": "https://twitter.com/subeshb1",
"website": "http://subeshbhandari.com/"
},
"suffisme": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sufiyan-ansari-1823b2192/",
"name": "Mohd Sufiyan Ansari"
},
"sukhatmegaurav": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/gauravsukhatme/",
"name": "Gaurav Sukhatme"
},
"sunildipun": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sunilbehera95/",
"name": "Sunil Behera",
"twitter": "https://twitter.com/sunilbehera",
"website": "https://sunildipun.github.io/portfolio/"
},
"susheelg1197": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/susheel-gounder-31b7b2115/",
"name": "Susheel S Gounder"
},
"SuzannaWentzel": {
"country": "Netherlands",
"name": "Suzanna Wentzel"
},
"Swapnil074": {
"country": "India",
"name": "Swapnil Sinha"
},
"swojeet": {
"country": "Nepal",
"linkedin": "https://www.linkedin.com/in/swojeet-kayastha/",
"name": "Swojeet Kayastha"
},
"tae8838": {
"country": "Thailand",
"linkedin": "https://www.linkedin.com/in/tae8838/",
"name": "Tae Noppakun Wongsrinoppakun",
"twitter": "https://twitter.com/tae8838",
"website": "https://tae8838.github.io/"
},
"TanishqDsharma": {
"country": "India",
"name": "Tanishq"
},
"Tawishi": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/tawishi-s-191857131/",
"name": "Tawishi",
"twitter": "https://twitter.com/Tawishi1"
},
"that-coder": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/jrjayakrishnan/",
"name": "Jayakrishnan JR",
"twitter": "https://twitter.com/that_coder"
},
"therealsanjeev": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/therealsanjeev/",
"name": "Sanjeev",
"twitter": "https://twitter.com/therealsanjeev"
},
"thpadelis": {
"country": "Greece",
"linkedin": "https://www.linkedin.com/in/padelis-theodosiou/",
"name": "Padelis Theodosiou",
"twitter": "https://twitter.com/ThPadelis",
"website": "http://padelis.theodosiou.me/"
},
"Thusal06": {
"country": "Sri Lanka",
"linkedin": "https://www.linkedin.com/in/thusal-ranawaka-773aa1189/",
"name": "Thusal Ranawaka",
"website": "https://thusal06.github.io/"
},
"tobeornottobeadev": {
"country": "United States",
"name": "Jonathan Chang"
},
"tooshar": {
"country": "India",
"name": "Tushar"
},
"traore19": {
"country": "Cameroon",
"name": "Fadimatou Traore",
"twitter": "https://twitter.com/WestAfrica11"
},
"tzAcee": {
"country": "Germany",
"name": "Maxim Leis",
"twitter": "https://twitter.com/CodeFleex"
},
"utkarsh17verma": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/utkarsh17verma/",
"name": "Utkarsh Verma",
"twitter": "https://twitter.com/utkarsh17verma",
"website": "http://utkarsh17verma.github.io/"
},
"varnikajain15": {
"country": "India",
"name": "Varnika Jain"
},
"vasu2907": {
"country": "India",
"name": "Vasu Agrawal"
},
"vatsalgp": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vatsalgp/",
"name": "Vatsal Gupta",
"twitter": "https://twitter.com/MajesticBaka/",
"website": "https://vatsalgp.live/"
},
"vatsalvj": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vatsal-jain-598278194/",
"name": "Vatsal Jain"
},
"veerraj": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/rajveer-choudhary-287706178/",
"name": "Rajveer Choudhary"
},
"veranith": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/ryrob/",
"name": "Ryan Robinson"
},
"vijayakumarGit": {
"country": "India",
"name": "Vijayakumar"
},
"vinmay": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vinmaynair",
"name": "Vinmay Nair"
},
"vipulchauhan24": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vipul-chauhan2420",
"name": "Vipul Chauhan",
"website": "https://vipulchauhan.ga"
},
"vishwasganatra": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vishwasganatra/",
"name": "Vishwas Ganatra",
"twitter": "https://twitter.com/GanatraVishwas"
},
"vivekboss99": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/sai-vivek-amirishetty-463a99b7/",
"name": "Sai Vivek Amirishetty",
"twitter": "https://twitter.com/SAI_VIVEK_",
"website": "https://vivekboss99.github.io/"
},
"voidxyzvoidxyz": {
"country": "India",
"linkedin": "www.linkedin.com/in/mohammed-shakir-26256717b",
"name": "Mohammed Shakir"
},
"vppillai": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/vysakh-pillai/",
"name": "Vysakh P Pillai",
"website": "https://embeddedinn.xyz"
},
"vunderkind": {
"country": "Nigeria",
"linkedin": "https://www.linkedin.com/in/justinirabor/",
"name": "Justin Irabor",
"twitter": "https://twitter.com/lifeofmogwai",
"website": "https://justinirabor.com"
},
"weydaej": {
"country": "United States",
"linkedin": "https://www.linkedin.com/in/emilyweyda/",
"name": "Emily Weyda",
"website": "http://emilyweyda.com"
},
"WickedInvi": {
"country": "United Kingdom",
"name": "Deyan Petrov"
},
"wsameer": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/wsameer/",
"name": "Sameer Waskar",
"website": "https://wsameer.github.io/v1/"
},
"xcyraxx": {
"country": "Oman",
"name": "Adil Jafar"
},
"xdebbie": {
"country": "France",
"linkedin": "https://www.linkedin.com/in/deborah-caldeira/",
"name": "Deborah Caldeira",
"twitter": "https://twitter.com/debishot",
"website": "https://deborah.vercel.app/"
},
"Xearty": {
"country": "Bulgaria",
"name": "Martin Ivanov"
},
"xxx32": {
"country": "India",
"name": "Aarushi"
},
"yagyikprajapat": {
"country": "India",
"linkedin": "https://www.linkedin.com/in/yagyik-prajapat-627320192/",
"name": "Yagyik Prajapat"
},
"YashAmin-01": {
"country": "India",
"name": "Yash Amin"
},
"yonaka-37": {
"country": "Indonesia",
"name": "Yusril"
},
"yunweneric": {
"country": "Cameroon",
"linkedin": "https://www.linkedin.com/in/yunwen-eric-40517a147/",
"name": "Yunwen Eric",
"twitter": "https://twitter.com/Yunweneric"
},
"Zura79": {
"country": "Indonesia",
"linkedin": "https://www.linkedin.com/in/fardeen-atallah-kabir-muhammad-4787681a0",
"name": "Fardeen Atallah Kabir Muhammad"
}
}
================================================
FILE: country-codes.js
================================================
const countryCodeMappings = [
{
"name": "Afghanistan",
"dial_code": "+93",
"code": "AF"
},
{
"name": "Aland Islands",
"dial_code": "+358",
"code": "AX"
},
{
"name": "Albania",
"dial_code": "+355",
"code": "AL"
},
{
"name": "Algeria",
"dial_code": "+213",
"code": "DZ"
},
{
"name": "AmericanSamoa",
"dial_code": "+1 684",
"code": "AS"
},
{
"name": "Andorra",
"dial_code": "+376",
"code": "AD"
},
{
"name": "Angola",
"dial_code": "+244",
"code": "AO"
},
{
"name": "Anguilla",
"dial_code": "+1 264",
"code": "AI"
},
{
"name": "Antarctica",
"dial_code": "+672",
"code": "AQ"
},
{
"name": "Antigua and Barbuda",
"dial_code": "+1268",
"code": "AG"
},
{
"name": "Argentina",
"dial_code": "+54",
"code": "AR"
},
{
"name": "Armenia",
"dial_code": "+374",
"code": "AM"
},
{
"name": "Aruba",
"dial_code": "+297",
"code": "AW"
},
{
"name": "Australia",
"dial_code": "+61",
"code": "AU"
},
{
"name": "Austria",
"dial_code": "+43",
"code": "AT"
},
{
"name": "Azerbaijan",
"dial_code": "+994",
"code": "AZ"
},
{
"name": "Bahamas",
"dial_code": "+1 242",
"code": "BS"
},
{
"name": "Bahrain",
"dial_code": "+973",
"code": "BH"
},
{
"name": "Bangladesh",
"dial_code": "+880",
"code": "BD"
},
{
"name": "Barbados",
"dial_code": "+1 246",
"code": "BB"
},
{
"name": "Belarus",
"dial_code": "+375",
"code": "BY"
},
{
"name": "Belgium",
"dial_code": "+32",
"code": "BE"
},
{
"name": "Belize",
"dial_code": "+501",
"code": "BZ"
},
{
"name": "Benin",
"dial_code": "+229",
"code": "BJ"
},
{
"name": "Bermuda",
"dial_code": "+1 441",
"code": "BM"
},
{
"name": "Bhutan",
"dial_code": "+975",
"code": "BT"
},
{
"name": "Bolivia, Plurinational State of",
"dial_code": "+591",
"code": "BO"
},
{
"name": "Bosnia and Herzegovina",
"dial_code": "+387",
"code": "BA"
},
{
"name": "Botswana",
"dial_code": "+267",
"code": "BW"
},
{
"name": "Brazil",
"dial_code": "+55",
"code": "BR"
},
{
"name": "British Indian Ocean Territory",
"dial_code": "+246",
"code": "IO"
},
{
"name": "Brunei Darussalam",
"dial_code": "+673",
"code": "BN"
},
{
"name": "Bulgaria",
"dial_code": "+359",
"code": "BG"
},
{
"name": "Burkina Faso",
"dial_code": "+226",
"code": "BF"
},
{
"name": "Burundi",
"dial_code": "+257",
"code": "BI"
},
{
"name": "Cambodia",
"dial_code": "+855",
"code": "KH"
},
{
"name": "Cameroon",
"dial_code": "+237",
"code": "CM"
},
{
"name": "Canada",
"dial_code": "+1",
"code": "CA"
},
{
"name": "Cape Verde",
"dial_code": "+238",
"code": "CV"
},
{
"name": "Cayman Islands",
"dial_code": "+ 345",
"code": "KY"
},
{
"name": "Central African Republic",
"dial_code": "+236",
"code": "CF"
},
{
"name": "Chad",
"dial_code": "+235",
"code": "TD"
},
{
"name": "Chile",
"dial_code": "+56",
"code": "CL"
},
{
"name": "China",
"dial_code": "+86",
"code": "CN"
},
{
"name": "Christmas Island",
"dial_code": "+61",
"code": "CX"
},
{
"name": "Cocos (Keeling) Islands",
"dial_code": "+61",
"code": "CC"
},
{
"name": "Colombia",
"dial_code": "+57",
"code": "CO"
},
{
"name": "Comoros",
"dial_code": "+269",
"code": "KM"
},
{
"name": "Congo",
"dial_code": "+242",
"code": "CG"
},
{
"name": "Congo, The Democratic Republic of the Congo",
"dial_code": "+243",
"code": "CD"
},
{
"name": "Cook Islands",
"dial_code": "+682",
"code": "CK"
},
{
"name": "Costa Rica",
"dial_code": "+506",
"code": "CR"
},
{
"name": "Cote d'Ivoire",
"dial_code": "+225",
"code": "CI"
},
{
"name": "Croatia",
"dial_code": "+385",
"code": "HR"
},
{
"name": "Cuba",
"dial_code": "+53",
"code": "CU"
},
{
"name": "Cyprus",
"dial_code": "+357",
"code": "CY"
},
{
"name": "Czech Republic",
"dial_code": "+420",
"code": "CZ"
},
{
"name": "Denmark",
"dial_code": "+45",
"code": "DK"
},
{
"name": "Djibouti",
"dial_code": "+253",
"code": "DJ"
},
{
"name": "Dominica",
"dial_code": "+1 767",
"code": "DM"
},
{
"name": "Dominican Republic",
"dial_code": "+1 849",
"code": "DO"
},
{
"name": "Ecuador",
"dial_code": "+593",
"code": "EC"
},
{
"name": "Egypt",
"dial_code": "+20",
"code": "EG"
},
{
"name": "El Salvador",
"dial_code": "+503",
"code": "SV"
},
{
"name": "Equatorial Guinea",
"dial_code": "+240",
"code": "GQ"
},
{
"name": "Eritrea",
"dial_code": "+291",
"code": "ER"
},
{
"name": "Estonia",
"dial_code": "+372",
"code": "EE"
},
{
"name": "Ethiopia",
"dial_code": "+251",
"code": "ET"
},
{
"name": "Falkland Islands (Malvinas)",
"dial_code": "+500",
"code": "FK"
},
{
"name": "Faroe Islands",
"dial_code": "+298",
"code": "FO"
},
{
"name": "Fiji",
"dial_code": "+679",
"code": "FJ"
},
{
"name": "Finland",
"dial_code": "+358",
"code": "FI"
},
{
"name": "France",
"dial_code": "+33",
"code": "FR"
},
{
"name": "French Guiana",
"dial_code": "+594",
"code": "GF"
},
{
"name": "French Polynesia",
"dial_code": "+689",
"code": "PF"
},
{
"name": "Gabon",
"dial_code": "+241",
"code": "GA"
},
{
"name": "Gambia",
"dial_code": "+220",
"code": "GM"
},
{
"name": "Georgia",
"dial_code": "+995",
"code": "GE"
},
{
"name": "Germany",
"dial_code": "+49",
"code": "DE"
},
{
"name": "Ghana",
"dial_code": "+233",
"code": "GH"
},
{
"name": "Gibraltar",
"dial_code": "+350",
"code": "GI"
},
{
"name": "Greece",
"dial_code": "+30",
"code": "GR"
},
{
"name": "Greenland",
"dial_code": "+299",
"code": "GL"
},
{
"name": "Grenada",
"dial_code": "+1 473",
"code": "GD"
},
{
"name": "Guadeloupe",
"dial_code": "+590",
"code": "GP"
},
{
"name": "Guam",
"dial_code": "+1 671",
"code": "GU"
},
{
"name": "Guatemala",
"dial_code": "+502",
"code": "GT"
},
{
"name": "Guernsey",
"dial_code": "+44",
"code": "GG"
},
{
"name": "Guinea",
"dial_code": "+224",
"code": "GN"
},
{
"name": "Guinea-Bissau",
"dial_code": "+245",
"code": "GW"
},
{
"name": "Guyana",
"dial_code": "+595",
"code": "GY"
},
{
"name": "Anguilla",
"dial_code": "+1 264",
"code": "AI"
},
{
"name": "Haiti",
"dial_code": "+509",
"code": "HT"
},
{
"name": "Holy See (Vatican City State)",
"dial_code": "+379",
"code": "VA"
},
{
"name": "Honduras",
"dial_code": "+504",
"code": "HN"
},
{
"name": "Hong Kong",
"dial_code": "+852",
"code": "HK"
},
{
"name": "Hungary",
"dial_code": "+36",
"code": "HU"
},
{
"name": "Iceland",
"dial_code": "+354",
"code": "IS"
},
{
"name": "India",
"dial_code": "+91",
"code": "IN"
},
{
"name": "Indonesia",
"dial_code": "+62",
"code": "ID"
},
{
"name": "Iran, Islamic Republic of Persian Gulf",
"dial_code": "+98",
"code": "IR"
},
{
"name": "Iraq",
"dial_code": "+964",
"code": "IQ"
},
{
"name": "Ireland",
"dial_code": "+353",
"code": "IE"
},
{
"name": "Isle of Man",
"dial_code": "+44",
"code": "IM"
},
{
"name": "Israel",
"dial_code": "+972",
"code": "IL"
},
{
"name": "Italy",
"dial_code": "+39",
"code": "IT"
},
{
"name": "Jamaica",
"dial_code": "+1 876",
"code": "JM"
},
{
"name": "Japan",
"dial_code": "+81",
"code": "JP"
},
{
"name": "Jersey",
"dial_code": "+44",
"code": "JE"
},
{
"name": "Jordan",
"dial_code": "+962",
"code": "JO"
},
{
"name": "Kazakhstan",
"dial_code": "+7 7",
"code": "KZ"
},
{
"name": "Kenya",
"dial_code": "+254",
"code": "KE"
},
{
"name": "Kiribati",
"dial_code": "+686",
"code": "KI"
},
{
"name": "Korea, Democratic People's Republic of Korea",
"dial_code": "+850",
"code": "KP"
},
{
"name": "Korea, Republic of South Korea",
"dial_code": "+82",
"code": "KR"
},
{
"name": "Kuwait",
"dial_code": "+965",
"code": "KW"
},
{
"name": "Kyrgyzstan",
"dial_code": "+996",
"code": "KG"
},
{
"name": "Laos",
"dial_code": "+856",
"code": "LA"
},
{
"name": "Latvia",
"dial_code": "+371",
"code": "LV"
},
{
"name": "Lebanon",
"dial_code": "+961",
"code": "LB"
},
{
"name": "Lesotho",
"dial_code": "+266",
"code": "LS"
},
{
"name": "Liberia",
"dial_code": "+231",
"code": "LR"
},
{
"name": "Libyan Arab Jamahiriya",
"dial_code": "+218",
"code": "LY"
},
{
"name": "Liechtenstein",
"dial_code": "+423",
"code": "LI"
},
{
"name": "Lithuania",
"dial_code": "+370",
"code": "LT"
},
{
"name": "Luxembourg",
"dial_code": "+352",
"code": "LU"
},
{
"name": "Macao",
"dial_code": "+853",
"code": "MO"
},
{
"name": "Macedonia",
"dial_code": "+389",
"code": "MK"
},
{
"name": "Madagascar",
"dial_code": "+261",
"code": "MG"
},
{
"name": "Malawi",
"dial_code": "+265",
"code": "MW"
},
{
"name": "Malaysia",
"dial_code": "+60",
"code": "MY"
},
{
"name": "Maldives",
"dial_code": "+960",
"code": "MV"
},
{
"name": "Mali",
"dial_code": "+223",
"code": "ML"
},
{
"name": "Malta",
"dial_code": "+356",
"code": "MT"
},
{
"name": "Marshall Islands",
"dial_code": "+692",
"code": "MH"
},
{
"name": "Martinique",
"dial_code": "+596",
"code": "MQ"
},
{
"name": "Mauritania",
"dial_code": "+222",
"code": "MR"
},
{
"name": "Mauritius",
"dial_code": "+230",
"code": "MU"
},
{
"name": "Mayotte",
"dial_code": "+262",
"code": "YT"
},
{
"name": "Mexico",
"dial_code": "+52",
"code": "MX"
},
{
"name": "Micronesia, Federated States of Micronesia",
"dial_code": "+691",
"code": "FM"
},
{
"name": "Moldova",
"dial_code": "+373",
"code": "MD"
},
{
"name": "Monaco",
"dial_code": "+377",
"code": "MC"
},
{
"name": "Mongolia",
"dial_code": "+976",
"code": "MN"
},
{
"name": "Montenegro",
"dial_code": "+382",
"code": "ME"
},
{
"name": "Montserrat",
"dial_code": "+1664",
"code": "MS"
},
{
"name": "Morocco",
"dial_code": "+212",
"code": "MA"
},
{
"name": "Mozambique",
"dial_code": "+258",
"code": "MZ"
},
{
"name": "Myanmar",
"dial_code": "+95",
"code": "MM"
},
{
"name": "Namibia",
"dial_code": "+264",
"code": "NA"
},
{
"name": "Nauru",
"dial_code": "+674",
"code": "NR"
},
{
"name": "Nepal",
"dial_code": "+977",
"code": "NP"
},
{
"name": "Netherlands",
"dial_code": "+31",
"code": "NL"
},
{
"name": "Netherlands Antilles",
"dial_code": "+599",
"code": "AN"
},
{
"name": "New Caledonia",
"dial_code": "+687",
"code": "NC"
},
{
"name": "New Zealand",
"dial_code": "+64",
"code": "NZ"
},
{
"name": "Nicaragua",
"dial_code": "+505",
"code": "NI"
},
{
"name": "Niger",
"dial_code": "+227",
"code": "NE"
},
{
"name": "Nigeria",
"dial_code": "+234",
"code": "NG"
},
{
"name": "Niue",
"dial_code": "+683",
"code": "NU"
},
{
"name": "Norfolk Island",
"dial_code": "+672",
"code": "NF"
},
{
"name": "Northern Mariana Islands",
"dial_code": "+1 670",
"code": "MP"
},
{
"name": "Norway",
"dial_code": "+47",
"code": "NO"
},
{
"name": "Oman",
"dial_code": "+968",
"code": "OM"
},
{
"name": "Pakistan",
"dial_code": "+92",
"code": "PK"
},
{
"name": "Palau",
"dial_code": "+680",
"code": "PW"
},
{
"name": "Palestinian Territory, Occupied",
"dial_code": "+970",
"code": "PS"
},
{
"name": "Panama",
"dial_code": "+507",
"code": "PA"
},
{
"name": "Papua New Guinea",
"dial_code": "+675",
"code": "PG"
},
{
"name": "Paraguay",
"dial_code": "+595",
"code": "PY"
},
{
"name": "Peru",
"dial_code": "+51",
"code": "PE"
},
{
"name": "Philippines",
"dial_code": "+63",
"code": "PH"
},
{
"name": "Pitcairn",
"dial_code": "+872",
"code": "PN"
},
{
"name": "Poland",
"dial_code": "+48",
"code": "PL"
},
{
"name": "Portugal",
"dial_code": "+351",
"code": "PT"
},
{
"name": "Puerto Rico",
"dial_code": "+1 939",
"code": "PR"
},
{
"name": "Qatar",
"dial_code": "+974",
"code": "QA"
},
{
"name": "Romania",
"dial_code": "+40",
"code": "RO"
},
{
"name": "Russia",
"dial_code": "+7",
"code": "RU"
},
{
"name": "Rwanda",
"dial_code": "+250",
"code": "RW"
},
{
"name": "Reunion",
"dial_code": "+262",
"code": "RE"
},
{
"name": "Saint Barthelemy",
"dial_code": "+590",
"code": "BL"
},
{
"name": "Saint Helena, Ascension and Tristan Da Cunha",
"dial_code": "+290",
"code": "SH"
},
{
"name": "Saint Kitts and Nevis",
"dial_code": "+1 869",
"code": "KN"
},
{
"name": "Saint Lucia",
"dial_code": "+1 758",
"code": "LC"
},
{
"name": "Saint Martin",
"dial_code": "+590",
"code": "MF"
},
{
"name": "Saint Pierre and Miquelon",
"dial_code": "+508",
"code": "PM"
},
{
"name": "Saint Vincent and the Grenadines",
"dial_code": "+1 784",
"code": "VC"
},
{
"name": "Samoa",
"dial_code": "+685",
"code": "WS"
},
{
"name": "San Marino",
"dial_code": "+378",
"code": "SM"
},
{
"name": "Sao Tome and Principe",
"dial_code": "+239",
"code": "ST"
},
{
"name": "Saudi Arabia",
"dial_code": "+966",
"code": "SA"
},
{
"name": "Senegal",
"dial_code": "+221",
"code": "SN"
},
{
"name": "Serbia",
"dial_code": "+381",
"code": "RS"
},
{
"name": "Seychelles",
"dial_code": "+248",
"code": "SC"
},
{
"name": "Sierra Leone",
"dial_code": "+232",
"code": "SL"
},
{
"name": "Singapore",
"dial_code": "+65",
"code": "SG"
},
{
"name": "Slovakia",
"dial_code": "+421",
"code": "SK"
},
{
"name": "Slovenia",
"dial_code": "+386",
"code": "SI"
},
{
"name": "Solomon Islands",
"dial_code": "+677",
"code": "SB"
},
{
"name": "Somalia",
"dial_code": "+252",
"code": "SO"
},
{
"name": "South Africa",
"dial_code": "+27",
"code": "ZA"
},
{
"name": "South Georgia and the South Sandwich Islands",
"dial_code": "+500",
"code": "GS"
},
{
"name": "Spain",
"dial_code": "+34",
"code": "ES"
},
{
"name": "Sri Lanka",
"dial_code": "+94",
"code": "LK"
},
{
"name": "Sudan",
"dial_code": "+249",
"code": "SD"
},
{
"name": "Suriname",
"dial_code": "+597",
"code": "SR"
},
{
"name": "Svalbard and Jan Mayen",
"dial_code": "+47",
"code": "SJ"
},
{
"name": "Swaziland",
"dial_code": "+268",
"code": "SZ"
},
{
"name": "Sweden",
"dial_code": "+46",
"code": "SE"
},
{
"name": "Switzerland",
"dial_code": "+41",
"code": "CH"
},
{
"name": "Syrian Arab Republic",
"dial_code": "+963",
"code": "SY"
},
{
"name": "Taiwan",
"dial_code": "+886",
"code": "TW"
},
{
"name": "Tajikistan",
"dial_code": "+992",
"code": "TJ"
},
{
"name": "Tanzania, United Republic of Tanzania",
"dial_code": "+255",
"code": "TZ"
},
{
"name": "Thailand",
"dial_code": "+66",
"code": "TH"
},
{
"name": "Timor-Leste",
"dial_code": "+670",
"code": "TL"
},
{
"name": "Togo",
"dial_code": "+228",
"code": "TG"
},
{
"name": "Tokelau",
"dial_code": "+690",
"code": "TK"
},
{
"name": "Tonga",
"dial_code": "+676",
"code": "TO"
},
{
"name": "Trinidad and Tobago",
"dial_code": "+1 868",
"code": "TT"
},
{
"name": "Tunisia",
"dial_code": "+216",
"code": "TN"
},
{
"name": "Turkey",
"dial_code": "+90",
"code": "TR"
},
{
"name": "Turkmenistan",
"dial_code": "+993",
"code": "TM"
},
{
"name": "Turks and Caicos Islands",
"dial_code": "+1 649",
"code": "TC"
},
{
"name": "Tuvalu",
"dial_code": "+688",
"code": "TV"
},
{
"name": "Uganda",
"dial_code": "+256",
"code": "UG"
},
{
"name": "Ukraine",
"dial_code": "+380",
"code": "UA"
},
{
"name": "United Arab Emirates",
"dial_code": "+971",
"code": "AE"
},
{
"name": "United Kingdom",
"dial_code": "+44",
"code": "GB"
},
{
"name": "United States",
"dial_code": "+1",
"code": "US"
},
{
"name": "Uruguay",
"dial_code": "+598",
"code": "UY"
},
{
"name": "Uzbekistan",
"dial_code": "+998",
"code": "UZ"
},
{
"name": "Vanuatu",
"dial_code": "+678",
"code": "VU"
},
{
"name": "Venezuela, Bolivarian Republic of Venezuela",
"dial_code": "+58",
"code": "VE"
},
{
"name": "Vietnam",
"dial_code": "+84",
"code": "VN"
},
{
"name": "Virgin Islands, British",
"dial_code": "+1 284",
"code": "VG"
},
{
"name": "Virgin Islands, U.S.",
"dial_code": "+1 340",
"code": "VI"
},
{
"name": "Wallis and Futuna",
"dial_code": "+681",
"code": "WF"
},
{
"name": "Yemen",
"dial_code": "+967",
"code": "YE"
},
{
"name": "Zambia",
"dial_code": "+260",
"code": "ZM"
},
{
"name": "Zimbabwe",
"dial_code": "+263",
"code": "ZW"
}
]
module.exports = (countryName) => {
if (!countryName) {
return undefined
}
const country = countryCodeMappings.find(country => country.name.toLowerCase().trim() === countryName.toLowerCase().trim())
return country && country.code
}
================================================
FILE: gatsby-browser.js
================================================
// custom typefaces
import 'typeface-lora'
import 'typeface-libre-baskerville'
import 'typeface-ibm-plex-mono'
================================================
FILE: gatsby-config.js
================================================
module.exports = {
siteMetadata: {
title: `Developer Community Stats`,
author: `Developer Community Stats`,
description: `Personal blog and pet projects of Developer Community Stats. Learn javascript, React, AWS, Go and much more. Use different open source tools and online apps dedicated for visualization and increasing productivity.`,
siteUrl: `https://subeshbhandari.com/`,
social: {
twitter: `subeshb1`,
facebook: `subesh`,
instagram: `subeshb1`,
},
},
plugins: [
`gatsby-plugin-sass`,
{
resolve: `gatsby-transformer-remark`,
options: {
// CommonMark mode (default: true)
commonmark: true,
// Footnotes mode (default: true)
footnotes: true,
// Pedantic mode (default: true)
pedantic: true,
// GitHub Flavored Markdown mode (default: true)
gfm: true,
// Plugins configs
plugins: [
{
resolve: `gatsby-remark-images`,
options: {
maxWidth: 900,
quality: 75,
showCaptions: ['alt', 'title'],
markdownCaptions: true,
},
},
{
resolve: `gatsby-remark-responsive-iframe`,
options: {
wrapperStyle: `margin-bottom: 1.0725rem`,
},
},
{
resolve: `gatsby-remark-copy-linked-files`,
},
{
resolve: `gatsby-remark-smartypants`,
},
{
resolve: `gatsby-remark-reading-time`,
},
{
resolve: 'gatsby-remark-autolink-headers',
options: {
offsetY: `200`,
enableCustomId: true,
icon: ` `,
},
},
{
resolve: `gatsby-remark-vscode`,
options: {
theme: {
default: 'Light+ (default light)',
parentSelector: {
// Any CSS selector will work!
'.code-dark-plus': 'Dark+ (default dark)',
'.code-light-plus': 'Light+ (default light)',
'.code-tomorrow-night-blue': 'Tomorrow Night Blue',
'.code-red': 'Red',
'.code-abyss': 'Abyss',
'.code-dark-visual-studio': 'Dark (Visual Studio)',
'.code-light-visual-studio': 'Light (Visual Studio)',
'.code-high-contrast': 'High Contrast',
'.code-kimbie-dark': 'Kimbie Dark',
'.code-monokai-dimmed': 'Monokai Dimmed',
'.code-monokai': 'Monokai',
'.code-quiet-light': 'Quiet Light',
'.code-solarized-dark': 'Solarized Dark',
'.code-solarized-light': 'Solarized Light',
'.code-synth-wave-84': `SynthWave '84`,
},
},
extensions: ['synthwave-vscode'],
inlineCode: {
marker: '•',
theme: {
default: 'Light+ (default light)',
parentSelector: {
// Any CSS selector will work!
'.theme-dark': 'Dark+ (default dark)',
},
},
},
},
},
],
},
},
{
resolve: `gatsby-plugin-transition-link`,
},
{
resolve: `gatsby-plugin-nprogress`,
options: {
// Setting a color is optional.
color: `tomato`,
// Disable the loading spinner.
showSpinner: true,
},
},
`gatsby-plugin-emotion`,
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/readme-profiles`,
name: `readme`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/src/assets`,
name: `assets`,
},
},
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-google-analytics`,
options: {
trackingId: process.env.GOOGLE_ANALYTICS_TRACKING_KEY,
},
},
// {
// resolve: `gatsby-plugin-feed`,
// options: {
// query: `
// {
// site {
// siteMetadata {
// title
// description
// siteUrl
// }
// }
// }
// `,
// },
// },
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `Developer Community Stats`,
short_name: `Developer`,
start_url: `/`,
background_color: `#ffffff`,
theme_color: `#663399`,
display: `minimal-ui`,
},
},
// `gatsby-plugin-offline`,
`gatsby-plugin-react-helmet`,
{
resolve: `gatsby-plugin-typography`,
options: {
pathToConfigModule: `src/utils/typography`,
},
},
{
resolve: `gatsby-plugin-sitemap`,
options: {
exclude: [`/app/nepali-date*`],
},
},
{
resolve: 'gatsby-plugin-html-attributes',
options: {
lang: 'en',
},
},
],
}
================================================
FILE: gatsby-node.js
================================================
const path = require(`path`)
const { createFilePath } = require(`gatsby-source-filesystem`)
const contributorsList = require('./contributors.json')
let stats
if (process.env.ENV_TYPE === 'mock') {
stats = require('./mock-stats-generator')
} else {
stats = require('./stats-generator')
}
const findCountryCode = require('./country-codes')
exports.createPages = ({ graphql, actions }) => {
const { createPage } = actions
const blogPost = path.resolve(`./src/templates/readme-profile.js`)
return graphql(
`
{
allMarkdownRemark(
limit: 1000
) {
edges {
node {
id
fields {
slug
githubUserId
}
}
}
}
}
`
).then(result => {
if (result.errors) {
throw result.errors
}
// Create blog posts pages.
const posts = result.data.allMarkdownRemark.edges
posts.forEach((post, index) => {
const previous = index === posts.length - 1 ? null : posts[index + 1].node
const next = index === 0 ? null : posts[index - 1].node
createPage({
path: post.node.fields.slug,
component: blogPost,
context: {
slug: post.node.fields.slug,
githubUserId: post.node.fields.githubUserId,
previous,
next,
},
})
})
})
}
exports.onCreateNode = ({ node, actions, getNode }) => {
const { createNodeField } = actions
if (node.internal.type === `MarkdownRemark`) {
let value
if (node.frontmatter.type === 'doc') {
value = `${createFilePath({ node, getNode }).replace(/\/$/, '')}`
} else {
value = `/profile${createFilePath({ node, getNode }).replace(/\/$/, '')}`
}
createNodeField({
name: `slug`,
node,
value,
})
createNodeField({
name: `githubUserId`,
node,
value: value.split('/').splice(-1)[0],
})
}
}
exports.sourceNodes = async ({
actions,
createContentDigest,
createNodeId,
getNodesByType,
}) => {
const { createNode } = actions
return Promise.all(
Object.keys(contributorsList).reduce((batch, item) => {
if (batch[batch.length - 1].length === 20) {
batch.push([item])
} else {
batch[batch.length - 1].push(item)
}
return batch
}, [[]])
.map(contributors => stats.fetchCountStats(contributors))
).then((allContributors) => allContributors.reduce((obj, nobj) => ({ ...obj, ...nobj }), {}))
.then(contributorStats => {
// loop through data and create Gatsby nodes
Object.entries(contributorStats).forEach(([contributor, information]) => {
createNode({
...information,
...contributorsList[contributor],
githubUserId: contributor,
id: createNodeId(`${contributor}`),
countryCode: findCountryCode(contributorsList[contributor].country),
parent: null,
children: [],
internal: {
type: 'contributor',
content: JSON.stringify(information),
contentDigest: createContentDigest(contributor),
},
})
})
}).catch(console.error)
}
================================================
FILE: gatsby-ssr.js
================================================
================================================
FILE: legacy_store.js
================================================
module.exports = {
"slash-coders": {
"name": "Slash Coders",
"country": "United States"
},
"subeshb1": {
"name": "Subesh Bhandari",
"twitter": "https://twitter.com/subeshb1",
"linkedin": "https://www.linkedin.com/in/subesh-bhandari-523438112/",
"country": "Nepal"
},
"sketch-tester": {
"name": "Sketch Tester",
"country": "Kenya"
},
"acorson1": {
"name": "Alex Corson",
"country": "United Kingdom"
},
"OmkarGeedh": {
"name": "Omkar Geedh",
"country": "India"
},
"WickedInvi": {
"name": "Deyan Petrov",
"country": "United Kingdom"
},
"PankajGupta": {
"name": "Pankaj Gupta ",
"country": "India"
},
"Shubham-Agarwal16": {
"name": "Shubham Agarwal",
"country": "India",
"linkedin": "www.linkedin.com/in/shubham-agarwal16"
},
"abhijeetekad": {
"country": 'India',
"name": 'Abhijeet Rohidas Ekad',
"linkedin": 'https://www.linkedin.com/in/abhijeet-ekad-767a691aa/',
},
"prajnakalpa": {
name: "Prajnakalpa Mishra",
country: "India"
},
"J3ffJessie": {
"name": "Jeff Jessie",
"country": "United States",
"twitter": "https://twitter.com/j3ffjessie",
"linkedin": "http://linkedin.com/in/jeff-jessie-4b2323a9",
},
"nisargpawade": {
"country": "India",
"name": "Nisarg Pawade",
}
}
================================================
FILE: mock-stats-generator.js
================================================
module.exports = {
fetchCountStats: () => {
return Promise.resolve({
abhijeetekad: {
repositoryCount: 2,
repoContributedCount: 6,
contributionYears: [2020],
followersCount: 1,
issuesCount: 0,
pullRequestsCount: 6,
avatarUrl:
'https://avatars1.githubusercontent.com/u/70329145?u=35847772b4aaca38d0b9ffe40f593020c79287a7&v=4',
firstContribution: 2020,
thisYearContribution: 32,
},
acorson1: {
repositoryCount: 4,
repoContributedCount: 4,
contributionYears: [2020, 2019, 2018, 2017],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 4,
avatarUrl: 'https://avatars2.githubusercontent.com/u/33963426?v=4',
firstContribution: 2017,
thisYearContribution: 46,
},
J3ffJessie: {
repositoryCount: 43,
repoContributedCount: 5,
contributionYears: [2020, 2019, 2018],
followersCount: 21,
issuesCount: 7,
pullRequestsCount: 19,
avatarUrl:
'https://avatars1.githubusercontent.com/u/39473092?u=6a37a9dfaf21f2412f6881fcf3f1009e26078e8d&v=4',
firstContribution: 2018,
thisYearContribution: 260,
},
nisargpawade: {
repositoryCount: 0,
repoContributedCount: 4,
contributionYears: [2020],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 5,
avatarUrl: 'https://avatars3.githubusercontent.com/u/70917826?v=4',
firstContribution: 2020,
thisYearContribution: 12,
},
OmkarGeedh: {
repositoryCount: 6,
repoContributedCount: 6,
contributionYears: [2020, 2019, 2018],
followersCount: 3,
issuesCount: 0,
pullRequestsCount: 7,
avatarUrl: 'https://avatars0.githubusercontent.com/u/40747153?v=4',
firstContribution: 2018,
thisYearContribution: 39,
},
PankajGupta: {
repositoryCount: 7,
repoContributedCount: 0,
contributionYears: [
2020,
2019,
2018,
2017,
2016,
2015,
2014,
2013,
2012,
2011,
2010,
2009,
],
followersCount: 47,
issuesCount: 40,
pullRequestsCount: 22,
avatarUrl:
'https://avatars3.githubusercontent.com/u/71128?u=a3a9ade8081a829959859c1b77b7a0c3d5e0e04e&v=4',
firstContribution: 2009,
thisYearContribution: 0,
},
prajnakalpa: {
repositoryCount: 1,
repoContributedCount: 14,
contributionYears: [2020, 2019],
followersCount: 4,
issuesCount: 1,
pullRequestsCount: 17,
avatarUrl: 'https://avatars0.githubusercontent.com/u/56736266?v=4',
firstContribution: 2019,
thisYearContribution: 51,
},
'Shubham-Agarwal16': {
repositoryCount: 6,
repoContributedCount: 3,
contributionYears: [2020, 2019],
followersCount: 0,
issuesCount: 2,
pullRequestsCount: 5,
avatarUrl:
'https://avatars0.githubusercontent.com/u/53824562?u=a69f9cb990a6f33a40f781c1f726954eae86647a&v=4',
firstContribution: 2019,
thisYearContribution: 51,
},
'sketch-tester': {
repositoryCount: 0,
repoContributedCount: 1,
contributionYears: [2020, 2019, 2018],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 8,
avatarUrl: 'https://avatars2.githubusercontent.com/u/44187957?v=4',
firstContribution: 2018,
thisYearContribution: 7,
},
'slash-coders': {
repositoryCount: 0,
repoContributedCount: 1,
contributionYears: [2020],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 1,
avatarUrl: 'https://avatars3.githubusercontent.com/u/66586240?v=4',
firstContribution: 2020,
thisYearContribution: 5,
},
subeshb1: {
repositoryCount: 77,
repoContributedCount: 54,
contributionYears: [2020, 2019, 2018, 2017],
followersCount: 43,
issuesCount: 113,
pullRequestsCount: 261,
avatarUrl:
'https://avatars0.githubusercontent.com/u/27361350?u=a0ec07685b9692cd9c50ad4b4bb0fdc473064cb5&v=4',
firstContribution: 2017,
thisYearContribution: 2156,
},
WickedInvi: {
repositoryCount: 0,
repoContributedCount: 1,
contributionYears: [2020, 2019],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 1,
avatarUrl: 'https://avatars3.githubusercontent.com/u/49752323?v=4',
firstContribution: 2019,
thisYearContribution: 4,
},
KaushikiSinha: {
repositoryCount: 11,
repoContributedCount: 5,
contributionYears: [2020, 2019],
followersCount: 3,
issuesCount: 0,
pullRequestsCount: 1,
avatarUrl:
'https://avatars0.githubusercontent.com/u/57248094?s=460&u=9b0c945cdab8b81508d1191b0383d6dafc56f04b&v=4',
firstContribution: 2019,
thisYearContribution: 10,
},
gauravgutholia: {
repositoryCount: 0,
repoContributedCount: 1,
contributionYears: [2020],
followersCount: 0,
issuesCount: 0,
pullRequestsCount: 1,
avatarUrl:
'https://avatars3.githubusercontent.com/u/49594934?s=400&u=84f6c0242e4b61e6747108f55651f659352c5a1a&v=4',
firstContribution: 2020,
thisYearContribution: 4,
},
})
},
}
================================================
FILE: package.json
================================================
{
"name": "developer-community-stats",
"private": false,
"description": "A repository to encourage beginners to contribute to open source and for all contributors to view their Github stats.",
"version": "0.1.0",
"author": "Developer Community Stats ",
"bugs": {
"url": "https://github.com/subeshb1/developer-community-stats/issues"
},
"dependencies": {
"@ant-design/icons": "^4.2.2",
"@chakra-ui/core": "^0.8.0",
"@emotion/core": "^10.0.28",
"@emotion/styled": "^10.0.27",
"@mdx-js/mdx": "^1.1.0",
"@mdx-js/react": "^1.0.27",
"@mdx-js/tag": "^0.20.3",
"@popperjs/core": "^2.4.0",
"ansi_up": "^4.0.4",
"antd": "^4.2.4",
"change-case": "^3.1.0",
"disqus-react": "^1.0.6",
"dotenv": "^8.2.0",
"emotion-theming": "^10.0.27",
"flag-icon-css": "^3.5.0",
"gatsby": "^2.24.83",
"gatsby-image": "^2.0.22",
"gatsby-mdx": "^0.6.3",
"gatsby-plugin-advanced-sitemap": "^1.5.5",
"gatsby-plugin-emotion": "^4.1.2",
"gatsby-plugin-feed": "^2.0.8",
"gatsby-plugin-google-analytics": "^2.0.5",
"gatsby-plugin-html-attributes": "^1.0.5",
"gatsby-plugin-manifest": "^2.0.5",
"gatsby-plugin-nprogress": "^2.1.2",
"gatsby-plugin-offline": "^2.0.5",
"gatsby-plugin-react-helmet": "^3.0.0",
"gatsby-plugin-sass": "^2.1.3",
"gatsby-plugin-sharp": "^2.0.6",
"gatsby-plugin-sitemap": "^2.4.5",
"gatsby-plugin-transition-link": "^1.12.4",
"gatsby-plugin-typography": "^2.2.0",
"gatsby-remark-autolink-headers": "^2.1.3",
"gatsby-remark-copy-linked-files": "^2.3.3",
"gatsby-remark-images": "^3.1.7",
"gatsby-remark-prismjs": "^3.3.3",
"gatsby-remark-reading-time": "^1.0.1",
"gatsby-remark-responsive-iframe": "^2.0.5",
"gatsby-remark-series": "^1.0.1",
"gatsby-remark-smartypants": "^2.0.5",
"gatsby-remark-vscode": "^2.1.2",
"gatsby-source-filesystem": "^2.0.2",
"gatsby-transformer-remark": "^2.6.9",
"gatsby-transformer-sharp": "^2.1.3",
"gsap": "^3.2.6",
"jest": "^26.4.2",
"mdx-utils": "^0.2.0",
"moment": "^2.27.0",
"nepali-date-converter": "^3.3.0",
"node-sass": "^4.12.0",
"prism-react-renderer": "^0.1.5",
"prism-themes": "^1.1.0",
"prismjs": "^1.16.0",
"react": "^16.13.1",
"react-color": "^2.18.1",
"react-dom": "^16.13.1",
"react-dropzone": "^11.0.2",
"react-helmet": "^5.2.0",
"react-icons": "^3.10.0",
"react-laag": "^1.7.3",
"react-live": "^2.1.2",
"react-popper": "^2.2.3",
"react-redux": "^7.2.0",
"react-sticky": "^6.0.3",
"react-typography": "^0.16.13",
"react-use": "^15.1.0",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"synthwave-vscode": "github:robb0wen/synthwave-vscode",
"typeface-ibm-plex-mono": "^0.0.61",
"typeface-inconsolata": "^0.0.72",
"typeface-libre-baskerville": "^0.0.72",
"typeface-lora": "^0.0.72",
"typeface-merriweather": "0.0.72",
"typeface-montserrat": "0.0.75",
"typography": "^0.16.17",
"typography-theme-wordpress-2016": "^0.16.19"
},
"devDependencies": {
"eslint": "^6.1.0",
"eslint-plugin-react": "^7.11.1",
"prettier": "^1.14.2"
},
"homepage": "subeshbhandari.com",
"keywords": [
"gatsby"
],
"license": "MIT",
"main": "n/a",
"repository": {
"type": "git",
"url": "git+https://github.com/subeshb1/subeshbhandari.com"
},
"scripts": {
"dev": "gatsby develop",
"lint": "eslint --ext .js,.jsx --ignore-pattern public .",
"test": "jest ./specs",
"format": "prettier --trailing-comma es5 --no-semi --single-quote --write 'src/**/*.js' 'src/**/*.md'",
"develop": "gatsby develop",
"start": "npm run develop",
"build": "gatsby build",
"fix-semi": "eslint --quiet --ignore-pattern node_modules --ignore-pattern public --parser babel-eslint --no-eslintrc --rule '{\"semi\": [2, \"never\"], \"no-extra-semi\": [2]}' --fix gatsby-node.js"
}
}
================================================
FILE: readme-profiles/5h0bh4nk.md
================================================
Yo ✌️, I'm ShubhanK
A budding developer keen to learn
***My work is mostly realted to Cyber-Security and Web-Development***
- 👨💻 ***Check out my repos to view some of my work*** 👨💻
================================================
FILE: readme-profiles/96RadhikaJadhav.md
================================================
Hello 👋, I'm Radhika Jadhav
Working as a system engineer
- 🌱 I’m currently learning **Python**
### Connect with me:
[linkedin]: https://www.linkedin.com/in/radhika-jadhav-297672160/
[Twitter]: https://twitter.com/Radhika47579652/
[Github]: https://github.com/96RadhikaJadhav/
[email]: radhikajadhav014@gmail.com
================================================
FILE: readme-profiles/AAAliBaba.md
================================================
Hey 👋, I'm Arafat Arman
Aspiring Software Engineer
- I like to develop websites using React, mobile applications using C#, and I also love fitness!
- Currently learning full-stack development 🙌
### Check me out!
[linkedin]: https://www.linkedin.com/in/arafat-arman-0207a714a/
[Github]: https://github.com/AAAliBaba/
================================================
FILE: readme-profiles/Abhikumar98.md
================================================
Hey there
😄 Abhishek Kumar | 💻 A Frontend developer | 🌏 Bangalore, India
### :octocat: About me
- 🔭 I’m a `React` person.
- 🌱 I’m currently learning `vercel` and `nextJs`
- 🤔 I’m looking for help with `Devops`
- 💬 Ask me about `javascript/design`
- ⚡ Work hard, play hard
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/Ahkam95.md
================================================
Hey there
😄 Ahkam Naseek | 💻 Full Stck Developer | AI Enthusiastic | 🌏 Colombo, Sri Lanka
### :octocat: About me
- 🔭 I’m a Computer Science Undergraduate
- 🌱 I love algorithms and problem solving
- 🤔 I’m Currently learning `graph neural net`
- 💬 Ask me about `javascript/design`
- ⚡ Work hard at the same time smart too.
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/AhmadShaaban.md
================================================
Hi 👋, I'm Ahmad
Computer Science fresh Grad from Cairo University
- 🌱 I’m currently going with **C++, Java and React**
This is my first time participating in Hacktoberfest.
================================================
FILE: readme-profiles/AnshumanMahato.md
================================================
Hi 👋, I'm Anshuman
A passionate geek from India...
Github Trophies:
About me:
- 📚 Currently pursuing **Bachelors in Computer Application** from **Mrs.K.M.P.M Vocational College.**
- 💬 Ask me about **C,C++ and maybe JavaScript**
- 📫 How to reach me **anshuman.mahato0935@gmail.com**
- 🤗 I like 🎨 **sketching** and 🎮 **video gaming**
- ⚡ Fun fact **I can talk endlessly about Marvel and DC characters, Harry Potter, Assassin's Creed and similar stuff.**
Connect with me:
Languages and Tools:
================================================
FILE: readme-profiles/Ashank16.md
================================================
Hi 👋, I'm Ashank
- 🌱 I’m currently a student who wants to try and learn new languages**
================================================
FILE: readme-profiles/BasilVictor.md
================================================
Hi 👋, I'm Basil
- 📱 **Android Developer**
- 🌐 **Avid Web Developer**
- 🤖 **Compititve Coding Enthusiast**
================================================
FILE: readme-profiles/BhanukaC.md
================================================
Hi 👋, I'm Bhanuka
An undergraduate student at Sri Lanka
- 🌱 I’m currently going with **PHP, Python C and Dart**
================================================
FILE: readme-profiles/Bharrod321.md
================================================
Brad's Corner!
Software Engineer
- I code here in there what ever language is needed. Learned a bit of C++ once because the job needed it
- Still trying to get my PRs in while working and spending time with my family
- I enjoy learning new things
- Happy Hacktoberfest 2020 everyone!!!
================================================
FILE: readme-profiles/BillGun.md
================================================
Hi 👋, I'm Billy
A Software Developer From Indonesia
- 🌱 I’m currently going with **Javascript, Angular, and React**
I hope i can contribute more to Open Source
================================================
FILE: readme-profiles/Chobocharles.md
================================================
Hello! 👋 My name is Charles
I'm a software engineer currently from the United States of America
- 🌱 I'm currently developing with **C#/.NET Framework, C#/.NET Core, and JavaScript**
I'm really hoping to be able to contribute more to open source projects :)
================================================
FILE: readme-profiles/Deveshgsk.md
================================================
Hi There, I am Devesh
I am new to Open source contributition
- 🌱 I have done some projects on App development and on Making Chat bot using Rasa
- 🌱 But they were in no way open source also the repos were private
================================================
FILE: readme-profiles/Elisecroft.md
================================================
Hello 👋, I'm Elise
A Front-end Developer From France
- 🌱 I’m currently going with **React, Node.JS and more**
- 🌱 I also like game development 🎮
================================================
FILE: readme-profiles/Gaurab4.md
================================================
Hi 👋, I'm gaurab
A Developer From india
i'm first year student
================================================
FILE: readme-profiles/Guberlo.md
================================================
### Hi there, my name is Salvo, but you can call me Guberlo 👋
## I'm a Computer Science student, currently studying at the University of Catania.
- 🌱 I'm currently learning GO and node.js
- 🥅 I'm trying to improve my coding skills and I think that open source is a great way to do this.
### Contacs:
[ ][twitter]
### Languages and tools:
[ ][vscode]
[ ][js]
[ ][nodejs]
[ ][MYSQL]
[ ][python]
[ ][cpp]
---
:zap: GitHub Stats
[twitter]: https://www.twitter.com/SalvoAsero
[vscode]: https://code.visualstudio.com/
[js]: https://www.javascript.com/
[nodejs]: https://nodejs.org/
[MYSQL]: https://www.mysql.com/
[python]: https://www.python.org/
[cpp]: https://www.cplusplus.com/
================================================
FILE: readme-profiles/Hamza-Slama.md
================================================
Hi there 👋
A passionate Software Engineer
- 🔭 I’m currently working with **Sofrecom Tunisie** as a software engineer.
- 🌱 Lifelong Learning
- 📫 How to reach me **hamzaslama8@gmail.com**
================================================
FILE: readme-profiles/Janitham97.md
================================================
Hi 👋, I'm Janitha Missaka
A Software Developer From Nepal
- 🌱 I’m currently going with **RactJs and Springboot**
================================================
FILE: readme-profiles/Kritimakaushal.md
================================================
# Hello! I am Kritima!
##### I am a 3rd year student persuing **Bachelors of Technology** course from **Banasthali Vidyapith, Rajasthan.**
##### I love competitive Coding and I regularly participate in challenges on **CODECHEF.**
##### My preferred programming language is **JAVA**. Also I am interested in Java Backend Development.
##### I am currently learning Servlets and Spring MVC to build a project based on java backend technology.
##### I learnt about open source and Hacktober Fest recently and hence I have just started with a very few Pull Requests submissions. Hope to learn a lot from the Github Tech Community.
#
[](https://github.com/anuraghazra/github-readme-stats)
================================================
FILE: readme-profiles/Mogakamo.md
================================================
Hi 👋, I'm Amos Mogaka
A passionate frontend developer from Kenya
- 🔭 I’m currently working on **Wasify**
- 🌱 I’m currently learning **React Native**
- 👨💻 All of my projects are available at [https://www.github.com/mogakamo](https://www.github.com/mogakamo)
- 💬 Ask me about **java, javascript**
- 📫 How to reach me **mogaka.amo254@gmail.com**
- ⚡ Fun fact **I think i'm friendly**
Connect with me:
Languages and Tools:
================================================
FILE: readme-profiles/Mr-emeka.md
================================================
Hi 👋, I'm Ukpai Chukwuemeka
A Software Developer From Nigeria
- 🌱 I’m currently going with **AWS, Firebase, Wordpress, React and Node.js(MERN STACK)**
================================================
FILE: readme-profiles/NathanPickard.md
================================================
Hi, I'm Nathan Pickard 👋
Web developer from Portland, Oregon
- 🔭 I’m currently working on becoming an [AWS Certified Developer](https://aws.amazon.com/certification/certified-developer-associate/)
- 🌱 I’m currently learning **RxJs, Scully**
- 💬 Ask me about **JavaScript/TypeScript, Angular, and AWS**
- ⚡ Fun fact: coffee and BBQ enthusiast ☕️ 🍖
Languages and Tools:
### My latest blogs posts:
- [Quick Release Creator - GitHub Action](https://dev.to/nathanpickard/quick-release-creator-github-action-1c08)
- [Let’s use Angular Console!](https://dev.to/nathanpickard/let-s-use-angular-console-4nof)
Connect with me:
================================================
FILE: readme-profiles/Nyd3lig.md
================================================
Hello, I am Nyd3lig.
An aspiring web developer in the making from Norway!
Currently I am studying HTML, CSS and JS. And was challanged by a friend to join hacktober fest, so far I am having a lot of fun with git, and github, but it's a little confusing.
But I hope with enough exposure I'll learn the way!
================================================
FILE: readme-profiles/Pratikzzz.md
================================================
# Heyyaa Folks!! Pratik this side
- 🔭 I’m currently working on Web-App Pentesting.
- 🌱 I’m currently learning Blockchain Pentesting.
- 👯 I’m looking to collaborate on Github
- 💬 Ask me about ethical hacking, programming, networking.
- 📫 How to reach me: pratik.gupta1998@gmail.com
- Eat 🍽 Sleep 🛌 Hack⚡ Repeat 🔁
## Languages and Tools I know:
## Github Stats!
## Let's connect on a cup of coffee and chat!
### Open for collaborations.
[ ](mailto:pratik.gupta1998@gmail.com) [ ](https://www.instagram.com/pratik__2511/) [ ](https://www.facebook.com/pratik.gupta.77398/) [ ]() [ ](https://www.linkedin.com/in/pratik-gupta-4495a282/)
================================================
FILE: readme-profiles/RajeshNathani.md
================================================
Hey, I am Rajesh.
I am currently persuing B.Tech in Computer Science in Medi-Caps University , Indore.
I have won 4 hackathons
I was Rank 6 in International Informatics Olympiad 2018.
I am good in Python,C,C++ Django, Flask,javascript,nodejs,express,react and mysql.
I am interested in Machine Learning too.
Also author of easy-nlp package for python.
================================================
FILE: readme-profiles/RebaiAhmed.md
================================================
## Hey 👋, This is Rebai Ahmed
[](mailto:rebai.ahmed@outlook.com)
[](https://www.linkedin.com/in/https://www.linkedin.com/in/rebaiahmed//) [](https://www.github.com/RebaiAhmed/) [](https://www.twitter.com/https://twitter.com/RebaiAhmed_/) [](https://rebaiahmed.github.io/) My name is Rebai Ahmed and I'm a software developer/engineer. I'm from Tunisia and currently working at beys-software.
## ✍ Blog & Writing
Apart from coding, I also maintain a blog - you can find my articles on [Medium](https://medium.com/@Ahmedrebai) and [DEV.to](https://dev.to/rebaiahmed).
## 🔧 Technologies & Tools






## Some of my Github Stats
[](https://github.com/RebaiAhmed/github-readme-stats)
[](https://github.com/RebaiAhmed/github-readme-stats)
================================================
FILE: readme-profiles/Riyana6.md
================================================
Hi 👋, I'm Jeema Riyana
A Software Developer from Sri Lanka
- 🌱 I’m currently studying **Springboot**
- 📫 I'm an undergraduate in Sri Lankan University.
I am interested in followings.
**Languages**
C
Java
**Databases**
MongoDB
MySQL
Thank you for Joining with You!
================================================
FILE: readme-profiles/Ronal2do.md
================================================
Hi 👋, I'm Ronaldo
I'm a mentor, Tech Lead and Senior Mobile Developer in Netherlands
- 🌱 I’m currently going with **JS, TS, Java, Kotlin, ObjC, Swift**
================================================
FILE: readme-profiles/Semvrij.md
================================================
# Sem's GitHub Profile
- Currently working on private projects and learning new languages and skills.
- Right now I'm learning React.
- I am thinking about learning GoLang.
## GitHub Stats

## Languages and Frameworks
## Tools
================================================
FILE: readme-profiles/Shreejana123.md
================================================
Hi!👋 I am Shreejana.
I am a programmer from Nepal.I am currently working on HTML and CSS.Besides programming, I love to listen music ♪ and watch movies 🎥 with delicious food aside😋.
Current Status
I'm currently working on HTML and CSS.
I'm currently Learning HTML.
I hope to be a web developement programmer.
================================================
FILE: readme-profiles/Siddhant-K-code.md
================================================
### Hello!
[ ](https://twitter.com/Siddhant_K_code)
[ ](https://www.linkedin.com/in/siddhantkhare24/)
[ ](https://www.facebook.com/SIDDHANTKHARE2407/)
[ ](https://www.instagram.com/siddhant_says/)

#### 🤔 Who Am I!?
- 🏫 I am a Junior pursuing a Bachelor’s degree in Computer Sciences from the Global Engineering College, Jabalpur (M.P.) [2023].
- ⚡️ My expertise primarily revolves around Web Developemnt, UI/UX Designs.
- 🔭 I’m currently working on JavaScript, i.e., React.js, Node.js.
- ♥️ I am an open-source lover and that's why I occasionally build open-source products.
#### 👨🏻💻 Mostly Used Languages and Tools :
#### 👨🏻💻 Familiar With :


================================================
FILE: readme-profiles/SkyC0der.md
================================================
Kon'nichiwa
I'm Emmanuel - The SkyCoder
I'm a Web developer from Nigeria.
I'm currently interested in:
- JavaScript
- React
- NodeJS
- Blockchain Technology
- 3D Modelling
================================================
FILE: readme-profiles/SrijitaSarkar99.md
================================================
Hey there, I'm Srijita
A learner trying to manage between programming and art
I have learnt and trying to get better at:
- C
- C++
- Java
- Shell Scripting
- Flask
- JavaScript
- NodeJS
- React
- React Native
- MERN stack
================================================
FILE: readme-profiles/TanishqDsharma.md
================================================
Hello 👋, I'm Tanishq Sharma
Working as Software Engineer Intern at Lucideus
- 🌱 I’m currently learning **Python**
### Connect with me:
[linkedin]: https://www.linkedin.com/in/tanishq-sharma-b24864190/
[Github]: https://github.com/TanishqDsharma
[email]: tanishqsharma612@gmail.com
================================================
FILE: readme-profiles/Tawishi.md
================================================
Hi 👋, I'm Tawishi
Sophmore from India
- 🌱 I’m currently going with **Python in ML and AI**
================================================
FILE: readme-profiles/Thusal06.md
================================================
Hi 👋, I'm Thusal
A Student Programmer from Sri Lanka
Google Code-in 2019 Finalist 😎
- I’m currently learning C++ and HTML and contributing to Open Source**
================================================
FILE: readme-profiles/Zura79.md
================================================
Hi 👋, I'm Fardeen
A Front end Developer From Indonesial
- 🌱 I’m currently going with **Java,Javascript & Python**
================================================
FILE: readme-profiles/abhishekpatel946.md
================================================
# Hello, folks!
My name is Abhishek Patel and basically I'm a Full Stack Developer. I'm from India, and currently I'm a Student.
You can find me on [![Twitter][1.2]][1], or on [![LinkedIn][3.2]][3].
## 🔧 Technologies & Tools









## 📈 GitHub Stats
[1.1]: http://i.imgur.com/tXSoThF.png (twitter icon with padding)
[2.1]: http://i.imgur.com/0o48UoR.png (github icon with padding)
[1.2]: http://i.imgur.com/wWzX9uB.png (twitter icon without padding)
[2.2]: http://i.imgur.com/9I6NRUm.png (github icon without padding)
[3.2]: https://raw.githubusercontent.com/MartinHeinz/MartinHeinz/master/linkedin-3-16.png (LinkedIn icon without padding)
[1]: https://twitter.com/@abhishekpatel_0
[2]: https://github.com/abhishekpatel946
[3]: https://www.linkedin.com/abhishek-patel-700442172/
================================================
FILE: readme-profiles/afonsocarlos.md
================================================
Hi 👋, I'm Carlos
A Software Developer From Brazil
- 🌱 I’m currently going with **PHP, Python and Javascript**.
- 💻 Working with Laravel (PHP) but still interested in working with Python though.
================================================
FILE: readme-profiles/alexkimeu0.md
================================================
Yo, what's up ✌️, I'm Alex Kimeu
Software Developer | Blogger
Limitless Learner
Gamer
**_My job revolves around Web Development & Quality Assurance_**
- 👨💻 **_Check out my repos to view some of my work_** 👨💻
================================================
FILE: readme-profiles/alvinuday.md
================================================
Well for starters , Hi my name is Alvin
I'm a first year student at Bits Pilani, Pilani
My class 12th exams just got over some months ago
and i'm finally done with the JEE rat race.
I always had an interest in coding and technology (Basically the RANCHO of my house) **3 idiots reference here**
I know pyhton , c++,c and a bit of java. i mean most of the programming languages are similar except their syntax.
**I dont have many things to brag about# like big projects and all but...**
*7th AIR in computer science olympiad
*state level badminton player
*i do have a knack for music ; i play guitar and keyboard
and i'm hoping to add on further
i love AI and Machine learning
i just started with few simple datasets on kaggle
hoping to get better at it
I started GITHUB so that i could better interact with the tech community
and most of all LEARN
*PS: I'm still trying to get the hang of GITHUB markdown*
================================================
FILE: readme-profiles/ami1708.md
================================================
Hey Folks! 👋, I'm Amisha Negi
I'm a full stack developer and a content writer.
✍ Apart from technology , I also love writing
You can find my articles on my website at on https://medium.com/@amisha17200
- 🔭 I’m currently working on : **Something cool**
- 🌱 I’m currently learning :**Backend development**
- 📫 How to reach me :**Please refer to the links given below**
- ⚡ Fun fact: I ❤️🐶s and new fashion Trends!
================================================
FILE: readme-profiles/amitsgh.md
================================================
Hi , I'm Amit Singh
A CSE Junior and Tech Lover
[](https://www.linkedin.com/in/amit-singh-a794131b5/)
[](https://www.instagram.com/amtsngh/)
[](https://github.com/amitsgh)
- 🔭 I’m currently working on Flutter project
- 🌱 I’m currently learning Flutter and Docker
- 👯 I’m looking to collaborate more in open source
- 📫 How to reach me: [Linkedin - Amit Singh](https://www.linkedin.com/in/amit-singh-a794131b5/)
- 😄 Pronouns: he
- ⚡ Fun fact: I love to play basketball 🏀 and read/watch mystery genre🕵️♂️
================================================
FILE: readme-profiles/amitverma07.md
================================================
### Hi there 👋🏽, I'm [Amit!](https://amitverma.codes)

[](http://hits.dwyl.com/amitverma07/amitverma07)
Hi, I'm Amit Verma, a Full Stack Developer 🚀 from Canada, currently, I'm a Internee 👨🏽💼[@CityofWinnipeg](https://www.winnipeg.ca/interhom/).
**Talking about Personal Stuffs:**
- 🔭 I’m currently working on eVoting Application;
- 🌱 I’m currently learning Python;
- 👯 I’m looking to collaborate on building afordable Greenhouses;
- 💬 Ask me about anything, I am happy to help;
- 📫 How to reach me: amitverma07@yahoo.com;
- 📝[Resume](https://drive.google.com/file/d/1SDiv1XVl044SnOzR-bwSLcbM-KCsNlXn/view?usp=sharing)
**Languages and Tools:**
📊 **This week I spent my time on**
```text
```

================================================
FILE: readme-profiles/anacarolinaarellano.md
================================================
# Hello!! I'm Ana Carolina
***
This is my first time participating in Hacktoberfest and so far it's been great!
[](https://github.com/anacarolinaarellano)
================================================
FILE: readme-profiles/ankit-rawani.md
================================================

### Ankit Rawani
Graphic Designer and Web Developer
Sophomore at National Institute of Technology, Tiruchirapalli, India.
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/anu-ragi.md
================================================
# Hello, I'm Anu Ragi
## From Bengaluru, India
## First time with OpenSource and **Hacktoberfest**!!
I'm having a good time with **Github** so far.. Esp the __*GitLab*__ which is defintely gets a Thumbs-up..!
*Just figuring out previewing markdown and html*
================================================
FILE: readme-profiles/armsasmart.md
================================================
### Hi there 👋
I'm Arm. I'm a software engineer who write a program every day 😂.
- 🔭 I’m currently working on [Entercorp](https://entercorp.net/).
- 🌱 I’m currently learning Javascirpt (Vue.js, Node.js), Livewire and Laravel.
- 👯 I’m looking to collaborate on Javascript (Vue.js, Node.js) / PHP (Laravel) projects.
- 🤔 I’m looking for help with becoming a full-stack developer.
- 💬 Ask me about life, programmimg, game and general.
- 😄 Pronouns: He / Him.
- ⚡ Fun fact: I'm a Instigated. 🤣
📫 How to reach me:
[](mailto:sirawit.aarm@gmail.comm)
[](https://www.facebook.com/arm.sirawit.75)
[](https://www.instagram.com/armsirawitt/)
[](https://dev.to/sirawit)

================================================
FILE: readme-profiles/ayansiddiqui007.md
================================================
I am a web developer
Currently working as a freelancer 👋
- 🔭 I’m currently doing Computer Science Engineering .
- 🌱 I’m currently learning Js & Python & PHP .
- 👯 I’m looking to collaborate on Web Development Projects !
- 🤔 I’m looking for help with IgniteSubs
- 💬 Ask me about Web Dev Projects & Freelance Projects ?
- 📫 How to reach me: https://codepen.io/ironman_ or ayaansiddiqui851@gmail.com
- I'm working on Youtube Subs Project.
================================================
FILE: readme-profiles/ayoolafelix.md
================================================
## Hi there, I'm Felix Ayoola👋
### Connect with me:
[ ][linkedin]
[ ][instagram]
[ ][facebook]
[ ][email]
### Languages and Tools:
---
[](https://github.com/ayoolafelix?tab=repositories)
[](https://github.com/ayoolafelix)
[linkedin]: https://www.linkedin.com/in/oliv%C3%A9r-reider-112a70158/
[instagram]: https://www.instagram.com/ayoolafelix/
[facebook]: https://web.facebook.com/theayoolafelix/
[ayoolafelix]: https://github.com/ayoolafelix
[email]: mailto:flxayoola@mail.com
================================================
FILE: readme-profiles/b2pacific.md
================================================
Hi! My name is Prashant Pandey.
I am Full Stack Web Developer currently pursuing my B.Tech degree in Electronics and Communication Engineering.
I have worked at few startups as Frontend, Backend, and Software Engineer Intern.
Github: https://github.com/b2pacific
LinkedIn: https://www.linkedin.com/in/prashant-pandey-3545aa1ab/
I mainly work with Javascript Technologies like:
Nodejs
MERN stack
MEAN stack
PERN stack
Nestjs
Nextjs
React Native
================================================
FILE: readme-profiles/bartomiak.md
================================================
Hi, bartomiak here
Vue.js developer but focused on VanillaJs
*** Currently developing a large application written in vue and django and exploring the secrets of js ***
================================================
FILE: readme-profiles/bensbits91.md
================================================
Ben Brooks
Ben Brooks | Frontend Developer | Portland, OR, USA
### My favorite tools
- `JavaScript`
- `React`
- `SPFx`
### I'm learning more about
- `PHP`
- `SQL`
### A few samples
- [SPFx/React Goal Tracker](http://www.nutandem.com/wp-content/uploads/2020/05/sharepoint-sales-goal-tracker.gif)
- [SPFx/React Assessment Checklist](http://www.nutandem.com/wp-content/uploads/2020/05/sharepoint-assessment-checklist.gif)
- [SPFx/React Fancy Forms](http://www.nutandem.com/wp-content/uploads/2020/05/sharepoint-form-slider.gif)
- [SPFx/React Org Chart](http://www.nutandem.com/wp-content/uploads/2020/03/sharepoint-org-chart_expand.gif)
================================================
FILE: readme-profiles/bianca-michels-barcelos.md
================================================
Hi 🙋🏻♀️, I'm Bianca
I'm a Web Development Student, from Brazil and based in London, UK.
- 👩🏻💻 I’m currently going with **Javascript, CSS, and HTML**
I'd love to contribute more to OpenSource! :)
================================================
FILE: readme-profiles/binismail.md
================================================
Hello World
😄 Khalid Ismail | 😄 | 💻 A design minded front-end engineer | 🌏 Abuja, Nigeria
### :octocat: About me
- 🔭 I’m currently working on `opensource project`
- 🌱 I’m currently learning `python`
- 🤔 I’m looking for help with `learning algorithm`
- 💬 Ask me about `javascript/design`
- 😄 Pronouns: `he/him`
- ⚡ Fun fact: `love coding at night`
- 💭 Let's get to know each other 🌟
### 📕 Checkout my Blog Posts on [Dev.to](https://dev.to/binismail)
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/bojandevic.md
================================================
# Hello, I'm Bojan
Frontend developer from Bosnia with passion for all things open source.
First time contributing 😀
================================================
FILE: readme-profiles/bolu-tife.md
================================================
Hi 🙋🏾♀️, I'm Boluwatife
Software Engineer
- 🌱 I like Python!
================================================
FILE: readme-profiles/brianleemcqueen.md
================================================
My name is Brian. I work in Indianapolis, IN, USA. Since 2018, I have been working as a Scrum Master for a mobile development project. When *Hacktoberfest 2020* was introduced, I decided to set sometime aside to start getting involved with the open source community. My past development experience has been in:
* PHP
* Java
* .NET
* JavaScript
A quick writeup on some of the things I did in the 2010-2014 range is here:
[https://github.com/brianleemcqueen/brian.lee.mcqueen](https://github.com/brianleemcqueen/brian.lee.mcqueen)
================================================
FILE: readme-profiles/bruceyboy86.md
================================================
#Hi I'm Bruce
I'm a web developer working in Edinburgh
- [GitHub](https://github.com/bruceyboy86) – Here are my repos.
- [Twitter](https://twitter.com/BruceyBoyD) – Here are my thoughts.
================================================
FILE: readme-profiles/claudemuller.md
================================================
- 🔭 I'm currently working on:
- a big data Scala project including Kafka, Spark, Hadoop and Akka
- writing small C programs in order to build up to my own OS
- a 3D rendering project in C
- 🌱 I'm currently learning:
- Scala, Apache Kafka, Akka, Apache Spark and Hadoop
- building a computer from nand gates
- C
- ⚡ Fun fact: Blackbeard had 14 wives.
================================================
FILE: readme-profiles/dao-phuong.md
================================================
Hi 👋, I'm Phuong Dao
Software Developer From Viet Nam
- 🌱 I’m currently going with **ReactJS**
================================================
FILE: readme-profiles/devblin.md
================================================
### Hi there 👋, I am Deepanshu Dhruw
- 🔭 I’m currently thinking new ideas.
- 🌱 In pandemic.
- ⚡ Fun fact: Lazy.
- ⏱️ I spend most of my time in web 🕸️.
- 🖥️ I enjoy working for 🕸️.


================================================
FILE: readme-profiles/devonpmack.md
================================================
Devon Mack
💻 Full Stack Developer | Working at Shopify | 🌏 Ottawa, Canada
### :octocat: About me
- 🔭 I’m a Computer Science Undergraduate in Shopify's Dev Degree program
- 🌱 I love solving challenging problems
- 🤔 I’m Currently learning machine learning with Python
- 💬 Ask me about `React/Ruby on Rails`
- ⚡ Be lazy with your solutions
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/edazpotato.md
================================================
Hey 👋, I'm Edaz
I'm a front-end developer from New Zealand
- 🌱 I like working with **Web technologies, React, node.js and python**
- 📫 How to reach me:
Email: edazpotato@gmail.com
Twitter: [@Edazpotato](https://twitter.com/edazpotato)
Discord: [Edaz#5671](https://discord.com/users/569414372959584256)
[](https://inv.wtf/edaz)

================================================
FILE: readme-profiles/eitinaa.md
================================================
Hi 👋, I'm Tina
I'm a Designer From Brazil
- 🌱 I’m currently going with **Photoshop, Illustrator, Indesign, HTML, and CSS**
================================================
FILE: readme-profiles/engrrbilal.md
================================================
Hi 👋, Muhammad Bilal here from Pakistan
I'm a Full Stack Software Engineer(Javascript,React,React Native,Node) passionate about my work and solving problems
- 🌱 I’m currently going with **Javascript,React,React Native,Node**
Find me on linkedin here
================================================
FILE: readme-profiles/faisaljamil25.md
================================================
Hi 👋, I'm Faisal
A Web Developer from India
🌱 I’m currently going with **JavaScript, React, NodeJs and MongoDB**
================================================
FILE: readme-profiles/femakin.md
================================================
Hello 👋, I'm Femi Akinyemi
A Front-end Developer From Nigeria
- 🌱 I’m currently learning **React**
### Connect with me:
[linkedin]: https://www.linkedin.com/in/oluwafemi-tosin-akinyemi-6b028270//
[Twitter]: https://twitter.com/akinyemi_t/
[Github]: https://github.com/femakin/
[email]: mailto:akinfemi46@gmail.com
================================================
FILE: readme-profiles/fgiuliani.md
================================================
Hi 👋, I'm Facundo
Software Engineer, Full Stack Developer From Buenos Aires, Argentina
================================================
FILE: readme-profiles/gauravbisht005.md
================================================
Hi 👋, I'm Gaurav Bisht

================================================
FILE: readme-profiles/ghanender-chauhan.md
================================================
### Hi there 👋
**ghanender-chauhan/ghanender-chauhan** is a ✨ _special_ ✨ repository because its `README.md` (this file) appears on your GitHub profile.
**Hii Everyone its Ghanendra Here**
I hail from beautifull city Ajmer,Rajasthan..
I am a first year student of NIT Warangal and currently pursuing Post graduation In Engineering Physics.
I always had a interest in coding and technology thats why i took a short course (crash course) of C++ in 2014 when i m in 9th standard but as time passes i forgot all those things.
Now i again started learning python and contributing to open sources, Meanwhile for now **I dont have a expereince in big things like project handling**
State level Volleyball player
I have a much intrest in **DATA SCIENTIST** thats why, I m learning ML and AI.
Also doing some questions in jupyter notebook to learn it.
I Started GITHUB in OCT to interact with the tech community.

**Thank you**
*PS: I'm still trying to get the hang of GITHUB markdown*
================================================
FILE: readme-profiles/guijacobus2.md
================================================
Hi 👋, I'm Guilherme
A Software and App Developer From Brazil (Living in New Zealand)
- 🌱 I’m currently going with **Flutter, JS, AWS**
- 🌱 Studying web and software development at Southern Institute Of Technology
================================================
FILE: readme-profiles/hardik7e.md
================================================
Hey ✌️, I'm Hardik
Tech Enthusiast
### :octocat: About me
- I am a 3rd year student persuing **Bachelors of Technology** course in Civil Engineering from **IIT Guwahati.**
- My preferred programming language is **C++**. Also I am interested in Machine Learning.
- I am currently learning ML and Deep Learning to build a project based on Object identification.
- I learnt about open source and HacktoberFest recently and hence I have just started with a very few Pull Requests submissions. Hope to learn a lot from the Github Tech Community
[](https://github.com/hardik7e/github-readme-stats)

================================================
FILE: readme-profiles/hilbug.md
================================================
Hi 👋, I'm Hilary
A Full Stack Developer In-Training
- 🌱 I’m enrolled in a web development coding bootcamp and expected completion is in November 2020.
- 🌱 Currently learning HTML/CSS, JavaScript, Node.js, Express, React, MySQL, MongoDB, Resful APIs.
- 🌱 We recently completed a team-buidling app. [Check it out](https://the-team-builder.herokuapp.com/)!
================================================
FILE: readme-profiles/huqi.md
================================================
Nǐ hǎo 👋, I'm Huqi
A front-end engineer from China, and a copy engineer.
- 🌱 ***I like front-end the most and currently work with the same***
- 🌱 ***I like to do copying.***
## Technology Stack















## My Github
## Contact me
[](https://twitter.com/huqii)
[](https://facebook.com/huqi88)
================================================
FILE: readme-profiles/improbably.md
================================================
# Hello, friend!
## I'm **Fox** [^1] :fox_face:
I am a theatre worker-turned-student in the United States. My current focus is on network security and database management, but there's a special place in my heart for code.
I'm participating in the 2020 Hackathon in an efort to get over my shyness and start working with others on projects I believe in.
(Oh, and to get comfortable with **git**! That's a big one!)
I have been using **HTML** and **CSS** since I was in middle school, and I recently added **Javascript** into the mix. Other favorite languages to play in are **Python** and **C++**, and I hope to add **Ruby** to that list in the coming months.
[^1]: (Or **David 6**, depending on where you know me from)
(Heck, those look pretty scary, don't they? :ghost:)
================================================
FILE: readme-profiles/ishantsingla18.md
================================================
Hello 👋, I'm Ishant Singla
My skills include: Graphic Designing, UI/UX Designing and Frontend Development
- I have complete knowledge of **C, C++, Python, HTML and CSS**
- I have a little knowledge of **Javascript**, I'am currently learning that only.
- I also know some of the designing softwares like **Adobe Photoshop, Adobe Illustrator and Adobe XD**
================================================
FILE: readme-profiles/jackHedaya.md
================================================
# Hey, I'm Jack!
- I'm a student at New York University Stern School of Business and am passionate about Computer Science.
- Favorite programming is JavaScript and I ❤️ React!
- I created saloon.org with a bunch of friends, let me know what you guys think.
================================================
FILE: readme-profiles/jainsarthak216.md
================================================
Hello everyone, I'm Sarthak
I am an Electronics Engineering Student in ADGITM, Delhi
- I’m currently taking the 30 days of Google Cloud Challenge**
- Link to my LinkedIn profile : https://www.linkedin.com/in/sarthak-jain-181980167/
- See my badges @ https://google.qwiklabs.com/public_profiles/352c89d9-69e3-4d5a-88b7-3280517be527
================================================
FILE: readme-profiles/jamesmulligan.md
================================================
Hi 👋, I'm James
A Software Developer From Ireland 🍀
- 🌱 I like working with **JavaScript and Node** and am eager to learn more!
================================================
FILE: readme-profiles/joharikushagra.md
================================================
Hi 👋, I'm Kushagra
A Web enthusiast and Competitive Programmer
- I am currently an undergrad from Indian Institute of Information Technology Una
- 🌱 I’m currently going with **React,Mongo,Firebase,Node,REST**
================================================
FILE: readme-profiles/jonathanvanhaaften.md
================================================
Hello, I'm Jonathan
A server from canada working for a heli-ski lodge and trying to learn to code on my time off
================================================
FILE: readme-profiles/kanchanachathuranga.md
================================================
Hi dear! 👋
I'm kanchana chathuranga
IT student in Sri Lanka
- 🌱I love graphic design.
- 🌱I'm interested in the following.
video editing
flyer design
================================================
FILE: readme-profiles/kikit0106.md
================================================
Hello ️, I'm Kikit
I'm a Software Engineer from Indonesia
***Glad to say it's my first time join to Hacktoberfest & by the way Happy Hacktober-Fest 2020 everyone!!!***
* 👨 💻 Currently i'm working mostly with PHP framework like Yii2 & Lumen
* 👨 💻 Also there is little experience in node js with Express JS framework
================================================
FILE: readme-profiles/kodekin.md
================================================
Hi 👋, I'm Thomas
A Software Developer From Kenya
- 🌱 I’m currently going with **CSS, Python and Javascript**
================================================
FILE: readme-profiles/kontesanjana.md
================================================
Hello everyone, I'm Sanjana
I am an Electronics and computer Engineering Student from Hyderabad
## First time with OpenSource and **Hacktoberfest**!!
*Thank you*
================================================
FILE: readme-profiles/kree666.md
================================================
Hello, I'm Emily! :wave:
An MS Accounting student in the United States
- I know a little bit about **HTML/CSS, Java, JavaScript**
- This is my second official pull request on GitHub! :smiley_cat:
- Happy Hacktoberfest 2020 everyone!!!
- Happy almost Halloween!! :ghost:
================================================
FILE: readme-profiles/levi-pires.md
================================================
Hello 👋, I'm Levi
A Full-stack Student From Brazil
- I’m currently studying **React, React Native, Node.JS and more**
- I also like game development 🎮
================================================
FILE: readme-profiles/madhav1928.md
================================================
😄 Madhav | 💻 A Frontend developer | 🌏 Hyderabad, India
### :octocat: About me
- 🔭 Done Intership as web developer at Prabhat.
- 🌱 I’m currently learning `Flutter` and `TypeScript`
- ⚡ Work hard, play hard
From last 1 month i was thinking to participate in open source but i was not underestanding any process, but today onwards I started
learning it. And thank you so much for making things about contribution in github.
================================================
FILE: readme-profiles/mctraore.md
================================================
# Hello, I'm Marie-Claire! ✨
- I am a Software Developer based in the United States and I am passionate about using technology to create a positive impact in the world.
- I am currently learning more about Javascript, Java, and AWS.
- This year I am participating in Hacktoberfest for the first time! It has been a great experience to learn more about contributing to Open Source projects.
================================================
FILE: readme-profiles/mdb1710.md
================================================
## Hello I'm Michael aka Mdb1710
I'm a marketer turned software developer from the USA.
## Languages
- Javascript
- Ruby
## Frameworks
- React
- Node.Js
- Next.Js
- React Native
- Angular
- Vue
- Rails
================================================
FILE: readme-profiles/missym2.md
================================================
Hi 👋, My name is Missy
A Full Stack Developer
- 🌱 I like HTML/CSS, JavaScript, Node.js, Express, React, MySQL, MongoDB, Resful APIs.
- 🌱 I also like researching and designing apps with tools like Figma, Mural.
- 🌱 I am also a pretty good graphic designer and use Photoshop regularly.
[Take a look at my portfolio site by clicking here](http://www.missymaloney1.com)
================================================
FILE: readme-profiles/mohsin-code.md
================================================
Syed Mohsin Shah | Computer System Engineer | Peshawar, Pakistan
### :octocat: About me
- :snake: I love Python and Java.
- :school: I'm a student at UET Peshawar
- :pencil: I'm a student of Computer System Engineering
- :thought_balloon: I’m currently learning Artificial Intelligence.
- :muscle: always ready to learn

================================================
FILE: readme-profiles/moisesjsalmeida.md
================================================
# Hi, I'm Moises!
## Web developer and permanent learner
Hi! I'm a developer from Brazil. I'm new to the open source community and decided to focus my efforts on learning more.
I've studied development through the Harvard's CS50 program and worked on some projects. I'm using **Django** to make my websites, and started to learn Front-end frameworks such as **React** and **Angular**, and some **PHP** as it still is one of the most required languages on market.
- Currently learning PHP and improving skills with Python and Javascript
- Looking foward to contribute to the open-source community
================================================
FILE: readme-profiles/msriaz.md
================================================
Hey, I'm Muhammad Shoaib Riaz
Sr. Software Engineer

- I am a react native professional with more than 4 yrs of experience
- My preferred programming language is **javaScript**. Also I am interested in Machine Learning and Data Science.
[](https://github.com/msriaz/github-readme-stats)
================================================
FILE: readme-profiles/nikolas-haug.md
================================================
Hi 👋, I'm Nikolas
A Web Developer From Minneapolis, Minnesota - USA
🌱 I’m currently working with: Javascript, CSS/SCSS, React, Wordpress, and Gatsby
================================================
FILE: readme-profiles/nitch193.md
================================================
### Hi there 👋
I am a Software Developer from India.
================================================
FILE: readme-profiles/oli799.md
================================================
## Hi there, I'm Olivér - aka [oli799]👋
### Connect with me:
[ ][linkedin]
[ ][instagram]
[ ][facebook]
[ ][email]
### Languages and Tools:
---
[](https://github.com/oli799?tab=repositories)
[](https://github.com/oli799)
[linkedin]: https://www.linkedin.com/in/oliv%C3%A9r-reider-112a70158/
[instagram]: https://www.instagram.com/lizkicsije/
[facebook]: https://www.facebook.com/oliver.reider/
[oli799]: https://github.com/oli799
[email]: mailto:reider340@mail.com
================================================
FILE: readme-profiles/oshadeegangangana.md
================================================
Hi dear! 👋
I'm Oshadee Gangangana
A full stack web developer from Sri Lanka
- 🌱I’m following studying IT degree at the University of Moratuwa Sri Lanka.
- 🌱I’m currently studying **React, React Native, Angular**
================================================
FILE: readme-profiles/oshka.md
================================================
Hi 👋, I'm oshka
A Software Developer From Ukraine
- 🌱 I’m currently going with **PHP, MySql, Javascript, YII2 and Codeception**
================================================
FILE: readme-profiles/ousainu.md
================================================
Hello, T'm Ousainu!
Software Engineer
- I love to code
- This is my second official pull request for open source on GitHub!
- Happy Hacktoberfest 2020 everyone!!!
================================================
FILE: readme-profiles/parryk303.md
================================================
Hi 👋, I'm Kyle
A Software Developer From Colorado 🇺🇸
- 🌱 I like working with **JavaScript** and am eager to learn more!
================================================
FILE: readme-profiles/philip-hobobo.md
================================================
Hello 🌻, I'm Philip Hobobo
I'm currently a student learning Web Development and looking to become either a front end or full stack engineer.
- 🍵 I’m currently learning **Python**
[](https://github.com/ryo-ma/github-profile-trophy)
### Connect with me:
[linkedin]: https://www.linkedin.com/in/philip-hobobo-287623a7/
[Twitter]: https://twitter.com/PhilOh_K
[Github]: https://github.com/philip-hobobo
================================================
FILE: readme-profiles/pkspyder007.md
================================================
Hi 👋, I'm Praveen
A passionate full stack developer from India
- 🔭 I’m currently working on [A Result Portal](https://iiitu-results.herokuapp.com/)
- 🌱 I’m currently learning **Laravel**
- 👨💻 My portfolio website is available at [https://thejsguy.me](https://thejsguy.me)
- 📝 I sometime write articles on [https://thejsguy.me/blog](https://thejsguy.me/blog)
- 💬 Ask me about **react, node.js, express.js, or anything thing intresting.**
- 📫 How to reach me **praveenkr.564@gmail.com**
- ⚡ Fun fact **I can shoot like Stephen Curry**
================================================
FILE: readme-profiles/pranshumaheshwari.md
================================================
Hi 👋, I'm Pranshu
A Software Developer From India
================================================
FILE: readme-profiles/raghavg27.md
================================================
Hi 👋, I'm Raghav
A Computer Science Undergrad from India
- 🌱 I’m currently studying **Electron**
- 📫 I love to create frontend.
Thank you for Joining with You!
================================================
FILE: readme-profiles/raj5036.md
================================================
# Hi I am [Raj Karmakar](https://github.com/raj5036)
- 🔭 I’m currently working on a Social Media App based on React/GraphQL.
- 👯 I’m open to collaborate on Github
- My moto: Eat 🍽 Sleep 🛌 Hack⚡ Repeat 🔁
## BIO
Currently pursuing my B.Tech degree(4th year) in Computer Science.As a coder I have an avid interest in Data Structures,Algorithms and Optimization.I love taking challenges and being able to engineer the solution.
## Technologies
React.Js , Node.Js/Express.Js , MongoDB,Laravel,PHP,Modern JavaScript(ES6 and beyond),Git & GitHub,Heroku etc.
I would be highly interested in getting exposure to domains providing intellectually challenging work in the field of computer science for providing as well as enriching my knowledge and skills at the same time.
Please contact me at EMAIL to find out how I might contribute and add value to your next project.
### Check Out My Portflio for a detailed overview about me
[Portfolio](https://raj5036.github.io/portfolio/dist/)
### GitHub Stats:
[](https://github.com/ryo-ma/github-profile-trophy)
================================================
FILE: readme-profiles/rendani.md
================================================
👋🏾 Rendani Luvhengo
Front End Developer
I am currently learning React.js
### GitHub Stats:
================================================
FILE: readme-profiles/rexdivakar.md
================================================
# Hey! I'm [Divakar](https://www.linkedin.com/in/divakar-r-9b34b86b/)
A Software Engineer - Python enthusiast Techie, Curious Problem Solver 🚀 Currently this is the place where I break & build stuffs :rofl:
I’m not just a Nerd but a freaky one 😈

[](https://badges.pufler.dev)
[](https://badges.pufler.dev)

I love connecting with different people so if you want to say hi, I'll be happy to meet you more! 😊
**Talking about Personal Stuffs:**
- 👨🏽💻 I’m currently working on something cool :wink:;
- 🌱 I’m currently learning GraphQL and TensorFlow;
- 👯 I’m looking to collaborate on any opensource projects or Hackathons.
- 💬 Ask me about anything, I am happy to help;
- ⚡ Fun fact: I :heart: breaking stuffs:s
**Languages and Tools:**
================================================
FILE: readme-profiles/riyajain2.md
================================================
Hi 👋, I'm Riya
A management graduate but i love to code.
- 🌱 I’m currently studying **python**
- 📫 I love to code and learn about new technologies.
Thank you for Joining with You!
================================================
FILE: readme-profiles/rukundo-kevin.md
================================================
Hi 👋, I'm Rukundo Kevin
A Software Developer From Rwanda
- 🌱 I’m currently going with **AWS, JavaScript, React and NodeJs**
================================================
FILE: readme-profiles/sagarpandyansit.md
================================================
Hey there
Sagar Pandya | 🏫 NSIT Delhi | 💻 A Full Stack developer
### :octocat: About me
- I’m currently studying Computer Science at NSIT Delhi.
- I interned at IIT Bombay as a Full Stack developer.
- I'm currently exploring Machine Learning.
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
[](https://github.com/anuraghazra/github-readme-stats)

================================================
FILE: readme-profiles/saileshbro.md
================================================
### Hi there 👋
- 🔭 I’m currently working on **nutri.gram**
- 🌱 I’m currently learning [ASP.NET](https://dotnet.microsoft.com/apps/aspnet)
- 👯 I’m looking to collaborate on Flutter Projects
- 🤔 I’m looking for help with Machine Learning
- 💬 Ask me about [Flutter](https://flutter.dev)
- 📫 How to reach me: [saileshbro@gmail.com](mailto:saileshbro@gmail.com)
- 😄 Name: Sailesh Dahal
- 🇳🇵 From Nepal
- 📨 [Linkedin](https://www.linkedin.com/in/saileshbro/) [Facebook](https:///facebook.com/saileshbro) [Twitter](https://twitter.com/sail_sail30)
- ⚡ Fun fact: 2020 sucks!
---
### Highlights ✨
| My Github Stats | Top Languages |
| :-------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------: |
|  |  |
---
### Projects 💻
| | |
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| [](https://github.com/saileshbro/nutri.gram) | [](https://github.com/saileshbro/cognifeed) |
| [](https://github.com/saileshbro/nirogi) | [](https://github.com/kucc1997/ku-projects) |
---
### Contact 📞
================================================
FILE: readme-profiles/sanjus-robotic-studio.md
================================================
Hi 👋, I am Sanjiv Anand
A Programmer and a Robotics Project Developer From India
- 🌱 I’m currently going with **Web designing, Machine learning, Artificial intelligence**
**Feel Free to see my projects on youtube, github and more exciting platforms**
- **[Youtube](https://bit.ly/sanjusroboticsstudio)**
- **[Github](https://github.com/sanjus-robotic-studio)**
- **[Hackster.io](https://www.hackster.io/Sanjus-Robotics-Studio)**
- **[Instuctables](https://www.instructables.com/member/Sanjus%20Robotic%20Studio/)**
- **[Portfolio](https://www.sanjusroboticsstudio.me)**
- **[Blog](https://sanjusroboticsstudio.blogspot.com/)**
================================================
FILE: readme-profiles/saranshkotnala.md
================================================
Hi 👋, I'm Saransh
A Software Developer From India
- 🌱 I’m currently going with **Python, React and Django**
================================================
FILE: readme-profiles/sathiranipun.md
================================================
Hi dear! 👋
I'm Sathira Nipun
A Software Developer from Sri Lanka
- 🌱I’m following studying IT degree at the University of Moratuwa Sri Lanka.
- 🌱I’m currently studying **React, React Native, AdobeXD ,Figma and more**
- 🌱I love graphic design.
- 🌱I'm interested in the following.
#UI and UX developing
#Full Stack Developing
#Cyber Security
================================================
FILE: readme-profiles/setheal.md
================================================
### Hi 👋, I'm Maëlann 🤓
- 🌍 I'm from Brussels, Belgium
- 🔭 I’m a FullStack Developer working mainly with `React`, `Nodejs` and `Docker`
- 🧐 I’m currently learning `ElasticSearch`
---

================================================
FILE: readme-profiles/shankar524.md
================================================
Hi 👋, I'm Shankar
A Software Developer From Nepal 🇳🇵
🌱 I’m currently going with **AWS, Golang, JS, Java and Ruby**
================================================
FILE: readme-profiles/shinigami2905.md
================================================
### Hey there! 👋, Aayush here!
- ⏱️ I am a student, and I **LOVE** java ️.
- 🙌 I am a bit lazy, but enthusiastic while coding!
- Just got into App Development, still would be glad to help you out 😇


================================================
FILE: readme-profiles/shreyaraj13.md
================================================
Hi 👋, I'm Shreya Raj
🌱 I’m currently going with **html and css**
================================================
FILE: readme-profiles/shubhik7.md
================================================
Hola Peeps 👋, I'm Shubhi
A Final Year GL Bajaj Institute of Technology, India
- 🌱 ***I like python the most and currently work with the same***
- 🌱 ***I like to do coding.***
================================================
FILE: readme-profiles/sonylomo.md
================================================
Ssup Internet Stranger 😎
I'm a Software Developer from Nairobi, Kenya.
- I’m damn awesome at **HTML/CSS, JavaScript, ReactJS, TypeScript and GraphQL**
- I've also done **Firebase, NodeJS(Express), Python**
================================================
FILE: readme-profiles/sripaad.md
================================================
Hi I'm Sripaad Srinivasan
Software developer from India
🌱 I’m currently going with Machine Learning and Data Science in Python
## Open for collaborations.
## Contact 📞
[ ](mailto:sripaad751@gmail.com)
[ ](https://www.instagram.com/sripaadsrinivasan/)
[ ](https://www.twitter.com/Sripaad_)
[ ](https://www.linkedin.com/in/sripaad-srinivasan/)
================================================
FILE: readme-profiles/studpeps.md
================================================
# Hello!! I'm Stuti Prasad
---
This is my first time participating in Hacktoberfest and so far it's been great!
[](https://github.com/studpeps)
================================================
FILE: readme-profiles/subeshb1.md
================================================
Hi 👋, I'm Subesh
A Software Developer From Nepal
- 🌱 I’m currently going with **AWS, Golang, React and Ruby**
================================================
FILE: readme-profiles/suffisme.md
================================================
Hi 👋, I'm Mohd Sufiyan Ansari
A Second Year B Tech Undergraduate from National Institute of Technology Warangal, India
- 🌱 ***I'm currently doing competitive coding on Codechef and codeforces***
- 🌱 ***I like to do Web Development and I use Django as preferred backend framework.***
================================================
FILE: readme-profiles/swojeet.md
================================================
Hi 👋, I'm Swojeet
A Software Developer From Nepal 🇳🇵
- 🌱 I’m currently going with **Ruby on Rails, Go Lang, AWS and React**
================================================
FILE: readme-profiles/tae8838.md
================================================
Hey, I'm Tae
A Software Developer From Thailand
- 🌱 I’m currently work mostly with **Ruby on Rails and Vue.js**
================================================
FILE: readme-profiles/taylor009.md
================================================
Hello, I'm Taylor
Software Engineer
- I love to code and solving complicated problems.
- This is my second official pull request for open source on GitHub!
- Happy Hacktoberfest 2020 everyone!!!
================================================
FILE: readme-profiles/thpadelis.md
================================================
## Quick Sight
- :wave: Padelis Theodosiou
- :briefcase: Software Engineer
- :pushpin: Thessaloniki, Greece
## :octocat: About me
I'm passionate about learning the latest and greatest technologies whether that's the frontend or backend. I enjoy creating sleek and responsive applications in addition to being user-friendly. A versatile engineer with interests in Web Development. Adaptable and self-motivated learner. Interested in new programming technologies, and continuous self-improvement.
- :computer: I’m currently working at Athens Technology Center
- :mortar_board: Computer Science and Telecommunication at University of Thessaly
- :bulb: Fun fact: `obsessed with coffee`
### 📕 Checkout my Blog Posts on [Dev.to](https://dev.to/thpadelis)

================================================
FILE: readme-profiles/tooshar.md
================================================
Hi 👋, I'm Tushar
I am working as a Software Engineer in India
- Full Stack Developer, Cyber Security Consultant, Blogger, Sports person, Artist, Speaker, Spiritual, Enthusiast, and much more.**
================================================
FILE: readme-profiles/vatsalgp.md
================================================
# Hi, I'm Vatsal
I am a Software Engineering student from India. I'm currently into the MERN Stack.
================================================
FILE: readme-profiles/veranith.md
================================================
# Hello, I am RyRob
## **On GitHub I am**:
- I am learning as a member of the *Microsoft LEAP Internal Program*
- Learning C, C#, ASP.NET, Python, AI with Python.
- Contributing to the local charity Meals on Wheels
## **I enjoy**:
- Learning new things
- Computer Networking
- Charity Work
- Amateur Radio
- Disc Golf
## **Professional**:
Linkedin: https://www.linkedin.com/in/ryrob
# Microsoft
- Currently a member of the Microsoft LEAP Internal Program
- Create PowerShell modules and scripts for local team use.
# Meals on Wheels
- I designed, deployed and manage our cloud hosted infrastructure.
- I deployed our current cloud based applications and database servers.
- Currently learning more about programming so I can update our applications with new features.
[](https://github.com/ryo-ma/github-profile-trophy)
[](https://github.com/anuraghazra/github-readme-stats)
================================================
FILE: readme-profiles/viraldevpb.md
================================================
Hello 👋, I'm Prathamesh Borse
My skills include: UI/UX Designing and Frontend Development
- I have complete knowledge of **C, C++, Java, HTML, CSS and Javascript**
- I'am currently learning **Kotlin**.
- I also know some of the designing softwares like **Adobe Photoshop**
================================================
FILE: readme-profiles/vppillai.md
================================================
Hi 👋, I'm Vysakh P Pillai
A Software Developer From India
- 🌱 I’m currently going with **C & Python**
================================================
FILE: readme-profiles/vunderkind.md
================================================
Hello! My name is Justin.
Friends call me Vundie. or Mogwai.
I'm a fullstack web developer from Lagos, Nigeria.
What I'm currently interested in:
- JavaScript
- React
- NodeJS
- Augmented Reality (with Facebook's Spark AR)
- AWS
- Firebase
- Bayesian theorem
- Probability
- Creative coding
- 3D
- Interaction design
================================================
FILE: readme-profiles/wsameer.md
================================================
# Hello, I'm Sameer Waskar! ✨
- I'm a Full Stack Developer who specializes in building exceptional digital experiences.
- I have invested over a decade in learning and practicing software development to distil complex technical ideas into user-friendly interfaces.
- I am currently learning more about TypeScript, Kotlin, and AWS.
- This year I am participating in my first Hacktoberfest! It has been a great experience to learn more about contributing to Open Source projects.
================================================
FILE: readme-profiles/xdebbie.md
================================================
## xdebbie
---
[](https://github.com/xdebbie)
[](https://github.com/xdebbie?tab=repositories)
================================================
FILE: readme-profiles/xxx32.md
================================================
Hi 👋, I'm Aarushi
An engineering student from India
- 🌱 I’m currently going with **Android developement using java and front end developement with HTML, CSS and javascript**
================================================
FILE: specs/contributor.test.js
================================================
const fetch = require('node-fetch');
const contributors = require('../contributors.json')
describe('Check if required attributes is contributors are present and in correct order', () => {
it('tests if country and name is present in a contributor object', () => {
const result = Object.entries(contributors)
.map(([_, information]) => information)
.every(information => information.name && information.country)
if (!result) {
const missing = Object.entries(contributors)
.map(([_, information]) => information)
.find(information => !information.name || !information.country)
console.log("The following object is missing required information `name` or `country`:", missing)
}
expect(result).toBe(true)
});
it('tests if the contributor name are in ascending order or not', () => {
let sorted = true;
Object.entries(contributors)
.map(([contributorId, _]) => contributorId)
.reduce((previousId, currentId) => {
if (!sorted) {
return
}
if (previousId.toLowerCase() > currentId.toLowerCase()) {
console.log(`${currentId}'s information should come before ${previousId}. Please fix the order.`)
sorted = false;
}
return currentId
})
expect(sorted).toBe(true)
});
it('Check if github user id exists', () => {
expect.assertions(1);
const users = process.env.NEW_USER ? process.env.NEW_USER.split(",") : [];
return Promise.all(users
.map((user) => fetch(`https://api.github.com/users/${user}`).then(res => res.status)))
.then(responses => {
const result = responses.every(res => res === 200)
if (!result) {
console.log(`The newly added users don't Exist: [${users}]`)
}
expect(result).toBe(true)
})
});
})
================================================
FILE: src/components/DeveloperCard/index.jsx
================================================
import React from 'react'
import { GrLinkedin, GrTwitter, GrGithub } from 'react-icons/gr'
import { FaLink } from 'react-icons/fa'
import { Link } from 'gatsby'
export default function DeveloperCard({
repositoryCount,
contributionYears,
country,
firstContribution,
followersCount,
githubUserId,
issuesCount,
linkedin,
name,
avatarUrl,
countryCode,
pullRequestsCount,
repoContributedCount,
thisYearContribution,
twitter,
website,
position,
searchKey,
}) {
return (
{countryCode && (
)}
${searchKey}
`
)
: githubUserId,
}}
>
{twitter && (
)}
{linkedin && (
)}
{website && (
)}
{position && (
View Profile
)}
{name}
{position && # {position} }
Contribution(This Year)
{thisYearContribution}
No. of Repositories
{repositoryCount}
No. of Repos Contributed
{repoContributedCount}
Total Pull Requests
{pullRequestsCount}
Total Issues
{issuesCount}
Followers
{followersCount}
)
}
================================================
FILE: src/components/Image.js
================================================
import React from 'react'
import { graphql, useStaticQuery } from 'gatsby'
import Img from 'gatsby-image'
const prepareQuery = (path, width, height) => graphql`
query {
file(absolutePath: { regex: ${path} }) {
childImageSharp {
fixed(width: ${width}, height: ${height}) {
...GatsbyImageSharpFixed
}
}
}
}
`
export default ({ path, width, height, ...props }) => {
const data = useStaticQuery(prepareQuery())
return
}
================================================
FILE: src/components/Layouts/AppDisplayLayout.jsx
================================================
import React from 'react'
import { Link } from 'gatsby'
import { Head } from '../../app/components'
import { images } from '../../assets/images'
import '../../css/components/app-container.scss'
const AppDisplayLayout = React.memo(({ data, category, noHead = false }) => {
let homeData
if (category === 'all') {
const allCategory = new Set(
data.nodes.map(x => x.category).filter(x => x !== 'app')
)
return (
<>
x.category === 'app')} />
{[...allCategory].map(category => {
return (
x.category === category) }}
/>
)
})}
>
)
}
homeData = data.nodes.find(x => x.name === 'home')
return (
{homeData && (
<>
{!noHead &&
}
{homeData.title}
>
)}
{data.nodes.map((x, i) => {
return x.name !== 'home' ? (
) : null
})}
)
})
const AppDisplay = ({ data, homeTitle }) => {
return (
{data.title.replace(` | ${homeTitle}`, '')}
{data.description.slice(0, 100) + '...'}
Expand
)
}
export default AppDisplayLayout
================================================
FILE: src/components/Layouts/BlogLayout.jsx
================================================
import React from 'react'
import Layout from './Layout'
import { rhythm } from '../../utils/typography'
class BlogPostTemplate extends React.Component {
render() {
return (
)
}
}
export default BlogPostTemplate
================================================
FILE: src/components/Layouts/Layout.jsx
================================================
import React, { useState, useEffect } from 'react'
import '../../css/index.scss'
import NavBar from '../navbar/index'
import Footer from '../footer/index'
class ErrorBoundary extends React.PureComponent {
constructor() {
super()
this.state = { hasError: false }
}
static getDerivedStateFromError(error) {
// Update state so the next render will show the fallback UI.
return { hasError: true }
}
componentDidCatch(error, errorInfo) {
// You can also log the error to an error reporting service
}
render() {
if (this.state.hasError) {
// You can render any custom fallback UI
return Something went wrong. Please refresh the page!
}
return this.props.children
}
}
const Layout = props => {
const { children } = props
return (
)
}
export default Layout
================================================
FILE: src/components/Popover/index.jsx
================================================
import React, { useState, useRef, useEffect } from 'react'
import { useClickAway } from 'react-use'
import { usePopper } from 'react-popper'
import { If } from '../utils'
const OPEN = 0
const CLOSE = 1
const OUT_CLOSE = 2
const Popover = React.forwardRef(
(
{
debug,
show,
children,
text,
closeOnClick = false,
className = '',
placement = 'bottom',
elementAs = 'div',
render,
strategy = 'absolute',
offset = [0, 10],
...otherProps
},
forwardedRef
) => {
const referenceElement = useRef(null)
const [popperElement, setPopperElement] = useState(null)
const { styles, attributes } = usePopper(
referenceElement && referenceElement.current,
popperElement,
{
placement: placement,
strategy: strategy,
modifiers: [
{
name: 'offset',
options: {
offset: offset,
},
},
],
}
)
const [popoverState, setPopoverState] = useState(CLOSE)
const toggle = () =>
show == null &&
setPopoverState(
popoverState === OUT_CLOSE
? CLOSE
: popoverState === CLOSE
? OPEN
: CLOSE
)
useClickAway(
{ current: popperElement },
({ target }) =>
show == null &&
popoverState === OPEN &&
setPopoverState(
referenceElement &&
referenceElement.current &&
(referenceElement.current === target ||
referenceElement.current.contains(target))
? OUT_CLOSE
: CLOSE
)
)
const As = elementAs
useEffect(() => {
if (forwardedRef && referenceElement && referenceElement.current) {
forwardedRef.current = referenceElement.current
}
}, [referenceElement])
return (
<>
{render}
{children}
>
)
}
)
export default Popover
================================================
FILE: src/components/SideBar/index.js
================================================
import React, { useState, useEffect } from 'react'
import { Link } from 'gatsby'
const categorizeSeries = series =>
series.reduce((acc, x) => {
const key = Math.floor(x.position / 100)
if (!acc[key]) {
acc[key] = {
category: x.category,
items: [x],
}
} else {
acc[key].items.push(x)
}
return acc
}, [])
export default function SideBar({ seriesElements }) {
useEffect(() => {
document.querySelector('.blog-sidebar__item--active') &&
document.querySelector('.blog-sidebar__item--active').focus()
}, [])
if (!(seriesElements && seriesElements.length)) return null
const first = seriesElements[0]
const categorizedSeries = categorizeSeries(seriesElements.slice(1))
return (
{first.title}
{categorizedSeries.map((elements, i) => {
return (
{elements.category && (
{elements.category}
)}
{elements.items.map(element => (
{element.shortTitle || element.title}
))}
)
})}
)
}
================================================
FILE: src/components/Toc/index.js
================================================
import React, { useEffect } from 'react'
class ErrorBoundary extends React.PureComponent {
constructor() {
super()
this.state = { hasError: false }
}
static getDerivedStateFromError(error) {
// Update state so the next render will show the fallback UI.
return { hasError: true }
}
componentDidCatch(error, errorInfo) {
// You can also log the error to an error reporting service
}
render() {
if (this.state.hasError) {
// You can render any custom fallback UI
return null
}
return this.props.children
}
}
const Listener = () => {
useEffect(() => {
const motionQuery = window.matchMedia('(prefers-reduced-motion)')
const TableOfContents = {
container: document.querySelector('.table-of-contents'),
links: null,
headings: null,
intersectionOptions: {
rootMargin: '0px',
threshold: 1,
},
previousSection: null,
observer: null,
init() {
if (!this.container) return
this.findLinksAndHeadings()
if (!this.links.length) return
this.handleObserver = this.handleObserver.bind(this)
this.setUpObserver()
this.observeSections()
this.links.forEach(link => {
link.addEventListener('click', this.handleLinkClick.bind(this))
})
},
handleLinkClick(evt) {
evt.preventDefault()
let id = evt.target.getAttribute('href').replace('#', '')
let section = this.headings.find(heading => {
return heading.getAttribute('id') === id
})
section.setAttribute('tabindex', -1)
section.focus()
window.scroll({
behavior: 'instant',
top: section.offsetTop - 60,
block: 'start',
})
if (this.container.classList.contains('active')) {
this.container.classList.remove('active')
}
},
handleObserver(entries, observer) {
entries.forEach(entry => {
const id = entry.target.getAttribute('id')
let href = `#${id}`,
link = this.links.find(l => l.getAttribute('href') === href)
if (entry.isIntersecting && entry.intersectionRatio >= 1) {
link.classList.add('is-visible')
this.previousSection = id
} else {
link.classList.remove('is-visible')
}
this.highlightFirstActive()
})
},
highlightFirstActive() {
let firstVisibleLink = this.container.querySelector('.is-visible')
this.links.forEach(link => {
link.classList.remove('active')
})
if (firstVisibleLink) {
firstVisibleLink.classList.add('active')
}
if (!firstVisibleLink && this.previousSection) {
this.container
.querySelector(`a[href="#${this.previousSection}"]`)
.classList.add('active')
}
},
observeSections() {
this.headings.forEach(heading => {
this.observer.observe(heading)
})
},
setUpObserver() {
this.observer = new IntersectionObserver(
this.handleObserver,
this.intersectionOptions
)
},
findLinksAndHeadings() {
this.links = [...this.container.querySelectorAll('a')]
this.headings = this.links
.map(link => {
let id = link.getAttribute('href')
return document.querySelector(id)
})
.filter(x => x != null)
},
}
TableOfContents.init()
}, [])
return null
}
export default function Toc({ tableOfContents }) {
return (
)
}
================================================
FILE: src/components/ToolTip/index.jsx
================================================
import React, { useState, useRef, useEffect } from 'react'
import { usePopper } from 'react-popper'
const ToolTip = React.forwardRef(
(
{
children,
text,
closeOnClick = false,
className = '',
placement = 'bottom',
elementAs = 'div',
offset = 5,
strategy = 'absolute',
...otherProps
},
forwardedRef
) => {
const referenceElement = useRef(null)
const [popperElement, setPopperElement] = useState(null)
const [arrowElement, setArrowElement] = useState(null)
const { styles, attributes } = usePopper(
referenceElement && referenceElement.current,
popperElement,
{
strategy: strategy,
modifiers: [
{ name: 'arrow', options: { element: arrowElement } },
{
name: 'offset',
options: {
offset: [0, 5],
},
},
],
placement: placement,
}
)
useEffect(() => {
if (forwardedRef && referenceElement && referenceElement.current) {
forwardedRef.current = referenceElement.current
}
}, [referenceElement])
const [isOpen, setOpen] = useState(false)
const open = () => !isOpen && setOpen(true)
const close = () => setOpen(false)
const As = elementAs
return (
<>
closeOnClick && close()}
onMouseLeave={close}
{...otherProps}
>
{children}
{isOpen && (
)}
>
)
}
)
export default ToolTip
================================================
FILE: src/components/footer/index.js
================================================
import React, { Component } from 'react'
import { Link } from 'gatsby'
import { GrLinkedin, GrTwitter, GrGithub, GrRss, GrGraphQl, GrGatsbyjs } from 'react-icons/gr'
import { FaGithub, FaReact } from 'react-icons/fa';
export default class Footer extends Component {
render() {
return (
{new Date().getFullYear()} - Subesh Bhandari
)
}
}
================================================
FILE: src/components/index.js
================================================
export { default as NavBar } from './Navbar'
================================================
FILE: src/components/mdx/Header.js
================================================
import React from 'react'
export default function Header({ as = 'h1', children, ...props }) {
return React.createElement(
as,
{
id: children
.toLowerCase()
.split(/\s+/g)
.join('-'),
...props,
},
children
)
}
================================================
FILE: src/components/mdx/code.js
================================================
import React from 'react'
import Highlight, { defaultProps } from 'prism-react-renderer'
import { css } from '@emotion/core'
import theme from './theme/github'
const RE = /{([\d,-]+)}/
const wrapperStyles = css`
margin-bottom: 1.5em;
overflow: auto;
border-radius: 4px;
`
const preStyles = css`
float: left;
padding: 10px;
margin-bottom: 0em;
min-width: 100%;
overflow: initial;
`
function calculateLinesToHighlight(meta) {
if (RE.test(meta)) {
const lineNumbers = RE.exec(meta)[1]
.split(',')
.map(v => v.split('-').map(y => parseInt(y, 10)))
return index => {
const lineNumber = index + 1
const inRange = lineNumbers.some(([start, end]) =>
end ? lineNumber >= start && lineNumber <= end : lineNumber === start
)
return inRange
}
} else {
return () => false
}
}
export const Code = ({ codeString, language, metastring, ...props }) => {
const shouldHighlightLine = calculateLinesToHighlight(metastring)
return (
{({ className, style, tokens, getLineProps, getTokenProps }) => (
{tokens.map((line, i) => (
{i + 1}
{line.map((token, key) => (
))}
))}
)}
)
}
================================================
FILE: src/components/mdx/layout.js
================================================
import React from 'react'
import { MDXProvider } from '@mdx-js/tag'
import { Code } from './code'
import { preToCodeBlock } from 'mdx-utils'
import Layout from '../Layout'
// components is its own object outside of render so that the references to
// components are stable
const components = {
pre: preProps => {
const props = preToCodeBlock(preProps)
// if there's a codeString and some props, we passed the test
if (props) {
return
} else {
// it's possible to have a pre without a code in it
return
}
},
}
const MdxLayout = ({ children }) => (
Jsdasdas
{children}
)
export default MdxLayout
================================================
FILE: src/components/mdx/theme/github.css
================================================
/**
* Github-like theme for Prism.js
* @author Luke Askew http://github.com/lukeaskew
*/
code,
code[class*='language-'],
pre[class*='language-'] {
color: #333;
text-align: left;
white-space: pre;
word-spacing: normal;
tab-size: 4;
hyphens: none;
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
line-height: 1.4;
direction: ltr;
cursor: text;
}
pre[class*='language-'] {
overflow: auto;
margin: 1em 0;
padding: 1.2em;
border-radius: 3px;
font-size: 85%;
}
p code,
li code,
table code {
margin: 0;
border-radius: 3px;
padding: 0.2em 0;
font-size: 85%;
}
p code:before, p code:after,
li code:before,
li code:after,
table code:before,
table code:after {
letter-spacing: -0.2em;
content: '\00a0';
}
code,
:not(pre) > code[class*='language-'],
pre[class*='language-'] {
background: #f7f7f7;
}
:not(pre) > code[class*='language-'] {
padding: 0.1em;
border-radius: 0.3em;
}
.token.comment, .token.prolog, .token.doctype, .token.cdata {
color: #969896;
}
.token.punctuation, .token.string, .token.atrule, .token.attr-value {
color: #183691;
}
.token.property, .token.tag {
color: #63a35c;
}
.token.boolean, .token.number {
color: #0086b3;
}
.token.selector, .token.attr-name, .token.attr-value .punctuation:first-child, .token.keyword, .token.regex, .token.important {
color: #795da3;
}
.token.operator, .token.entity, .token.url, .language-css .token.string {
color: #a71d5d;
}
.token.entity {
cursor: help;
}
.namespace {
opacity: 0.7;
}
================================================
FILE: src/components/mdx/theme/github.js
================================================
// @flow
// Original: https://raw.githubusercontent.com/PrismJS/prism-themes/master/themes/prism-ghcolors.css
/*:: import type { PrismTheme } from '../src/types' */
var theme /*: PrismTheme */ = {
plain: {
color: '#393A34',
backgroundColor: '#f6f8fa',
},
styles: [
{
types: ['comment', 'prolog', 'doctype', 'cdata'],
style: {
color: '#999988',
fontStyle: 'italic',
},
},
{
types: ['namespace'],
style: {
opacity: 0.7,
},
},
{
types: ['string', 'attr-value'],
style: {
color: '#e3116c',
},
},
{
types: ['punctuation', 'operator'],
style: {
color: '#393A34',
},
},
{
types: [
'entity',
'url',
'symbol',
'number',
'boolean',
'variable',
'constant',
'property',
'regex',
'inserted',
],
style: {
color: '#36acaa',
},
},
{
types: ['atrule', 'keyword', 'attr-name', 'selector'],
style: {
color: '#00a4db',
},
},
{
types: ['function', 'deleted', 'tag'],
style: {
color: '#d73a49',
},
},
{
types: ['function-variable'],
style: {
color: '#6f42c1',
},
},
{
types: ['tag', 'selector', 'keyword'],
style: {
color: '#00009f',
},
},
],
}
module.exports = theme
================================================
FILE: src/components/navbar/ThemePicker.jsx
================================================
import React, { useState, useEffect } from 'react'
import Popover from '../Popover'
import Tooltip from '../ToolTip'
import { GiPaintBucket } from 'react-icons/gi'
import { ChromePicker } from 'react-color'
import { useLocalStorage } from 'react-use'
import { If } from '../utils'
const codeTheme = {
// Any CSS selector will work!
'code-dark-plus': 'Dark+ (default dark)',
'code-light-plus': 'Light+ (default light)',
'code-tomorrow-night-blue': 'Tomorrow Night Blue',
'code-red': 'Red',
'code-abyss': 'Abyss',
'code-dark-visual-studio': 'Dark (Visual Studio)',
'code-light-visual-studio': 'Light (Visual Studio)',
'code-high-contrast': 'High Contrast',
'code-kimbie-dark': 'Kimbie Dark',
'code-monokai-dimmed': 'Monokai Dimmed',
'code-monokai': 'Monokai',
'code-quiet-light': 'Quiet Light',
'code-solarized-dark': 'Solarized Dark',
'code-solarized-light': 'Solarized Light',
'code-synth-wave-84': `SynthWave '84`,
}
const excludeVariables = ['--theme-picker-box-shadow']
const themes = [
{
name: 'Light',
value: 'theme-light code-light-plus',
color: '#ffffff',
},
{
name: 'Dark',
value: 'theme-dark code-dark-plus',
color: '#2a2c35',
},
]
const variableMap = {
'--theme-primary-bg': 'Primary BG',
'--theme-primary-color': 'Primary Color',
'--theme-secondary-color': 'Secondary Color',
'--theme-secondary-bg': 'Secondary BG',
'--theme-primary-hover': 'Primary Hover',
}
const primaryColors = [
{
name: 'White',
variables: {
'--theme-primary-bg': '#ffffff',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#000000',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#e0e0e096',
'--theme-picker-box-shadow':
'rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.31) 0px 0px 1px',
},
},
{
name: 'Black',
variables: {
'--theme-primary-bg': '#2a2c35',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#424653',
'--theme-picker-box-shadow':
'rgb(0, 0, 0) 0px 4px 8px -2px,rgba(0, 0, 0, 0.31) 0px 0px 1px',
},
},
{
name: 'Blue',
variables: {
'--theme-primary-bg': '#1d5baf',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#000000',
'--theme-primary-hover': '#3068b7',
'--theme-picker-box-shadow':
'rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.31) 0px 0px 1px',
},
},
{
name: 'Red',
variables: {
'--theme-primary-bg': '#af1d4c',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#e4316a96',
'--theme-picker-box-shadow':
'rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.31) 0px 0px 1px',
},
},
{
name: 'DarkBlue',
variables: {
'--theme-primary-bg': '#083575',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#0b479c',
'--theme-picker-box-shadow':
'rgb(0, 0, 0) 0px 4px 8px -2px,rgba(0, 0, 0, 0.31) 0px 0px 1px',
},
},
{
name: 'DarkRed',
variables: {
'--theme-primary-bg': '#7a1522',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#a01a2c',
'--theme-picker-box-shadow':
'rgb(0, 0, 0) 0px 4px 8px -2px,rgba(0, 0, 0, 0.31) 0px 0px 1px',
},
},
]
const ThemeButton = ({ name, onClick, background }) => (
{name}
)
function ThemeChanger({
setPrimaryColor,
primaryColor,
setThemeMode,
themeMode,
mobile = false,
}) {
const [show, setShow] = useState(false)
return (
Primary Colors
{primaryColors.map((x, i) => {
return (
setPrimaryColor(x.variables)}
background={x.variables['--theme-primary-bg']}
name={x.name}
/>
)
})}
Theme
{themes.map((x, i) => {
return (
setThemeMode(x.value)}
background={x.color}
name={x.name}
/>
)
})}
Code Snippet Theme
setThemeMode(`${themeMode.split(' ')[0]} ${target.value}`)
}
>
{Object.entries(codeTheme).map(([key, value], i) => (
{value}
))}
setShow(!show)}>
{!show ? 'Show more' : 'Hide'}
{show &&
Object.entries(primaryColor).map(([key, value], i) => {
return (
!excludeVariables.includes(key) && (
{variableMap[key]}
{
setPrimaryColor({
...primaryColor,
[key]: color.hex,
})
}}
/>
)
)
})}
)
}
export default function ThemePicker({ offset = [0, 10], mobile }) {
const [primaryColor, setPrimaryColor, remove] = useLocalStorage(
'color-theme',
{
'--theme-primary-bg': '#2a2c35',
'--theme-primary-color': '#000000',
'--theme-secondary-color': '#ffffff',
'--theme-secondary-bg': '#f4f4f4',
'--theme-primary-hover': '#424653',
'--theme-picker-box-shadow':
'rgb(0, 0, 0) 0px 4px 8px -2px,rgba(0, 0, 0, 0.31) 0px 0px 1px',
}
)
const [themeMode, setThemeMode, removeTheme] = useLocalStorage(
'theme',
'theme-light code-light-plus'
)
useEffect(() => {
Object.entries(primaryColor).map(([key, value]) => {
document.documentElement.style.setProperty(key, value)
})
}, [primaryColor])
useEffect(() => {
document.body.className = themeMode
}, [themeMode])
return (
(
))}
>
)
}
================================================
FILE: src/components/navbar/common.jsx
================================================
import React from 'react'
import { FaChevronDown, FaCubes } from 'react-icons/fa'
import { MdApps } from 'react-icons/md'
export const NavDropDownLink = React.forwardRef(
({ onChevronClick = () => {}, to, linkName, className, ...props }, ref) => {
return (
{linkName}
)
}
)
export const navDropDownFactory = (to, linkName) =>
React.forwardRef((props, ref) => {
return
})
export const MobileNavDropDownLink = React.forwardRef(
(
{
onChevronClick = () => {},
to,
linkName,
className,
iconsAs: IconAs = MdApps,
...props
},
ref
) => {
return (
{linkName}
)
}
)
export const mobileNavDropDownFactory = (to, linkName, iconsAs) =>
React.forwardRef((props, ref) => {
return (
)
})
================================================
FILE: src/components/navbar/index.jsx
================================================
import React from 'react'
import { Link, useStaticQuery, graphql } from 'gatsby'
import Image from 'gatsby-image'
import Popover from '../Popover'
import { GrLinkedin, GrTwitter, GrGithub } from 'react-icons/gr'
import { navDropDownFactory } from './common'
import ThemePicker from './ThemePicker'
const NavBar = React.memo(props => {
const {
navLogo,
snakeGrid,
toc,
searching,
sorting,
api,
imageToAscii,
nepaliDate,
snakeGame,
} = useStaticQuery(
graphql`
query images {
navLogo: file(absolutePath: { regex: "/logo.png/" }) {
childImageSharp {
fixed(width: 50, height: 50) {
...GatsbyImageSharpFixed
}
}
}
}
`
)
return (
<>
Developer Community Stats
>
)
})
function DropDownDisplayItem({ image, title, info, as = 'div', ...props }) {
const As = as
return (
)
}
export default NavBar
================================================
FILE: src/components/seo.js
================================================
import React from 'react'
import PropTypes from 'prop-types'
import Helmet from 'react-helmet'
import { StaticQuery, graphql } from 'gatsby'
const root = 'https://www.subeshbhandari.com'
function SEO({ description, lang, meta, keywords, title, url }) {
return (
{
const metaDescription =
description || data.site.siteMetadata.description
return (
0
? {
name: `keywords`,
content: keywords.join(`, `),
}
: []
)
.concat(meta)}
>
)
}}
/>
)
}
SEO.defaultProps = {
lang: `en`,
meta: [],
keywords: [],
}
SEO.propTypes = {
description: PropTypes.string,
lang: PropTypes.string,
meta: PropTypes.array,
keywords: PropTypes.arrayOf(PropTypes.string),
title: PropTypes.string.isRequired,
}
export default SEO
const detailsQuery = graphql`
query DefaultSEOQuery {
site {
siteMetadata {
title
description
author
}
}
}
`
================================================
FILE: src/components/utils/index.js
================================================
import React from 'react'
export const If = ({ condition, children, fallback = null }) => {
return condition ? children : fallback
}
================================================
FILE: src/css/404.scss
================================================
.not-found {
display: flex;
// flex-wrap: wrap;
font-family: 'Open Sans', 'sans-serif';
position: relative;
min-height: 90vh;
justify-content: flex-end;
align-items: flex-start;
img {
max-height: 90vh;
left: 0;
position: absolute;
}
.not-found__message {
z-index: 1;
h1 {
font-size: 2rem;
font-family: 'Open Sans', 'sans-serif';
margin: 10px 0;
}
background: var(--theme-background);
margin: 0 10px;
padding: 10px;
border-radius: 10px;
max-width: 400px;
margin-top: 20vh;
margin-right: 5vw;
.not-found__button {
display: block;
margin-top: 10px;
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
border: 2px solid var(--theme-secondary-color);
border-radius: 4px;
padding: 8px 1rem;
width: fit-content;
}
}
}
@media (max-width: 700px) {
.not-found {
.not-found__message {
max-width: 100%;
margin-top:0
}
justify-content: flex-start;
img {
top: 40%;
}
}
}
================================================
FILE: src/css/_markdown.scss
================================================
.project-main-container {
background: var(--theme-background);
color: var(--theme-color);
}
.blog-post-content {
background: var(--theme-background);
color: var(--theme-color);
overflow: auto;
width: 100%;
.anchor > svg {
opacity: 0;
}
h1 {
text-transform: capitalize;
}
p > img {
margin: 1rem 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
position: relative;
letter-spacing: 0.01em;
}
h1:hover,
h2:hover,
h3:hover,
h4:hover,
h5:hover,
h6:hover {
.anchor > svg {
opacity: 1;
}
}
strong {
font-family: Lora;
}
p,
li {
letter-spacing: 0.01em;
word-spacing: 0.05em;
line-height: 1.7;
}
blockquote {
border-left: 4px solid black;
margin-left: -1.125rem;
padding: 1rem;
position: relative;
font-style: italic;
font-size: 1.1rem;
margin-right: -1.125em;
padding-right: 0;
margin-right: -1rem;
p {
font-size: 0.8em;
}
}
blockquote blockquote {
margin-left: 1rem;
}
figcaption {
text-align: center;
color: #757575;
font-family: sans-serif;
font-size: 0.8rem;
margin-top: 0.8rem;
}
strong {
font-size: 1.02rem;
}
img.badge {
margin: 0;
}
@media (max-width: 900px) {
.anchor {
float: initial;
padding-right: 0;
margin-left: 0;
}
}
ul ul {
list-style-type: disc;
}
.estimated-reading-time {
opacity: 0.7;
}
.blog-date {
margin-right: 10px;
}
.next-blog-container {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
background: var(--theme-background);
}
.next-blog-container__item {
font-family: 'Open Sans';
padding: 10px;
font-size: 0.9rem;
a {
color: var(--theme-color);
}
font-weight: bold;
svg {
margin-left: -25px;
margin-right: 10px;
}
&:hover {
opacity: 0.7;
}
}
.next-blog-container__item--right {
svg {
margin-right: -25px;
margin-left: 10px;
}
text-align: right;
}
.next-blog-header {
font-size: 0.9em;
margin: 4px;
color: var(--theme-dim-color);
display: block;
}
}
.theme-light {
a {
text-decoration: none;
color: #2b69bb;
}
}
.theme-dark,
.theme-dark-blue,
.theme-dark-red {
a {
color: white;
text-decoration: none;
}
p,
li {
color: white;
font-family: 'Lato';
}
.anchor svg path {
fill: white;
}
blockquote {
border-left: 4px solid white;
}
.blog-post-content figcaption {
color: #cecece;
}
}
@media (max-width: 700px) {
.blog-post-content {
figure {
margin: 1rem -0.8rem;
}
}
}
================================================
FILE: src/css/components/_code-snippet.scss
================================================
code,
pre {
font-family: source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace;
}
.code-light-plus,
.code-light-visual,
.code-quiet-light,
.code-light-visual-studio,
.code-solarized-light {
pre.grvsc-container {
background: #f9f9f9;
&::before {
background: black;
color: white;
}
button {
color: black;
}
}
.grvsc-container .grvsc-line-highlighted {
background-color: #59cdf92e;
box-shadow: inset 4px 0 0 0 #146b9e;
}
}
pre.grvsc-container {
border-radius: 0.3em;
margin: 0.5em 0;
border-radius: 0.3em;
position: relative;
overflow: auto;
padding: 1em;
background: #f8f8f8;
padding: 0;
padding-top: 2rem;
padding-bottom: 0.8rem;
margin-bottom: 2rem;
&::before {
color: #232129;
font-size: 0.75rem;
font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
'Courier New', monospace;
letter-spacing: 0.075em;
line-height: 1;
position: absolute;
left: 1.5rem;
text-align: right;
top: 0px;
border-radius: 0px 0px 4px 4px;
padding: 0.25rem 0.5rem;
content: attr(data-language);
position: absolute;
background: white;
color: black;
}
&:hover {
button {
opacity: 1;
}
}
button {
opacity: 0;
position: absolute;
font-family: 'Open Sans';
top: 4px;
right: 4px;
background: transparent;
color: white;
border: none;
cursor: pointer;
&::before {
content: 'Copy';
}
&:focus::before {
content: 'Copied!';
}
}
.grvsc-code {
max-height: 80vh;
overflow: auto;
width: 100%;
.grvsc-line {
min-width: 100%;
}
}
}
@media (max-width: 900px) {
.grvsc-container {
margin-left: -1.125em;
margin-right: -1.125em;
box-shadow: unset;
}
}
:not(pre) > code {
padding: 1px 0.5em;
font-family: Input, 'SF Mono', Menlo, Monaco, Courier, monospace;
font-size: 13px;
font-weight: 400;
-webkit-font-smoothing: subpixel-antialiased;
min-width: 1.2em;
line-height: 1.8em;
display: inline-block;
background-color: rgb(17, 17, 17);
color: white;
background: var(--theme-background);
color: var(--theme-color);
border-width: 1px;
border-style: solid;
border-color: rgba(255, 255, 255, 0.1);
border-color: var(--theme-hover);
border-image: initial;
border-radius: 4px;
padding: 2px 8px 0px;
margin: -5px 2px;
}
.grvsc-container .grvsc-line-highlighted {
background-color: rgb(19, 43, 64);
box-shadow: inset 4px 0 0 0 rgba(245, 243, 255, 0.5);
}
@media (max-width: 700px) {
pre.grvsc-container {
margin-right: -0.8rem;
margin-left: -0.8rem;
}
}
================================================
FILE: src/css/components/_developer-card.scss
================================================
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab&display=swap');
.readme-profile {
display: flex;
justify-content: space-around;
flex-wrap: wrap-reverse;
align-items: flex-end;
.readme-mid-container {
flex: 6;
flex-grow: 6;
max-width: 900px;
width: 100%;
margin: 0 auto;
margin-top: 10px;
border-radius: 8px;
padding: 0px 56px;
min-width: 300px;
img {
margin-right: 10px;
}
}
.blog-main-container {
flex: 10;
}
.developer-card {
flex-direction: column;
min-width: 300px;
.developer-card-user-stats {
padding-bottom: 10px;
}
flex: 1;
}
}
a.developer-card-link,
#colorless-link {
color: unset;
cursor: pointer;
svg {
color: var(--theme-secondary-color);
}
}
.developer-card-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.developer-card {
display: flex;
font-family: 'Open Sans', sans-serif;
flex-wrap: wrap;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 0 8px 1px var(--theme-navbar-box-shadow);
min-width: 450px;
.developer-card-user-info {
padding: 10px;
position: relative;
flex: 1;
flex-direction: column;
display: flex;
justify-content: center;
align-items: center;
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
span {
position: absolute;
top: 12px;
right: 10px;
}
.developer-card-username {
background: var(--theme-primary-hover);
padding: 4px 0.8em;
font-size: 0.8rem;
line-height: 1;
border-radius: 20px;
margin-bottom: 10px;
display: flex;
white-space: pre;
align-items: center;
.highlight {
background-color: yellow;
color: black;
}
}
.developer-card-avatar {
width: 150px;
margin-bottom: 10px;
height: 150px;
border-radius: 100%;
overflow: hidden;
background: var(--theme-primary-bg);
}
.developer-card-links {
display: flex;
a {
color: inherit;
margin: 0 10px;
}
}
}
margin: 10px;
.developer-card-user-stats {
flex: 2;
position: relative;
.developer-card-name {
font-family: 'Bebas Neue', cursive;
padding: 10px 20px;
font-size: 1.2rem;
// font-weight: bold;
display: flex;
justify-content: space-between;
}
&:hover,
&:active {
.developer-card-hover {
opacity: 0.8;
}
}
.developer-card-hover {
display: flex;
position: absolute;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
z-index: 10;
background: var(--theme-primary-bg);
opacity: 0;
transition: opacity 0.5s ease;
.developer-card-link {
color: var(--theme-secondary-color);
display: flex;
padding: 4px 1em;
border: 2px solid var(--theme-secondary-color);
border-radius: 4px;
}
}
.developer-card-detail {
padding: 1px 20px;
font-size: 0.8rem;
display: flex;
justify-content: space-between;
.developer-card-title {
opacity: 0.7;
}
.developer-card-value {
font-weight: bolder;
}
}
}
}
@media (max-width: 480px) {
.developer-card-container {
flex-direction: column;
.developer-card {
flex-direction: column;
min-width: unset;
.developer-card-user-stats {
padding-bottom: 10px;
}
}
}
}
@media (max-width: 700px) {
.readme-profile {
.readme-mid-container {
padding: 0px 1.125rem;
}
}
}
================================================
FILE: src/css/components/_footer.scss
================================================
/* FOOTER */
.footer {
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
position: relative;
padding: 80px 0 40px;
font-family: 'Open Sans', sans-serif;
text-transform: capitalize;
border-top: 1px solid var(--theme-primary-hover);
margin-top: 50px;
}
.footer .links {
display: flex;
flex-wrap: wrap;
padding: 20px;
justify-content: space-around;
text-transform: capitalize;
}
.footer .group {
margin: 20px;
display: flex;
flex-direction: column;
font-size: 1em;
font-weight: bolder;
a {
color: var(--theme-secondary-color);
svg {
margin-right: 10px;
path {
stroke: var(--theme-secondary-color);
}
}
}
}
.footer .group .item {
&:active,
&:hover {
background: #3068b7;
background: var(--theme-primary-hover);
}
text-decoration: none;
padding: 4px 1rem;
margin-left: -1rem;
border-radius: 4px;
font-weight: normal;
font-size: 0.8em;
color: var(--theme-secondary-color);
}
.footer .copyright {
position: absolute;
bottom: 20px;
left: 20px;
display: flex;
}
.footer .copyright::before {
content: '\00A9';
margin-right: 10px;
}
.copyright {
font-size: 0.8rem;
}
.footer::after {
content: '';
margin: 20px;
}
.footer .madeWith {
position: absolute;
bottom: 20px;
right: 20px;
display: flex;
}
.madeWith {
font-size: 1rem;
}
.madeWith .item {
margin-left: 10px;
margin-right: 10px;
color: var(--theme-secondary-color);
font-size: 1.2rem;
}
@media (max-width: 700px) {
.footer {
padding: 0 20px;
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.footer .links {
flex-direction: column;
justify-content: center;
align-items: center;
order: 1;
}
.footer .copyright {
position: relative;
order: 3;
justify-content: center;
left: 0;
}
.footer .madeWith {
position: relative;
right: 0px;
order: 2;
justify-content: center;
}
}
================================================
FILE: src/css/components/_navbar.scss
================================================
.st-navbar,
.lg-navbar {
font-family: 'Open Sans', sans-serif;
display: flex;
background: #1d5baf;
padding: 10px 20px;
transition: 0.3s background;
align-items: center;
box-shadow: 1px 3px 5px 0px #484848ab;
position: fixed;
z-index: 900;
width: 100vw;
background: var(--theme-primary-bg);
box-shadow: 1px 3px 5px 0px var(--theme-navbar-box-shadow);
> svg {
font-size: 2rem;
color: var(--theme-secondary-color);
}
button.lg-navbar__item {
padding: 0;
transform: translateY(3px);
}
.lg-navbar__item {
font-size: 14px;
user-select: none;
padding: 2px 0.5em;
border: none;
white-space: nowrap;
background: none;
outline: none;
margin: 0 8px;
border-radius: 4px;
display: inline-flex;
align-items: center;
color: white;
color: var(--theme-secondary-color);
cursor: pointer;
&:hover,
&:focus {
background: #3068b7;
background: var(--theme-primary-hover);
}
.lg-navbar__svg {
margin-left: 0.5em;
}
a {
color: white;
color: var(--theme-secondary-color);
}
}
.lg-navbar__header {
font-size: 18px;
}
.lg-navbar-img {
.picture {
width: 35px;
}
width: 35px;
max-height: 35px;
max-width: 35px;
height: auto;
margin: 0;
}
.lg-navbar__drop-down {
display: flex;
flex-direction: column;
background-color: var(--theme-primary-bg);
color: var(--theme-secondary-color);
padding: 10px;
max-width: 800px;
border-radius: 4px;
box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px,
rgba(9, 30, 66, 0.31) 0px 0px 1px;
box-shadow: var(--theme-picker-box-shadow);
}
.link-item {
text-align: right;
align-self: flex-end;
font-size: 0.8em;
color: inherit;
}
.lg-navbar__drop-down__item {
display: flex;
cursor: pointer;
padding: 10px 1.2rem;
border-radius: 4px;
&:hover {
background: #3068b7;
background: var(--theme-primary-hover);
}
}
.lg-navbar__drop-down__display-item {
display: flex;
.lg-navbar__drop-down__image {
display: flex;
justify-content: center;
align-items: center;
margin-right: 10px;
}
.lg-navbar__drop-down__text {
display: flex;
flex-direction: column;
font-size: 0.8rem;
color: var(--theme-secondary-color);
.lg-navbar__drop-down__dim {
font-size: 0.7rem;
font-weight: normal;
opacity: 0.8;
}
}
}
.lg-navbar__item--right {
margin: 0 0 0 auto;
}
.lg-navbar__item--circular {
border-radius: 100%;
width: 2rem;
height: 2rem;
svg {
font-size: 1.5em;
}
}
}
.nav-breaker {
height: 56px;
}
.st-navbar {
bottom: 0;
padding: 0;
box-shadow: 1px -3px 5px 0px var(--theme-navbar-box-shadow);
display: none;
justify-content: stretch;
align-items: stretch;
.lg-navbar__drop-down {
box-shadow: unset;
width: 100vw;
max-width: 500px;
box-shadow: 1px -3px 5px 0px var(--theme-navbar-box-shadow);
.lg-navbar__drop-down__item {
width: 100%;
}
}
.lg-navbar__item {
width: 25%;
}
.lg-navbar__item--circular {
&::before {
content: 'Theme';
}
}
.lg-navbar__item,
.lg-navbar__item--circular {
height: unset;
margin: 0;
display: flex;
border-radius: 0;
flex-direction: column-reverse;
font-size: 0.6em;
opacity: 1;
svg,
.lg-navbar__svg {
margin: 0;
font-size: 1.2rem;
margin-bottom: -3px;
}
}
.theme-picker {
box-shadow: 1px -3px 5px 0px var(--theme-navbar-box-shadow);
}
}
@media (min-width: 310px) and (max-width: 352px) {
.lg-navbar {
padding: 10px 10px;
margin: 0;
}
a.lg-navbar__item {
padding: 0 !important;
}
}
@media (min-width: 700px) {
.lg-navbar {
button.lg-navbar__item {
padding: 2px 0.5em;
}
}
}
@media (max-width: 700px) {
.st-navbar {
display: flex;
min-height: 56px;
}
.st-nav-breaker {
display: none;
}
}
@media (max-width: 700px) {
.lg-navbar {
.lg-navbar__item {
display: block;
}
.lg-navbar__header {
display: block;
}
position: fixed;
}
}
================================================
FILE: src/css/components/_sidebar.scss
================================================
.blog-sidebar {
min-height: 80vh;
top: 56px;
border-right: 1px solid var(--theme-navbar-box-shadow);
display: flex;
max-height: 90vh;
overflow: auto;
position: sticky;
font-family: 'Open Sans', sans-serif;
flex-direction: column;
padding: 20px 0;
.blog-sidebar__header {
margin-top: 20px;
font-size: 0.9rem;
padding: 4px 15px;
text-transform: capitalize;
user-select: none;
color: var(--theme-dim-color);
}
.blog-sidebar__item {
color: var(--theme-color);
margin-top: 10px;
font-size: 0.8rem;
padding: 4px 20px;
border-radius: 4px 0px 0 4px;
&:hover {
background: var(--theme-hover);
}
}
.blog-sidebar__series-title {
font-size: 1.1rem;
font-weight: bold;
margin-bottom: 10px;
}
.blog-sidebar__item--active {
color: var(--theme-color);
background: var(--theme-hover);
box-shadow: inset -4px 0 var(--theme-primary-hover);
}
}
@media (max-width: 700px) {
.blog-sidebar {
display: none;
}
}
================================================
FILE: src/css/components/_table-of-contents.scss
================================================
.table-of-contents {
font-family: 'Open Sans', sans-serif;
background: var(--theme-background);
color: var(--theme-color);
z-index: 800;
position: sticky;
right: 40px;
max-width: 300px;
padding: 20px 20px 20px 0;
top: 56px;
margin-top: 40px;
h2 {
font-family: 'Lato', sans-serif;
font-size: 16px;
margin: 0;
margin-left: 30px;
margin-bottom: 15px;
word-spacing: 4px;
}
ul {
font-size: 0.8rem;
margin-top: 0;
max-height: 80vh;
overflow: scroll;
margin-bottom: 0;
li {
margin: 0;
display: block;
p {
margin-bottom: 0;
}
}
a {
padding: 4px 0.8rem;
display: block;
color: black;
color: var(--theme-dim-color);
}
a.active {
box-shadow: inset 4px 0 var(--theme-primary-hover);
color: var(--theme-color);
background: white;
background: var(--theme-hover);
border-radius: 4px;
}
}
}
================================================
FILE: src/css/components/_theme-picker.scss
================================================
.theme-picker {
font-size: 14px;
width: 100vw;
background: var(--theme-primary-bg);
max-width: 500px;
max-height: 90vh;
overflow: scroll;
display: flex;
padding: 10px;
border-radius: 4px;
box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px,
rgba(9, 30, 66, 0.31) 0px 0px 1px;
transition: 0.3s background;
flex-direction: column;
box-shadow: var(--theme-picker-box-shadow);
.theme-picker__theme {
flex-direction: column;
display: flex;
.theme-picker__input-group {
flex-direction: column;
display: flex;
select {
padding: 4px;
margin-bottom: 12px;
}
}
.theme-picker__header {
font-weight: bold;
color: white;
color: var(--theme-secondary-color);
}
.theme-picker__content {
color: white;
color: var(--theme-secondary-color);
display: flex;
overflow: auto;
}
.theme-picker__object {
width: 50px;
height: 50px;
border-radius: 100%;
border: 5px solid #d6d6d6;
&:hover {
opacity: 0.8;
}
}
.theme-picker__item {
background: transparent;
border: none;
margin: 10px;
outline: none;
display: flex;
flex-direction: column;
color: white;
color: var(--theme-secondary-color);
align-items: center;
cursor: pointer;
&:focus {
background: #3068b7;
background: var(--theme-primary-hover);
}
}
}
}
================================================
FILE: src/css/components/_tooltip.scss
================================================
.popper-tool-tip .popper-tool-tip__arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
}
.popper-tool-tip[data-popper-placement^='top'] .popper-tool-tip__arrow {
border-width: 5px 5px 0 5px;
border-color: var(--popper-arrow-color) transparent transparent transparent;
bottom: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
.popper-tool-tip[data-popper-placement^='bottom'] .popper-tool-tip__arrow {
border-width: 0 5px 5px 5px;
border-color: transparent transparent var(--popper-arrow-color) transparent;
top: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
.popper-tool-tip[data-popper-placement^='right'] .popper-tool-tip__arrow {
border-width: 5px 5px 5px 0;
border-color: transparent var(--popper-arrow-color) transparent transparent;
left: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
.popper-tool-tip[data-popper-placement^='left'] .popper-tool-tip__arrow {
border-width: 5px 0 5px 5px;
border-color: transparent transparent transparent var(--popper-arrow-color);
right: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
.popper-tool-tip[data-x-out-of-boundaries] {
display: none;
}
================================================
FILE: src/css/components/app-container.scss
================================================
.app-container {
flex-direction: column;
display: flex;
// min-height: 80vh;
background: var(--theme-background);
padding: 0 10px;
max-width: 1200px;
margin: 0 auto;
font-family: 'Open Sans', sans-serif;
.app-container__list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
.app-container__item {
box-shadow: 0 0 8px 1px var(--theme-navbar-box-shadow);
padding: 10px;
overflow: hidden;
cursor: pointer;
border-radius: 4px;
border-top: 10px solid var(--theme-primary-bg);
&:hover {
background: var(--theme-hover);
}
display: flex;
color: var(--theme-color);
flex-direction: row;
margin: 20px 0;
max-width: 500px;
max-height: 300px;
width: 100%;
.app-container__image {
max-width: 200px;
min-width: 200px;
max-height: 200px;
margin-right: 10px;
padding: 4px;
border-radius: 4px;
width: 100%;
display: flex;
img {
width: 100%;
object-fit: cover;
margin: 0;
}
}
.app-container__content {
.app-container__title {
margin-top: 0;
font-family: 'Open Sans', sans-serif;
font-size: 1.2rem;
text-overflow: ellipsis;
}
.app-container__description {
font-size: 0.8rem;
display: flex;
flex-direction: column;
button {
align-self: flex-end;
margin-top: 10px;
}
}
}
}
}
}
@media (max-width: 700px) {
.app-container {
.app-container__list {
.app-container__item {
flex-wrap: wrap;
justify-content: center;
max-height: 500px;
}
}
}
}
@media (max-width: 1024px) {
.app-container {
.app-container__list {
justify-content: center;
}
}
}
================================================
FILE: src/css/index.scss
================================================
@import 'markdown';
@import 'components/navbar';
@import 'components/tooltip';
@import 'components/theme-picker';
@import 'components/code-snippet';
@import 'components/developer-card';
@import 'components/table-of-contents';
@import 'layout/blog_layout';
@import 'components/sidebar';
@import 'components/footer';
@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@300&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lato&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
$background: white;
$color: black;
// #0e151c
// #152128
@mixin theme($background, $color) {
}
* {
box-sizing: border-box;
}
.tl-edges {
max-width: 100%;
overflow-x: unset;
}
:root {
--theme-primary-bg: #2a2c35;
--theme-primary-color: #000000;
--theme-secondary-color: #ffffff;
--theme-secondary-bg: #f4f4f4;
--theme-primary-hover: #424653;
--theme-picker-box-shadow: rgb(0, 0, 0) 0px 4px 8px -2px,
rgba(0, 0, 0, 0.31) 0px 0px 1px;
--theme-navbar-box-shadow: #484848ab;
--theme-navbar-box-shadow: #c9c9c9ab;
--theme-background: white;
--theme-color: black;
--theme-hover: #e0e0e096;
--theme-dim-color: #6f6f6f;
--popper-arrow-color: black;
}
@mixin theme($background, $color) {
background: $background;
color: $color;
}
.theme-dark {
--theme-navbar-box-shadow: #131313ab;
$color: white;
$background: #292c35;
--theme-background: #{$background};
--theme-color: #{$color};
--theme-hover: #424653;
--theme-dim-color: #dadada;
background: var(--theme-background);
color: var(--theme-color);
}
.theme-dark-blue {
$color: white;
$background: #083575;
--theme-dim-color: #dadada;
--theme-background: #{$background};
--theme-color: #{$color};
--theme-hover: #0b479c;
--theme-navbar-box-shadow: #071d3e;
background: var(--theme-background);
color: var(--theme-color);
}
.theme-dark-red {
$color: white;
$background: #7a1522;
--theme-background: #{$background};
--theme-color: #{$color};
--theme-dim-color: #dadada;
--theme-hover: #a01a2c;
--theme-navbar-box-shadow: #56111a;
background: var(--theme-background);
color: var(--theme-color);
}
.theme-solarized {
background: var(--theme-background);
color: var(--theme-color);
}
.theme-light {
--theme-navbar-box-shadow: #c9c9c9ab;
--theme-background: #{$background};
--theme-color: #{$color};
--theme-hover: #e0e0e096;
--theme-dim-color: #6f6f6f;
background: var(--theme-background);
color: var(--theme-color);
:not(pre) > code {
background: #eaeaea;
}
.popper-tool-tip {
background: black;
color: white;
--popper-arrow-color: black;
}
}
#project-main-container {
min-height: 100vh;
}
.theme-dark,
.theme-dark-blue,
.theme-dark-red {
a {
color: #79aeff;
}
:not(pre) > code {
background-color: rgb(17, 17, 17);
color: white;
}
.popper-tool-tip {
background: #cecece;
--popper-arrow-color: #cecece;
color: #000000;
}
}
a {
text-decoration: none;
color: var(--theme-color);
}
.section-container {
background-color: #fff;
}
.section-container .welcome {
position: relative;
top: 20px;
text-align: center;
}
.dynamic-container {
min-height: 80vh;
background: var(--theme-background);
}
.app-container button,
.container button,
.theme-picker__input-group button,
.button {
position: relative;
border: none;
padding: 4px 1rem;
color: white;
cursor: pointer;
border-radius: 4px;
align-self: start;
font-size: 0.8rem;
font-family: 'Open Sans', sans-serif;
justify-self: start;
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
border: 1px solid var(--theme-secondary-color);
}
button:disabled,
input:disabled,
select:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.loader {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
position: absolute;
z-index: 100;
.loader-icon {
animation: spin 1s ease alternate infinite;
width: 10vh;
height: 10vh;
background: black;
border-radius: 10px;
}
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.relative {
position: relative;
}
.filter-bar {
min-width: 22rem;
max-width: 50%;
margin: 2rem auto 1rem auto;
.app-input {
width: 100%;
padding: 4px;
padding-left: 10px;
font-family: 'Open Sans', sans-serif;
border: 2px solid var(--theme-primary-hover);
border-radius: 4px;
border: 1px solid rgb(203, 203, 203);
outline: none;
&:focus {
z-index: 1;
border: 1px solid rgb(70, 70, 70);
box-shadow: 0 0 0 3px rgba(48, 48, 48, 0.562);
}
}
.app-select {
// width: 100%;
padding: 4px;
font-family: 'Open Sans', sans-serif;
border: 2px solid var(--theme-primary-hover);
border-radius: 4px;
border: 1px solid rgb(203, 203, 203);
outline: none;
&:focus {
z-index: 1;
border: 1px solid rgb(70, 70, 70);
box-shadow: 0 0 0 3px rgba(48, 48, 48, 0.562);
}
}
.type-filter {
padding-bottom: 10px;
font-family: 'Open Sans', sans-serif;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
.type-title {
padding-right: 10px;
}
}
.add-filter-button {
margin: 0.5rem 0;
}
.filters-list {
display: flex;
flex-wrap: wrap;
}
.sort-list {
display: flex;
flex-wrap: wrap;
margin-top: 4px;
button.button {
margin-right: 10px;
margin-top: 10px;
}
.sort-field {
margin: 4px;
width: fit-content;
padding: 1px 6px;
border-radius: 3px;
background: #ebebeb;
border: 1px solid #d8d8d8;
color: black;
&:hover {
cursor: pointer;
}
}
}
.search-bar {
display: block !important;
justify-content: center;
align-items: center;
input {
color: black;
&:focus,
&:active {
border-color: var(--theme-secondary-color);
}
&::placeholder {
color: black !important;
}
}
button {
.ant-btn-primary {
&:hover,
&:focus,
&:active {
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
}
}
background: var(--theme-primary-bg);
color: var(--theme-secondary-color);
}
}
.ant-tag {
&.filter {
font-size: 14px;
padding: 6px 12px;
border-radius: 6px;
margin: 6px;
display: flex;
align-items: center;
width: fit-content;
span {
margin-left: 6px;
padding-left: 6px;
svg {
height: 15px;
width: 15px;
}
}
}
}
@media only screen and (max-width: 375px) {
min-width: 18rem;
}
@media only screen and (max-width: 320px) {
min-width: 16rem;
}
}
.add-filter-overlay {
.ant-popover-content {
width: 15rem;
.ant-popover-inner {
.ant-popover-inner-content {
.add-filter-container {
.ant-select {
width: 100% !important;
margin-bottom: 0.5rem;
}
.action-buttons {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 0.5rem 0;
}
}
}
}
}
}
================================================
FILE: src/css/layout/_blog_layout.scss
================================================
.blog-main-container {
display: flex;
max-width: 1920px;
margin: 0 auto;
background: var(--theme-background);
color: var(--theme-color);
.blog-sidebar {
width: 250px;
min-width: 250px;
}
.blog-mid-container {
flex: 6;
flex-grow: 6;
max-width: 900px;
width: 100%;
margin: 0 auto;
padding: 0px 56px;
}
.blog-right-container {
flex: 1;
flex-grow: 1;
position: sticky;
min-height: 100vh;
max-width: 20%;
position: relative;
min-width: 250px;
.test-container {
.test {
width: 200px;
height: 200px;
background-color: rebeccapurple;
margin: 10px;
}
}
}
}
@media (max-width: 700px) {
.blog-main-container {
.blog-mid-container {
padding: 0px 1.125rem;
}
}
}
@media (max-width: 1023px) {
.blog-main-container {
.blog-right-container {
display: none;
}
}
}
================================================
FILE: src/css/page/image-to-ascii.scss
================================================
.image-to-ascii {
position: relative;
min-height: 85vh;
.drawboard {
min-height: 85vh;
background: transparent;
pre {
transform-origin: 0 0;
}
}
.tool-bar {
display: flex;
flex-direction: column;
> * {
margin-top: 20px;
}
h2 {
margin-top: 10px;
}
}
.ascii-background {
position: relative;
overflow: scroll;
justify-content: flex-start;
align-items: flex-start;
color: white;
background: black;
}
.image-drop-zone {
position: relative;
align-self: stretch;
border: 2px dashed #0087f7;
border-radius: 5px;
display: flex;
font-family: 'Open Sans';
flex-direction: column;
justify-content: center;
align-items: center;
background: transparent;
text-align: center;
p {
font-family: 'Open Sans', sans-serif;
}
}
}
================================================
FILE: src/css/page/nepali-date.scss
================================================
.nepali-date {
font-family: 'Lato', sans-serif;
font-size: 1rem;
.nepali-date-converter {
max-width: 900px;
margin: 0 auto;
display: flex;
flex-direction: column;
.nepali-date-format {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
label {
display: flex;
flex-direction: column;
}
}
.nepali-date-row {
flex-wrap: wrap;
margin-top: 10px;
display: flex;
> * {
margin-right: 10px;
}
}
}
}
================================================
FILE: src/hooks/index.js
================================================
export * from './windowHooks'
================================================
FILE: src/hooks/windowHooks.js
================================================
import { useState, useEffect } from 'react'
export function useWindowWidth() {
const [width, setWidth] = useState(null)
useEffect(() => {
window &&
window.addEventListener('resize', () => {
setWidth(window.width)
})
}, [])
return width
}
export function useWindowHeight() {
const [height, setHeight] = useState(null)
useEffect(() => {
window &&
window.addEventListener('resize', () => {
setHeight(window.height)
})
}, [])
return height
}
================================================
FILE: src/pages/404.js
================================================
import React from 'react'
import Layout from '../components/Layouts/Layout'
import SEO from '../components/seo'
import notFound from '../assets/svg/404.svg'
import '../css/404.scss'
import { Link } from 'gatsby'
class NotFoundPage extends React.Component {
render() {
return (
Not Found
Looks like the page you are looking for couldn't be found. If you want to add your profile please create a file
readme-profiles/{'.md'} in the repo
developer-community-stats .
Link to the issue:
Add Profile
Return Home
)
}
}
export default NotFoundPage
================================================
FILE: src/pages/index.js
================================================
import React from 'react'
import { graphql } from 'gatsby'
import 'flag-icon-css/css/flag-icon.min.css'
import SEO from '../components/seo'
import Layout from '../components/Layouts/Layout'
import DeveloperCard from '../components/DeveloperCard'
import { AiOutlineArrowUp, AiOutlineArrowDown } from 'react-icons/ai'
class DeveloperCommunityHome extends React.Component {
constructor(props) {
super(props)
this.initialFilter = { type: '', value: '', name: '' }
this.state = {
searchText: '',
searchType: { label: 'username', value: 'githubUserId' },
filterableFields: [
{ name: 'Github user name', type: 'githubUserId' },
{ name: 'Name', type: 'name' },
{ name: 'Country', type: 'country' },
],
sortableFields: [
{ name: 'Country', type: 'country' },
{ name: 'Github user name', type: 'githubUserId' },
{ name: 'Name', type: 'name' },
{ name: "This year's commits", type: 'thisYearContribution' },
{ name: 'Followers', type: 'followersCount' },
],
selectedFilter: this.initialFilter,
filters: [],
isAddFilterPopoverOpen: false,
sort: { field: '', type: '', order: '' },
}
}
handleSearchChange = event => {
const value = event.target.value
this.setState({
searchText: value,
})
}
handleTypeChange = event => {
let index = event.nativeEvent.target.selectedIndex
let label = event.nativeEvent.target[index].title
console.log(label)
this.setState({
searchType: {
value: event.target.value,
label: label,
},
})
}
deleteFilter = index => {
const updatedFilters = this.state.filters.filter((filter, i) => i !== index)
this.setState({
filters: updatedFilters,
})
}
onPopoverVisibilityChange = visibility => {
this.setState({
isAddFilterPopoverOpen: visibility,
})
}
hidePopover = () => {
this.setState({
isAddFilterPopoverOpen: false,
})
}
updateSelectedFilterValue = event => {
const value = event.target.value
this.setState(prevState => ({
...prevState,
selectedFilter: {
...prevState.selectedFilter,
value: value,
},
}))
}
updateSelectedFilterType = value => {
this.setState(prevState => ({
...prevState,
selectedFilter: {
...prevState.selectedFilter,
...JSON.parse(value),
},
}))
}
addFilter = () => {
this.setState({
isAddFilterPopoverOpen: false,
filters: this.state.filters.concat(this.state.selectedFilter),
selectedFilter: { ...this.initialFilter },
})
}
toggleSort = sort => {
if (this.state.sort && sort.type === this.state.sort.type) {
if (this.state.sort.order === 'asc') {
this.setState({
sort: {
...this.state.sort,
order: 'dsc',
},
})
} else {
this.setState({
sort: null,
})
}
} else {
this.setState({
sort: { field: sort.field, type: sort.type, order: 'asc' },
})
}
}
getFilteredList = contributors => {
const list = contributors.reduce((list, current) => {
const isFilteredContributor = this.state.filters.every(filter => {
console.log('====> ', filter.value)
if (
current[filter.type]
.toLowerCase()
.includes(filter.value.toLowerCase())
) {
return true
}
})
if (isFilteredContributor) {
list.push(current)
}
return list
}, [])
return list
}
getSortedList = contributors => {
const list = !!this.state.sort
? contributors.sort((a, b) => {
if (this.state.sort.order === 'asc') {
if (b[this.state.sort.type]) {
if (typeof b[this.state.sort.type] === 'number') {
const order = a[this.state.sort.type] - b[this.state.sort.type]
return order
} else {
const order =
b[this.state.sort.type] &&
b[this.state.sort.type]
.toString()
.localeCompare(
a[this.state.sort.type] &&
a[this.state.sort.type].toString()
)
return order
}
}
} else {
if (typeof b[this.state.sort.type] === 'number') {
const order = b[this.state.sort.type] - a[this.state.sort.type]
return order
} else {
const order =
a[this.state.sort.type] &&
a[this.state.sort.type]
.toString()
.localeCompare(
b[this.state.sort.type] &&
b[this.state.sort.type].toString()
)
return order
}
}
})
: contributors
return list
}
render() {
const {
data: {
allContributor: { nodes: contributors },
},
} = this.props
const filteredList = this.getFilteredList(contributors)
const sortedList = this.getSortedList(filteredList)
const searchFilterList = sortedList.filter(contributor =>
contributor[this.state.searchType['value']]
.toLowerCase()
.includes(this.state.searchText.toLowerCase())
)
return (
Search by:
Username
Country
Name
{this.state.sortableFields.map(sort => (
this.toggleSort(sort)}
className="button"
>
{sort.name}
{this.state.sort && sort.type === this.state.sort.type ? (
this.state.sort.order === 'asc' ? (
) : (
)
) : null}
))}
{searchFilterList.map((contributorStats, i) => (
))}
)
}
}
export default DeveloperCommunityHome
export const pageQuery = graphql`
query {
site {
siteMetadata {
title
}
}
allContributor(sort: { order: DESC, fields: thisYearContribution }) {
totalCount
nodes {
id
countryCode
repositoryCount
contributionYears
country
firstContribution
followersCount
githubUserId
issuesCount
linkedin
website
name
pullRequestsCount
repoContributedCount
thisYearContribution
twitter
avatarUrl
}
}
}
`
================================================
FILE: src/templates/readme-profile.js
================================================
import React, { useEffect } from 'react'
import { graphql, Link } from 'gatsby'
import Layout from '../components/Layouts/Layout'
import { rhythm, scale } from '../utils/typography'
import Toc from '../components/Toc'
import { If } from '../components/utils'
import DeveloperCard from '../components/DeveloperCard'
const BlogContent = React.memo(({ html }) => {
return
});
function BlogPost(props) {
const post = props.data.markdownRemark
const card = props.data.contributor
return (
)
}
export default BlogPost
export const pageQuery = graphql`
query($slug: String!, $githubUserId: String!) {
site {
siteMetadata {
title
author
}
}
contributor(githubUserId: {eq: $githubUserId}) {
id
countryCode
repositoryCount
contributionYears
country
firstContribution
followersCount
githubUserId
issuesCount
linkedin
website
name
pullRequestsCount
repoContributedCount
thisYearContribution
twitter
avatarUrl
}
markdownRemark(fields: { slug: { eq: $slug } }) {
id
html
fields {
slug
}
}
}
`
================================================
FILE: src/utils/typography.js
================================================
import Typography from 'typography'
const typography = new Typography({
baseFontSize: '18px',
baseLineHeight: '1.5em',
headerFontFamily: ['Lora', 'Libre Baskerville', 'serif'],
bodyFontFamily: [
'Merriweather',
'Bree Serif',
'Lato',
'Libre Baskerville',
'serif',
],
headerMarginTop: '3.5rem',
overrideThemeStyles: ({ rhythm }, options) => ({
'h1,h2,h3': {
marginTop: rhythm(2),
},
}),
})
// Hot reload typography in development.
if (process.env.NODE_ENV !== `production`) {
typography.injectStyles()
}
export default typography
export const rhythm = typography.rhythm
export const scale = typography.scale
================================================
FILE: stats-generator.js
================================================
require('dotenv').config()
const fetch = require('node-fetch');
const token = process.env.GITHUB_TOKEN
const apiUrl = process.env.GITHUB_GRAPHQL_URL
const defaultConfig = {
followersCount: true,
issuesCount: true,
pullRequestCount: true,
contributionCount: true,
currentYearContributionCount: true,
repositoryCount: true,
countPrivate: true,
repositoryContributedCount: true,
languageCount: true,
includeContributedRepoLanguage: true,
includePrivate: true,
excludedLanguages: [].map(str => str.toLocaleLowerCase())
}
const config = {
...defaultConfig
}
/**
* Github Graphql query helper
*/
const githubQuery = async (query) => fetch(apiUrl, {
method: 'POST',
headers: {
Authorization: `bearer ${token}`
},
body: JSON.stringify({
query
})
})
/**
* Github REST API query helper
*/
const githubAPIQuery = async (query) => fetch(query, {
method: 'GET',
headers: {
Authorization: `bearer ${token}`
}
})
const extractGraphqlJson = res => {
return res.json().then(res => {
if (res.errors && res.errors.length > res.data.length) {
throw res
}
return res
})
}
const statsQuery = `
{
viewer {
repositories(isFork: false,${config.includePrivate ? '' : 'privacy: PUBLIC'}) {
totalCount
}
pullRequests {
totalCount
}
issues {
totalCount
}
followers {
totalCount
}
contributionsCollection {
contributionYears
}
repositoriesContributedTo${config.includePrivate ? '' : '(privacy: PUBLIC)'} {
totalCount
}
}
}
`
const contributionPerYearQuery = year => `
year${year}: contributionsCollection(from: "${year}-01-01T00:00:00Z", to: "${year}-12-31T23:59:59Z") {
contributionCalendar {
totalContributions
}
}
`
const userCountStatsQuery = user => `
${user.replace(/-/g, "___kebab___").replace(/^([0-9])/, (match) => {
return "__NUMBER__" + match
})}: user(login: "${user}") {
repositories(isFork: false,${config.includePrivate ? '' : 'privacy: PUBLIC'}) {
totalCount
}
pullRequests {
totalCount
}
issues {
totalCount
}
followers {
totalCount
}
avatarUrl
contributionsCollection {
contributionYears
contributionCalendar {
totalContributions
}
}
repositoriesContributedTo${config.includePrivate ? '' : '(privacy: PUBLIC)'} {
totalCount
}
}
`
const fetchCountStats = (users) => {
const perUserQuery = users.map(userCountStatsQuery)
const statsQuery = `
{
${perUserQuery.join("\n")}
}
`
return githubQuery(statsQuery).then(extractGraphqlJson).then(res => Object.entries(res.data).reduce((obj, [key, value]) => {
if (value === null) {
return obj
}
return { ...obj, [key]: value }
}, {})).then(res => {
return Object.entries(res).reduce((acc, user) => {
acc[user[0].replace(/___kebab___/g, "-").replace(/__NUMBER__/g, "")] = extractCountStats(user[1])
return acc
}, {})
})
}
const extractCountStats = (res) => {
const data = res;
return {
repositoryCount: data.repositories.totalCount,
repoContributedCount: data.repositoriesContributedTo.totalCount,
contributionYears: data.contributionsCollection.contributionYears,
followersCount: data.followers.totalCount,
issuesCount: data.issues.totalCount,
pullRequestsCount: data.pullRequests.totalCount,
avatarUrl: data.avatarUrl,
firstContribution: data.contributionsCollection.contributionYears.slice(-1)[0],
thisYearContribution: data.contributionsCollection.contributionCalendar.totalContributions
}
}
const fetchContributionPerYear = async (yearArray) => {
let queryArray = []
queryArray = queryArray.concat(yearArray.map(contributionPerYearQuery))
const query = `
{
viewer {
${queryArray.join('\n')}
}
}
`
const res = await githubQuery(query);
const res_1 = await extractGraphqlJson(res);
return res_1.data.viewer;
}
const fetchRepoLanguageAndStars = (externalRepo = false) => {
if (externalRepo && !config.includeContributedRepoLanguage) {
return { repoLanguages: [], stargazerCount: 0 }
}
const schemaKey = externalRepo ? 'repositoriesContributedTo' : 'repositories';
const forkKey = externalRepo ? '' : 'isFork: false,';
let repoLanguages = [];
let hasNext = null
let cursor
let stargazerCount = 0
function fetchPerPage() {
if (hasNext === false) {
return true
}
const query = `
{
viewer {
${schemaKey}(${forkKey} ${config.includePrivate ? '' : 'privacy: PUBLIC'}, first: 100 ${hasNext ? `,after: "${cursor}"` : ''}) {
pageInfo{
endCursor
hasNextPage
}
nodes {
stargazerCount
languages(first: 100) {
nodes {
name
}
}
}
}
}
}
`
return githubQuery(query)
.then(extractGraphqlJson)
.then(res => res.data.viewer)
.then(data => {
cursor = data[schemaKey].pageInfo.endCursor
hasNext = data[schemaKey].pageInfo.hasNextPage
repoLanguages = repoLanguages.concat(data[schemaKey].nodes.flatMap(node => node.languages.nodes.map(language => language.name)))
stargazerCount += data[schemaKey].nodes.reduce((acc, item) => acc + item.stargazerCount, 0)
return fetchPerPage()
});
}
return fetchPerPage().then(() => ({ repoLanguages, stargazerCount }))
}
const fetchCompoundStats = async (countStats) => {
const responses = await Promise.all([
fetchContributionPerYear(countStats.contributionYears),
fetchRepoLanguageAndStars(),
fetchRepoLanguageAndStars(true)
]);
const contributionPerYear = Object.entries(responses[0]).reduce((acc, item) => {
acc[item[0].replace('year', '')] = item[1].contributionCalendar.totalContributions;
return acc;
}, {});
const languages = responses[1].repoLanguages.concat(responses[2].repoLanguages).reduce((acc, language) => {
if (config.excludedLanguages.includes(language.toLocaleLowerCase())) {
return acc
}
if (acc[language]) {
acc[language]++;
} else {
acc[language] = 1;
}
return acc;
}, {});
return {
...countStats,
contributionPerYear,
languages,
languageCount: Object.keys(languages).length,
stargazerCount: responses[1].stargazerCount
};
}
module.exports = {
fetchCountStats
}