Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mar-alv/ignite-github-blog

3rd ReactJs challenge of Ignite, Rocketseat's programming course, a blog interface like of your GitHub profile, where the posts are your issues
https://github.com/mar-alv/ignite-github-blog

challenge css html javascript jest js react react-testing-library rocketseat storybook styled-components ts typescript vite

Last synced: 7 days ago
JSON representation

3rd ReactJs challenge of Ignite, Rocketseat's programming course, a blog interface like of your GitHub profile, where the posts are your issues

Awesome Lists containing this project

README

        

Ignite GitHub Blog

![project-img](./.github/cover.jpg)

[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)

[🎨 Design](https://www.figma.com/file/9n2ccyeFz0vWsJ6Dcx5JuR/GitHub-Blog-(Community)?type=design&node-id=2-12&mode=design&t=IjiuQjVEQfwG7ASw-0)

[πŸ‡΅πŸ‡Ή PortuguΓͺs](./docs/README-pt.md)

## πŸ“š Summary
- [❕ About](#about)
- [πŸ“– Instructions](#instructions)
- [πŸ“₯ Install](#install)
- [πŸš€ Run Locally](#locally)
- [πŸ“‹ Run Unit Tests](#unit-tests)
- [πŸ“” Run Storybook](#storybook)
- [πŸ“‚ Structure](#structure)
- [🧰 Technologies](#technologies)
- [πŸ“Έ Screenshots and πŸŽ₯ Recordings](#screenshots-prints)
- [πŸ‘€ Author](#author)
- [πŸ“„ License](#license)

### ❕ About
This is my implementation of the challenge project "GitHub Blog" from the third ReactJS module of [Ignite](https://www.rocketseat.com.br/ignite), an intermediate and advanced course in various programming languages and technologies offered by [Rocketseat](https://www.rocketseat.com.br/).

It implements the following functionalities, which will be demonstrated in photos and videos later on:
#### **Home screen**
- **User search:** Search for users on GitHub to show its info, repositories and issues
- **Show user's info:** Show user's info like profile image, name, description, nick, company and followers quantity
- **Repository selection:** List the user's public repositories e allows selecting from which the issues will be listed
- **Issues listing:** Shows all issues of the selected repository
- **Issues search:** Filters issues based on subtexts present in the title or body of it
#### **Issue screen**
- **Issue description:** Shows the complete and formatted description of the issue, when it was posted and how many comments it has
- **Issue's comments:** List the comments posted in the issue

### πŸ“– Instructions
#### πŸ“₯ Install
Paste the 1ΒΊ command into a terminal opened within a folder of your preference to clone the project
```sh
git clone https://github.com/mar-alv/ignite-coffee-delivery.git
```

Then run one of the versions of the 2ΒΊ command to install the dependencies
```sh
npm i
```
```sh
npm install
```

#### πŸš€ Run Locally
Paste the command into a terminal, the application will be accessable through this [link](http://localhost:5173)
```sh
npm run dev
```

#### πŸ“‹ Run Unit Tests
Paste the command into a terminal, they will be exectued one after the other mentioning if there were failed tests
```sh
npm run tests
```

#### πŸ“” Run Storybook
Paste the command into a terminal, the project's components documentation will be accessible through this [link](http://localhost:6006)
```sh
npm run storybook
```

### πŸ“‚ Structure
```
β”‚ __mocks__/
β”‚ └── ...
β”‚ .github/
β”‚ └── ...
β”‚ .storybook/
β”‚ └── ...
β”‚ .tests/
β”‚ └── ...
β”‚ docs/
β”‚ └── ...
β”‚ src/
β”‚ β”œβ”€β”€ @types/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ assets/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”œβ”€β”€ context x/
β”‚ β”‚ β”‚ β”œβ”€β”€ component y/
β”‚ β”‚ β”‚ β”‚ └── ...
β”‚ β”‚ β”‚ └── ...
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ context/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ interfaces/
β”‚ β”‚ β”œβ”€β”€ context x/
β”‚ β”‚ β”‚ └── ...
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ libs/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ mappers/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ pages/
β”‚ β”‚ β”œβ”€β”€ page x/
β”‚ β”‚ β”‚ β”œβ”€β”€ component y/
β”‚ β”‚ β”‚ └── └── ...
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ services/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ styles/
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ utils/
β”‚ β”‚ └── ...
β”‚ └── ...
β”‚ stories/
β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”œβ”€β”€ context x/
β”‚ β”‚ β”‚ └── ...
β”‚ β”‚ └── ...
β”‚ └── ...
β”‚ tests/
β”‚ β”œβ”€β”€ context x/
β”‚ β”‚ └── ...
β”‚ └── ...
```

### 🧰 Technologies
#### Build Tools
[![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge&logo=vite&logoColor=white)](https://vitejs.dev/)

#### Documentation
[![Storybook](https://img.shields.io/badge/Storybook-FF4785?style=for-the-badge&logo=storybook&logoColor=white)](https://storybook.js.org/)

#### Front-end Framework
[![React.js](https://img.shields.io/badge/React.js-61DAFB?style=for-the-badge&logo=react&logoColor=white)](https://reactjs.org/)
[![React Router DOM](https://img.shields.io/badge/React%20Router%20DOM-61DAFB?style=for-the-badge&logo=react-router&logoColor=white&color=red)](https://reactrouter.com/en/main)
[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)

#### Styling
[![Font Awesome](https://img.shields.io/badge/Font_Awesome-339AF0?style=for-the-badge&logo=font-awesome&logoColor=white)](https://fontawesome.com/)
[![Styled-Components](https://img.shields.io/badge/styled--components-DB7093?style=for-the-badge&logo=styled-components&logoColor=white)](https://styled-components.com/)

#### Utilities
![Axios](https://img.shields.io/badge/Axios-764ABC?style=for-the-badge&labelColor=white&logo=axios&logoColor=764ABC)
[![React Hook Form](https://img.shields.io/badge/React_Hook_Form-FF6B6B?style=for-the-badge&logo=react&logoColor=white)](https://react-hook-form.com/)
[![React Markdown](https://img.shields.io/badge/React_Markdown-282c34?style=for-the-badge&logo=markdown&logoColor=white)](https://github.com/remarkjs/react-markdown)
[![Zod](https://img.shields.io/badge/Zod-007ACC?style=for-the-badge&logo=superman&logoColor=white)](https://zod.dev/)

#### Testing
[![Jest](https://img.shields.io/badge/Jest-C21325?style=for-the-badge&logo=jest&logoColor=white)](https://jestjs.io/)
[![React Testing Library](https://img.shields.io/badge/React%20Testing%20Library-E33332?style=for-the-badge&logo=testing-library&logoColor=white)](https://testing-library.com/docs/react-testing-library/intro)

### πŸ“Έ Screenshots and πŸŽ₯ Recordings
For a longer video demonstration click here and like my post on [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:7195123027691368449/)

![searching-user](./.github/user-search.gif)
User search

![home-page](./.github/home-page.gif)
Home page

![home-page-mobile](./.github/home-page-mobile.gif)
Home page mobile

![issue-page](./.github/issue-page.gif)
Issue page

![issue-page-mobile](./.github/issue-page-mobile.gif)
Issue page mobile

![searching-issues](./.github/issues-search.gif)
Issues search

![generic-stories](./.github/generic-stories.gif)
Generic stories

![common-component-stories](./.github/common-component-stories.gif)
Common component stories

![search-stories](./.github/search-stories.gif)
Search component stories

### πŸ‘€ Author


Marcelo Alvarez GitHub profile picture

Marcelo Alvarez


Front-end Developer

"Some AI generated funny quote here πŸ˜—"


LinkedIn


Portfolio


### πŸ“„ License
Licensed under [MIT](./LICENSE)