SergioCampbell / podcaster

Take a look here and test it!

Home Page:https://podcaster-delta.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

image

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

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 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 and to run the test just excecute the follow script:

  • npm run test or yarn test

License

MIT

About

Take a look here and test it!

https://podcaster-delta.vercel.app


Languages

Language:TypeScript 97.7%Language:CSS 1.6%Language:JavaScript 0.7%