Giter Club home page Giter Club logo

arifszn / gitprofile Goto Github PK

View Code? Open in Web Editor NEW
1.4K 7.0 1.3K 4.9 MB

🚀 Create and deploy a dynamic portfolio by just providing your GitHub username.

Home Page: https://arifszn.github.io/gitprofile

License: MIT License

JavaScript 1.02% HTML 1.38% CSS 1.79% TypeScript 95.81%
portfolio personal-site react-portfolio github-portfolio personal-website template portfolio-website portfolio-site portfolio-page portfolio-template developer-portfolio portfolio-project github-api github github-pages hacktoberfest academic academic-porfolio academic-website

gitprofile's Introduction


Easy to use automatic portfolio builder for every GitHub user!

View Demo · Report Bug · Request Feature

Preview
Shadow

GitProfile is a powerful portfolio builder that allows you to create a stunning and personalized portfolio site in minutes, even if you have no coding experience. Simply provide your GitHub username, and GitProfile will automatically generate a portfolio. Best of all, you can easily deploy your portfolio to GitHub Pages with just a few clicks, making it accessible to the world in no time.

Features:

Easy to Setup
33 Themes
Google Analytics
Hotjar
SEO
PWA
Avatar and Bio
Social Links
Skill Section
Experience Section
Certification Section
Education Section
Projects Section
Publication Section
Blog Posts Section

To view a live example, click here.

Themes

🛠 Installation & Setup

There are three ways to use GitProfile. Use any.

Forking this repo

These instructions will get you a copy of the project and deploy your portfolio online using GitHub Pages!

  • Fork repo: Click here to fork the repo so you have your own project to customize. A "fork" is a copy of a repository.

  • Rename repo:

    • If you want to host your portfolio at https://<USERNAME>.github.io, rename your forked repository to username.github.io in GitHub, where username is your GitHub username (or organization name).
    • If you want to host your portfolio at https://<USERNAME>.github.io/<REPO_NAME> (e.g. https://<USERNAME>.github.io/portfolio), rename your forked repository to <REPO_NAME> (e.g. portfolio) in GitHub.
  • Enable workflows: Go to your repo's Actions tab and enable workflows.

    Workflows

  • Base Value: Open gitprofile.config.ts, and change base's value.

    • If you are deploying to https://<USERNAME>.github.io, set base to '/'.

    • If you are deploying to https://<USERNAME>.github.io/<REPO_NAME> (e.g. https://<USERNAME>.github.io/portfolio), then set base to '/<REPO_NAME>/' (e.g. '/portfolio/').

    // gitprofile.config.ts
    {
      base: '/',
      // ...
    }
  • Commit the changes: Now commit to your main branch with your changes. Wait a few minutes so that the CI/CD pipeline can publish your website to GitHub Pages. You can check the progress in the Actions tab.

Your portfolio website will be live shortly. Any time you commit a change to the main branch, the website will be automatically updated. If you face any issue viewing the website, double-check the base value in the gitprofile.config.ts file. Also, check if Source is set to GitHub Actions in SettingsPagesBuild and deployment.

If you wish to add a custom domain, no CNAME file is required. Just add it to your repo's SettingsPagesCustom domain.

As this is a Vite project, you can also host your website to Netlify, Vercel, Heroku, or other popular services. Please refer to this doc for a detailed deployment guide to other services.

Not working?

Setting up locally

  • Clone the project and change directory.

    git clone https://github.com/arifszn/gitprofile.git
    cd gitprofile
  • Install dependencies.

    npm install
  • Run dev server.

    npm run dev
  • Finally, visit http://localhost:5173/gitprofile/ from your browser.

Alternatively, you can set up and run the project using Docker with Vail, a powerful tool for local development of JavaScript/TypeScript Apps.

🎨 Customization

All the magic happens in the file gitprofile.config.ts. Open it and modify it according to your preference.

// gitprofile.config.ts

