Giter VIP home page Giter VIP logo

github-profiler's Introduction

GitHub Profiler

A frontend application built to interact with the GitHub API. It allows users to search for GitHub users, view their details, and display a list of repositories along with their details.

Table of Contents

Introduction

This application utilizes React.js to create a user-friendly interface for browsing GitHub users and their repositories. It allows users to search for a specific GitHub user and view their details, including followers, following count, avatar image, and bio. Additionally, users can see a sorted list of repositories, alter the order of the repository list, and access detailed information about each repository.

Installation

To run this application locally, follow these steps:

  1. Clone this repository.
  2. Install dependencies using npm install.
  3. Start the development server using npm run dev.

File Structure

The main components and directories in this project include:

  • src/: Contains the source code of the application.
    • components/: Reusable UI components used throughout the app.
      • ui/: Shadcn-ui custom reusable components.
    • data/types: Contains types and interfaces used in the project.
    • hooks/: Custom React hooks utilized within the application.
    • layouts/: Layout components defining the structure difference between home page and profile, repository pages.
    • Pages/: Contains different pages of the application.
    • services/: Service functions and API-related utilities.
    • styles/: Global CSS and styling files.
    • App.tsx: Manages theme provider and sets up routing using React Router.
    • main.tsx: Entry point that renders the root component of the application.
    • Router.tsx: Handles application routing logic using React Router.

Dependencies

This application uses various dependencies and libraries, including but not limited to:

  • React: JavaScript library for building user interfaces.
  • React Router DOM: Provides navigation and routing functionalities for React applications.
  • Vite: Next-generation frontend tooling. Provides a fast dev server, optimized builds, and more.
  • TypeScript: A superset of JavaScript that adds static typing.
  • Shadcn-ui: A collection of re-usable components that you can copy and paste into your apps.
  • SWR: React Hooks library for data fetching.
  • Tailwind CSS: Utility-first CSS framework used for styling.
  • Numeral: Library for formatting and manipulating numbers.
  • Lucide React: SVG icon library for React.
  • react-hot-toast: Toast notifications for React.
  • tailwind-merge: Utility for merging Tailwind CSS classes.
  • clsx: Utility for constructing CSS class strings.

Automated Testing and Continuous Integration

This project includes end-to-end (E2E) tests using Cypress, a tool for browser-based testing. The Cypress tests validate various functionalities of the application, including header interactions, navigation, user profile details, repository listing, and redirection to GitHub profiles and repositories.

Cypress Tests

The Cypress tests included in this project cover different scenarios and functionalities of the application. These tests can be found in the cypress/integration directory and are structured to ensure the application functions as expected.

To run the Cypress tests locally, follow these steps:

  1. Ensure the application and its dependencies are installed.

  2. Start the application's development server.

  3. Open a new terminal window and run the following command:

    # Run Cypress tests
    npx cypress open

This command will open the Cypress Test Runner. From there, you can select and execute the available tests, view test results, and debug if necessary.

Continuous Integration (CI)

The repository is integrated with a CI workflow using GitHub Actions. Upon pushing changes, the CI workflow automatically triggers the execution of Cypress tests to validate the application's functionality.

github-profiler's People

Contributors

giovannibot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.