Skip to content

dawalberto/podcaster

Repository files navigation

This project is a podcast player application built with React, TypeScript, Vite, Tailwind CSS. It follows a feature-based architecture and utilizes GitHub Actions for deployment.

You can enjoy the podcast website here: https://dawalberto.github.io/podcaster

Description

The Podcaster app allows users to discover and listen their favorite podcasts. With a sleek and intuitive interface, users can browse through a wide selection of podcasts.

Technologies & Features

Technologies Used:

  • React: A JavaScript library for building user interfaces.
  • TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
  • Vite: A next-generation front-end tooling ecosystem for modern web development.
  • Tailwind CSS: A utility-first CSS framework for building custom designs quickly.
  • Zustand: A simple and fast state management solution for React applications.
  • GitHub Actions: Automate workflows and deploy your application with CI/CD directly from your GitHub repository.

Key Features:

  • Feature-based Architecture: Organize code into feature modules for better maintainability and scalability.
  • Filter podcast: Filter podcast by searching by author or title.
  • Loading indicator: Indicates at all times whether the user is browsing or loading data.
  • Responsive Design: Ensure optimal viewing experience across a range of devices and screen sizes.

Testing

Unit and Integration Tests

This project includes unit and integration tests written with Jest. To run the tests, use the following command:

npm run test

End-to-End (E2E) Tests

End-to-end tests are implemented with Cypress. To execute the E2E tests, use the following command:

npm run cy:open

or

npx cypress run

Getting Started

To get started with the Podcaster app, follow these steps:

  1. git clone https://github.com/dawalberto/podcaster.git
  2. cd podcaster
  3. npm install
  4. npm run dev