const CONFIG = {
  github: {
    username: 'arifszn', // Your GitHub org/user name. (This is the only required config)
  },
  /**
   * If you are deploying to https://<USERNAME>.github.io/, for example your repository is at https://github.com/arifszn/arifszn.github.io, set base to '/'.
   * If you are deploying to https://<USERNAME>.github.io/<REPO_NAME>/,
   * for example your repository is at https://github.com/arifszn/portfolio, then set base to '/portfolio/'.
   */
  base: '/gitprofile/',
  projects: {
    github: {
      display: true, // Display GitHub projects?
      header: 'Github Projects',
      mode: 'automatic', // Mode can be: 'automatic' or 'manual'
      automatic: {
        sortBy: 'stars', // Sort projects by 'stars' or 'updated'
        limit: 8, // How many projects to display.
        exclude: {
          forks: false, // Forked projects will not be displayed if set to true.
          projects: [], // These projects will not be displayed. example: ['arifszn/my-project1', 'arifszn/my-project2']
        },
      },
      manual: {
        // Properties for manually specifying projects
        projects: ['arifszn/gitprofile', 'arifszn/pandora'], // List of repository names to display. example: ['arifszn/my-project1', 'arifszn/my-project2']
      },
    },
    external: {
      header: 'My Projects',
      // To hide the `External Projects` section, keep it empty.
      projects: [
        {
          title: 'Project Name',
          description:
            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
          imageUrl:
            'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
          link: 'https://example.com',
        },
        {
          title: 'Project Name',
          description:
            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
          imageUrl:
            'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
          link: 'https://example.com',
        },
      ],
    },
  },
  seo: {
    title: 'Portfolio of Ariful Alam',
    description: '',
    imageURL: '',
  },
  social: {
    linkedin: 'ariful-alam',
    twitter: 'arif_szn',
    mastodon: '[email protected]',
    researchGate: '',
    facebook: '',
    instagram: '',
    youtube: '', // example: 'pewdiepie'
    dribbble: '',
    behance: '',
    medium: 'arifszn',
    dev: 'arifszn',
    stackoverflow: '', // example: '1/jeff-atwood'
    skype: '',
    telegram: '',
    website: 'https://www.arifszn.com',
    phone: '',
    email: '[email protected]',
  },
  resume: {
    fileUrl:
      'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', // Empty fileUrl will hide the `Download Resume` button.
  },
  skills: [
    'PHP',
    'Laravel',
    'JavaScript',
    'React.js',
    'Node.js',
    'Nest.js',
    'MySQL',
    'PostgreSQL',
    'Git',
    'Docker',
    'PHPUnit',
    'CSS',
    'Antd',
    'Tailwind',
  ],
  experiences: [
    {
      company: 'Company Name',
      position: 'Position',
      from: 'September 2021',
      to: 'Present',
      companyLink: 'https://example.com',
    },
    {
      company: 'Company Name',
      position: 'Position',
      from: 'July 2019',
      to: 'August 2021',
      companyLink: 'https://example.com',
    },
  ],
  certifications: [
    {
      name: 'Lorem ipsum',
      body: 'Lorem ipsum dolor sit amet',
      year: 'March 2022',
      link: 'https://example.com',
    },
  ],
  educations: [
    {
      institution: 'Institution Name',
      degree: 'Degree',
      from: '2015',
      to: '2019',
    },
    {
      institution: 'Institution Name',
      degree: 'Degree',
      from: '2012',
      to: '2014',
    },
  ],
  publications: [
    {
      title: 'Publication Title',
      conferenceName: 'Conference Name',
      journalName: 'Journal Name',
      authors: 'John Doe, Jane Smith',
      link: 'https://example.com',
      description:
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
    },
  ],
  // Display articles from your medium or dev account. (Optional)
  blog: {
    source: 'dev', // medium | dev
    username: 'arifszn', // to hide blog section, keep it empty
    limit: 3, // How many articles to display. Max is 10.
  },
  googleAnalytics: {
    id: '', // GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
  },
  // Track visitor interaction and behavior. https://www.hotjar.com
  hotjar: {
    id: '',
    snippetVersion: 6,
  },
  themeConfig: {
    defaultTheme: 'nord',

    // Hides the switch in the navbar
    // Useful if you want to support a single color mode
    disableSwitch: false,

    // Should use the prefers-color-scheme media-query,
    // using user system preferences, instead of the hardcoded defaultTheme
    respectPrefersColorScheme: false,

    // Display the ring in Profile picture
    displayAvatarRing: true,

    // Available themes. To remove any theme, exclude from here.
    themes: [
      'light',
      'dark',
      'cupcake',
      'bumblebee',
      'emerald',
      'corporate',
      'synthwave',
      'retro',
      'cyberpunk',
      'valentine',
      'halloween',
      'garden',
      'forest',
      'aqua',
      'lofi',
      'pastel',
      'fantasy',
      'wireframe',
      'black',
      'luxury',
      'dracula',
      'cmyk',
      'autumn',
      'business',
      'acid',
      'lemonade',
      'night',
      'coffee',
      'winter',
      'dim',
      'nord',
      'sunset',
      'procyon',
    ],

    // Custom theme, applied to `procyon` theme
    customTheme: {
      primary: '#fc055b',
      secondary: '#219aaf',
      accent: '#e8d03a',
      neutral: '#2A2730',
      'base-100': '#E3E3ED',
      '--rounded-box': '3rem',
      '--rounded-btn': '3rem',
    },
  },

  // Optional Footer. Supports plain text or HTML.
  footer: `Made with <a 
      class="text-primary" href="https://github.com/arifszn/gitprofile"
      target="_blank"
      rel="noreferrer"
    >GitProfile</a> and ❤️`,

  enablePWA: true,
};

