Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/valentinosvaldo/github-profile

Show github profiles with his repositories
https://github.com/valentinosvaldo/github-profile

github react unit-testing

Last synced: 6 days ago
JSON representation

Show github profiles with his repositories

Awesome Lists containing this project

README

        

# GitHub Profile

A React + TypeScript application that fetches and displays GitHub profiles along with their repositories. Built with modern web technologies, including Vite, ShadCN UI components, and tested using Vitest and Cypress for a robust and reliable user experience.

## ๐Ÿ“ธ Demo

[๐ŸŒ Visit the demo](https://github-profile-rho-nine.vercel.app/)

![Github Profile](https://github.com/ValentinOsvaldo/github-profile/blob/main/public/preview.png?raw=true)

## ๐Ÿš€ Features

- **GitHub Profile Lookup**: Search for GitHub users by username to view their profile information.
- **Repositories List**: Display a list of public repositories with additional details.
- **Interactive UI**: Modern, accessible, and responsive design using ShadCN components.
- **Testing Suite**: Comprehensive testing using Vitest and Cypress for unit and end-to-end tests.
- **Error Handling**: Graceful handling of network errors and non-existent profiles.

## ๐Ÿ› ๏ธ Tech Stack

- **Frontend**: [React](https://reactjs.org/) + [TypeScript](https://www.typescriptlang.org/)
- **Styling**: [ShadCN](https://shadcn.dev/)
- **Build Tool**: [Vite](https://vitejs.dev/)
- **Testing**: [Vitest](https://vitest.dev/) for unit tests, [Cypress](https://www.cypress.io/) for end-to-end tests

## ๐Ÿ“ฆ Installation

1. **Clone the repository**:
```bash
git clone https://github.com/ValentinOsvaldo/github-profile.git
cd github-profile
```

2. **Install dependencies**:
```bash
npm install
```

3. **Run the project**:
```bash
npm run dev
```

4. **Access the app**:
Open your browser and go to `http://localhost:3000`.

## ๐Ÿงช Running Tests

- **Unit Tests** (using Vitest):
```bash
npm run test
```

- **End-to-End Tests** (using Cypress):
```bash
npm run test:e2e:dev
```

## โš™๏ธ Project Structure

```plaintext
src/
โ”œโ”€โ”€ components/ # Reusable UI components
โ”œโ”€โ”€ pages/ # Page components
โ”œโ”€โ”€ hooks/ # Custom hooks
โ””โ”€โ”€ App.tsx # Main app component