Overview
This guide will help you set up and run the Nadie Sabe Nada Podcast application locally. You’ll go from zero to a fully functional podcast player in just a few minutes.Make sure you’ve completed the installation steps before proceeding.
Running the Application
Start the Development Server
From the project root directory, start the development server:The application will automatically:
- Start the React development server
- Open your default browser to
http://localhost:3000 - Enable hot module replacement for instant updates
Verify the App is Running
You should see the Nadie Sabe Nada podcast player with:
- A search bar at the top
- A list of podcast episodes
- A navigation header
Application Entry Point
The application bootstraps throughsrc/index.js, which sets up the Redux store, React Router, and core providers:
src/index.js
Understanding the Core App Component
The mainApp component (src/App.js) handles routing and podcast playback:
src/App.js (excerpt)
Key Routes
The application provides the following routes:| Route | Component | Description |
|---|---|---|
/ | PodcastList | Homepage with all episodes |
/podcast/:id | PodcastDetail | Individual episode details |
/ultimo-episodio | LastPodcast | Latest episode page |
/settings | Settings | User preferences |
* | NotFound | 404 error page |
Fetching Podcast Data
The app uses Redux Toolkit’screateAsyncThunk to fetch podcast data from the API:
src/store/slices/podcastSlice.js (excerpt)
- Favorite episodes
- Listen-later queue
- Completed episodes
- Playback positions
Playing a Podcast Episode
When a user clicks play, thePersistentPlayer component renders with the selected episode:
src/components/PersistentPlayer/PersistentPlayer.jsx (excerpt)
Available Scripts
The following npm scripts are available:Building for Production
Create Production Build
Generate an optimized production build:This creates a
build/ directory with:- Minified JavaScript bundles
- Optimized CSS
- Compressed assets
- Source maps for debugging
Test Production Build Locally
You can serve the production build locally using a static server:The app will be available at
http://localhost:3000.Environment Variables
Optional environment variables for YouTube integration:.env (example)
Testing the Persistent Player
To test the persistent audio player feature:Local Storage Keys
The app uses localStorage to persist user data:| Key | Purpose |
|---|---|
nsnPodcastFavorites | Array of favorited episode titles |
nsnPodcastListenLater | Array of listen-later episode titles |
nsnPodcastCompleted | Array of completed episode titles |
nsnPodcastListened | Array of started episode titles |
nsnPlayerVolume | Saved player volume (0-1) |
audioPlaybackTimes | Object mapping episode titles to playback positions |
Common Issues
API request fails or episodes don't load
API request fails or episodes don't load
The app fetches data from
https://nsn-podcast-api-rapidapi.netlify.app/podcast. If this endpoint is down or slow:- Check your internet connection
- Verify the API endpoint is accessible
- Check browser console for CORS errors
Audio won't play
Audio won't play
Common audio playback issues:
- Check browser console for errors
- Verify the episode has a valid audio URL
- Ensure browser autoplay policies aren’t blocking playback
- Try a different browser
Playback position not saving
Playback position not saving
If playback positions aren’t persisting:
- Check browser localStorage is enabled
- Verify you’re not in private/incognito mode
- Check the Redux state in React DevTools
Next Steps
Explore Features
Learn about all available features and how to use them
Component Reference
Dive into the codebase and component documentation
State Management
Learn about Redux state management
Hooks & Utilities
Explore custom hooks and utility functions