export default CONFIG;

Themes

There are 33 themes available that can be selected from the dropdown.

The default theme can be specified.

// gitprofile.config.ts
const CONFIG = {
  // ...
  themeConfig: {
    defaultTheme: 'light',
    // ...
  },
};

Theme Dropdown

You can create your own custom theme by modifying these values. Theme procyon will have the custom styles.

// gitprofile.config.ts
const CONFIG = {
  // ...
  themeConfig: {
    customTheme: {
      primary: '#fc055b',
      secondary: '#219aaf',
      accent: '#e8d03a',
      neutral: '#2A2730',
      'base-100': '#E3E3ED',
      '--rounded-box': '3rem',
      '--rounded-btn': '3rem',
    },
    // ...
  },
};

Google Analytics

GitProfile supports both GA3 and GA4. If you do not want to use Google Analytics, keep the id empty.

// gitprofile.config.ts
const CONFIG = {
  // ...
  googleAnalytics: {
    id: '',
  },
};

Besides tracking visitors, it will track click events on projects and blog posts, and send them to Google Analytics.

Hotjar

GitProfile supports hotjar to track visitor interaction and behavior. If you do not want to use Hotjar, keep the id empty.

// gitprofile.config.ts
const CONFIG = {
  // ...
  hotjar: {
    id: '',
    snippetVersion: 6,
  },
};

SEO

You can customize the meta tags for SEO in seo.

// gitprofile.config.ts
const CONFIG = {
  // ...
  seo: {
    title: 'Portfolio of Ariful Alam',
    description: '',
    imageURL: '',
  },
};

PWA

GitProfile is PWA enabled. The site can be installed as a Progressive Web App. To turn it off, set enablePWA to false.

PWA

Avatar and Bio

Your avatar and bio will be fetched from GitHub automatically.

Social Links

You can link your social media services you're using, including LinkedIn, Twitter, Mastodon, ResearchGate, Facebook, Instagram, YouTube, Dribbble, Behance, Medium, dev, Stack Overflow, Skype, Telegram, personal website, phone and email.

