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

https://github.com/sergiocampbell/podcaster

Take a look here and test it!
https://github.com/sergiocampbell/podcaster

css3 jest nextjs14-typescript react react-query typescript

Last synced: over 1 year ago
JSON representation

Take a look here and test it!

Awesome Lists containing this project

README

          

![image](https://github.com/SergioCampbell/podcaster/assets/51247757/7d0936df-63e3-4a4d-8408-2d30cfccb245)

# Podcaster

Podcaster is a web application where you can search for the top 100 iTunes podcast artists and
hear their content.

Navigate filtering by podcast title or artist name, select the card and check it content.

DEMO HERE: [https://podcaster-delta.vercel.app](https://podcaster-delta.vercel.app)

## Architecture

This project uses a layered architecture, you would have separate layers for presentation (UI components), business logic (services and hooks), and data access (API calls and database operations).

## Tools and Technologies

List the tools and technologies used in your project:

- TypeScript
- Nextjs (14)
- React
- React-query
- React-table
- Jest
- linkify-react
- Eslint
- AllOrigins

## Project Structure

Overview of the project structure:

```
└── πŸ“podcast
└── .eslintrc.json
└── πŸ“.swc
└── πŸ“plugins
β”œβ”€β”€ v7_windows_x86_64_0.104.30
└── πŸ“db
└── allPodcast.ts
└── data.ts
└── jest.config.ts
└── jest.setup.ts
└── next-env.d.ts
└── next.config.js
└── package-lock.json
└── package.json
└── πŸ“public
└── next.svg
└── vercel.svg
└── README.md
└── πŸ“src
└── πŸ“app
└── favicon.ico
└── globals.css
└── HomePage.tsx
└── page.module.css
└── page.tsx
└── πŸ“podcast
└── πŸ“[podcastId]
└── πŸ“episode
└── πŸ“[episodeId]
└── page.tsx
└── page.tsx
└── Providers.tsx
└── πŸ“components
└── ErrorComponent.tsx
└── Loading.tsx
└── navbar.tsx
└── πŸ“Podcast
└── DummyData.ts
└── Filter.tsx
└── PodcastCards.tsx
└── PodcastTable.tsx
└── Sidebar.tsx
└── πŸ“hooks
└── index.ts
└── πŸ“useQuery
└── usePodcast.ts
└── useQueryconfig.ts
└── πŸ“interface
└── podcastDetail.ts
└── podcasts.ts
└── πŸ“libs
└── apiUrl.ts
└── constans.ts
└── defaultValues.ts
└── πŸ“services
└── serviceFetcher.ts
└── tsconfig.json
└── πŸ“__test__
└── filter.test.tsx
└── navbar.test.tsx
└── podcast.test.tsx
└── podcastCard.test.tsx
└── sidebar.test.tsx
└── πŸ“__snapshots__
└── podcastCard.test.tsx.snap
```

## Installation

- Clone the project
- execute ```npm install``` or ```yarn```
- Run ```npm run dev``` or ```yarn dev```

## Usage

Once in "dev mode" open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
To edit some values and add "dynamicity" go to the this path:

```
└── HomePage.tsx
```

and in the ``usePodcast()`` hook

````
const { data, isFetching, isLoading } = usePodcast(100); // ⬅️ You can change this number
````

## Testing

This project uses [Jest](https://jestjs.io) and to run the test just excecute the follow script:

- ```npm run test``` or ```yarn test```

## License

MIT