A modern React + Redux media search application that allows users to search for photos and videos, explore media content, and save favorite items into personalized collections.
- 🔍 Search photos using Unsplash API
- 🎥 Search videos using Pexels API
- 💾 Save media to collections
- 🗑 Clear saved collections
- ⚡ Fast state management using Redux Toolkit
- 🎨 Modern responsive UI with Tailwind CSS
- 🔄 Dynamic tab switching between Photos & Videos
- 💿 LocalStorage persistence
- 🧭 Routing with React Router DOM
- ⏳ Custom loading spinner
- React.js
- Redux Toolkit
- React Router DOM
- Tailwind CSS
- Axios
- Vite
- Unsplash API
- Pexels API
src/
│
├── api/
│ └── mediaApi.js
│
├── components/
│ ├── CollectionButton.jsx
│ ├── CollectionCard.jsx
│ ├── Loading.jsx
│ ├── ResultCard.jsx
│ ├── ResultGrid.jsx
│ ├── SearchBar.jsx
│ └── Tabs.jsx
│
├── pages/
│ ├── HomePage.jsx
│ └── PagesCollection.jsx
│
├── redux/
│ ├── store.js
│ └── features/
│ ├── collectionSlice.js
│ ├── searchSlice.js
│ └── toasterSlice.js
│
├── App.jsx
├── main.jsx
└── index.cssClone the repository:
git clone https://github.com/RonitKanoje/PixelRoom.gitMove into the project folder:
cd PixelRoomInstall dependencies:
npm installStart development server:
npm run devCreate a .env file in the root directory:
VITE_UNSPLASH_KEY=your_unsplash_api_key
VITE_PEXELS_KEY=your_pexels_api_keyhttps://unsplash.com/developers
This project is open-source and available under the MIT License.
Ronit Kanoje