// gitprofile.config.ts
const CONFIG = {
  // ...
  social: {
    linkedin: 'ariful-alam',
    twitter: 'arif_szn',
    mastodon: '[email protected]',
    researchGate: '',
    facebook: '',
    instagram: '',
    youtube: '',
    dribbble: '',
    behance: '',
    medium: '',
    dev: '',
    stackoverflow: '',
    skype: '',
    telegram: '',
    website: '',
    phone: '',
    email: '',
  },
};

Skills

To showcase your skills provide them here.

// gitprofile.config.ts
const CONFIG = {
  // ...
  skills: ['JavaScript', 'React.js'],
};

Empty array will hide the skills section.

Experience

Provide your job history in experiences.

// gitprofile.config.ts
const CONFIG = {
  // ...
  experiences: [
    {
      company: 'Company Name',
      position: 'Position',
      from: 'September 2021',
      to: 'Present',
      companyLink: 'https://example.com',
    },
    {
      company: 'Company Name',
      position: 'Position',
      from: 'July 2019',
      to: 'August 2021',
      companyLink: 'https://example.com',
    },
  ],
};

Empty array will hide the experience section.

Education

Provide your education history in educations.

// gitprofile.config.ts
const CONFIG = {
  // ...
  educations: [
    {
      institution: 'Institution name 1',
      degree: 'Bachelor of Science',
      from: '2015',
      to: '2019',
    },
    {
      institution: 'Institution name 2',
      degree: 'Higher Secondary Certificate (HSC)',
      from: '2012',
      to: '2014',
    },
  ],
};

Empty array will hide the education section.

Certifications

Provide your industry certifications in certifications.

// gitprofile.config.ts
const CONFIG = {
  // ...
  certifications: [
    {
      name: 'Lorem ipsum',
      body: 'Lorem ipsum dolor sit amet',
      year: 'March 2022',
      link: 'https://example.com',
    },
  ],
};

Empty array will hide the certifications section.

Projects

Github Projects

  • Automatic Mode: Seamlessly showcase your top GitHub projects based on stars or last updated date.
  • Manual Mode: Choose specific repositories to highlight.
// gitprofile.config.ts
const CONFIG = {
  // ...
  projects: {
    github: {
      display: true, // Display GitHub projects?
      header: 'Github Projects',
      mode: 'automatic', // Mode can be: 'automatic' or 'manual'
      automatic: {
        sortBy: 'stars', // Sort projects by 'stars' or 'updated'
        limit: 8, // How many projects to display.
        exclude: {
          forks: false, // Forked projects will not be displayed if set to true.
          projects: [], // These projects will not be displayed. example: ['arifszn/my-project1', 'arifszn/my-project2']
        },
      },
      manual: {
        // Properties for manually specifying projects
        projects: ['arifszn/gitprofile', 'arifszn/pandora'], // List of repository names to display. example: ['arifszn/my-project1', 'arifszn/my-project2']
      },
    },
  },
};

External Projects

  • Highlight Projects Beyond GitHub: Feature projects hosted on other platforms or personal websites.
  • Control over Content: Provide custom titles, descriptions, images, and links for each external project.
// gitprofile.config.ts
const CONFIG = {
  // ...
  projects: {
    external: {
      header: 'My Projects',
      // To hide the `External Projects` section, keep it empty.
      projects: [
        {
          title: 'Project Name',
          description:
            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
          imageUrl:
            'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
          link: 'https://example.com',
        },
        {
          title: 'Project Name',
          description:
            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
          imageUrl:
            'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
          link: 'https://example.com',
        },
      ],
    },
  },
};

Publications

Provide your academic publishing in publications.

// gitprofile.config.ts
const CONFIG = {
  // ...
  publications: [
    {
      title: 'Publication Title',
      conferenceName: 'Conference Name',
      journalName: 'Journal Name',
      authors: 'John Doe, Jane Smith',
      link: 'https://example.com',
      description:
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
    },
  ],
};

Empty array will hide the publications section.

Blog Posts

If you have medium or dev account, you can show your recent blog posts in here just by providing your medium/dev username. You can limit how many posts to display (Max is 10).

// gitprofile.config.ts
const CONFIG = {
  // ...
  blog: {
    source: 'dev',
    username: 'arifszn',
    limit: 5,
  },
};

Blog

The posts are fetched by blog.js.

💖 Support

You can show your support by starring this project. ★

Github Star

💡 Contribute

To contribute, see the Contributing guide.

📄 License

MIT

gitprofile's People

Contributors

aashay28 avatar ali-fani avatar anton-gustafsson avatar arifszn avatar csarnataro avatar daffaharizal avatar dependabot[bot] avatar golles avatar hasinhayder avatar hkrvikrant avatar joanjeremiah avatar jsvigneshkanna avatar knittl avatar micheldore avatar nathen418 avatar putuwahyu29 avatar warhammer4000 avatar whyang0808 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitprofile's Issues

Display project tags

I would love to be able to display my project tags on my portfolio website. According to GitHub Docs, we can get a list of each repo's tags using this query:

https://api.github.com/repos/\(OWNER)/\(REPO)/tags

Perhaps we could reuse the code used to create the skill bubbles to create tag bubbles.

I'm not sure where we can store a list of the repo's tags in order to reference them later when building the project html. I have very limited experience working with web development, so I'm not exactly sure where to start.

Upgrade `Create React App` to v5

Currently, this project is using the Create React App v4. Upgrade it to the latest version v5 so that tailwind v3 can be used smoothly.

Use this project as a NPM package

The only way of using this project is to fork it and modify the codebase. But these introduce the problem of how a user will keep his fork copy updated.

If the project can be used as a NPM package, the user will just run npm update, and he will get the latest update of it.

dev blog posts not showing

It seems that on my end when I change the username to my dev username it will not show blog posts, But if I put the author's username it will show.

I do have some blog posts on my dev account so I cannot figure out why this is happening.

thanks

Separate Repos and Projects sections

Would be better in my opinion if there's a separate section for showcasing your projects done separatly without having to publish them in GitHub as repos.

Update deploy guide

The readme still contains deploy guide for CRA. As this project is migrated to vite.js, the guide is outdated.

Display one image of my github projects

Hi Ariful,

Your gitprofile is pretty great, I'm just wondering if we could add one image above projects to make it looks more clear and funcy?

Just like what github does.

image

But I'm not sure how to do it yet, do you have any good idea?

CI-CD warning after build

The github action is producing a warning after build.

Unexpected input(s) 'cache', 'cache-dependency-path', valid inputs are ['always-auth', 'node-version', 'registry-url', 'scope', 'version']

image

Also, please update the setup-node workflow to v2 if nothing breaks.

Medium Blog post thumbnail

image

As you see, the blog post is not showing the medium featured image. At the moment I am using the "Featured Image" system in Medium to show as a thumbnail on the portfolio, am I doing something wrong?

height issue

i am using footer and in this file already define css and i am not able to override this css please remove the classname .h-screen
a i am attaching screenshot [also](image)

同学,您这个项目引入了1177个开源组件,存在2个漏洞,辛苦升级一下

检测到 arifszn/ezprofile 一共引入了1177个开源组件,存在2个漏洞

漏洞标题:Immer 安全漏洞
缺陷组件:[email protected]
漏洞编号:CVE-2021-23436
漏洞描述:Immer是Immer社区的一个基于Javascript的状态管理库。。
immer 9.0.6之前版本存在安全漏洞,该漏洞源于当path参数中使用的用户提供的密钥是数组时,可能导致绕过CVE-2020-28477。
影响范围:(∞, 9.0.6)
最小修复版本:9.0.6
缺陷组件引入路径:[email protected]>[email protected]>[email protected]>[email protected]

另外还有2个漏洞,详细报告:https://mofeisec.com/jr?p=a152e6

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.