A modern, responsive user directory dashboard built with React, Redux Toolkit, and Tailwind CSS. Features a beautiful UI with dark/light theme toggle, user search, favorites, and detailed user profiles.
- 📱 Fully Responsive Design - Works perfectly on desktop, tablet, and mobile devices
- 🌙 Dark/Light Theme Toggle - Switch between themes with persistent preference
- 🔍 Real-time Search - Search users by name or email with instant filtering
- ⭐ Favorites System - Mark users as favorites with localStorage persistence
- 📄 Pagination - Browse through users with smooth pagination controls
- 👤 Detailed User Profiles - View comprehensive user information
- 🎨 Modern UI/UX - Beautiful gradient backgrounds and smooth animations
- ⚡ Fast Performance - Built with Vite for lightning-fast development and builds
- 🔄 Redux State Management - Centralized state management with Redux Toolkit
- Frontend Framework: React 19.1.1
- State Management: Redux Toolkit 2.8.2
- Styling: Tailwind CSS 4.1.12
- Build Tool: Vite 7.1.2
- Routing: React Router DOM 7.8.1
- API: DummyJSON (https://dummyjson.com/users)
-
Clone the repository
git clone https://github.com/yourusername/user-directory-dashboard.git cd user-directory-dashboard -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173to view the application.
- View Users: Browse through the user list with pagination
- Search: Use the search bar to filter users by name or email
- Favorites: Click the star icon to add/remove users from favorites
- Theme Toggle: Click the theme button to switch between dark and light modes
- View Profile: Click on any user card to view detailed information
- User Information: See age, gender, company, title, phone, and email
- Navigation: Use the "Back to List" button to return to the main dashboard
- Desktop: 2-column grid layout with full feature access
- Tablet: Adaptive layout with optimized spacing
- Mobile: Single-column layout with touch-friendly controls
The app uses Redux Toolkit for efficient state management:
- User Slice: Manages user data, loading states, and pagination
- Theme Slice: Handles dark/light theme preferences
- Async Thunks: Fetches user data from the DummyJSON API
Built with Tailwind CSS for a mobile-first approach:
- Grid System: Responsive grid that adapts to screen size
- Typography: Scalable text sizes for different devices
- Spacing: Consistent spacing that works across all screen sizes
- Lazy Loading: Components load only when needed
- Efficient Rendering: Optimized re-renders with React hooks
- Fast Builds: Vite provides instant hot module replacement
user-directory-dashboard/
├── public/
├── src/
│ ├── features/
│ │ ├── userSlice.js # Redux slice for user management
│ │ └── themeSlice.js # Redux slice for theme management
│ ├── App.jsx # Main application component
│ ├── main.jsx # Application entry point
│ ├── index.css # Global styles and Tailwind imports
│ └── store.js # Redux store configuration
├── package.json
├── vite.config.js
├── tailwind.config.js
└── README.md
The app uses Tailwind CSS for styling. You can customize:
- Colors: Modify the color scheme in
tailwind.config.js - Spacing: Adjust padding and margins in component classes
- Typography: Change font sizes and weights as needed
The app currently uses DummyJSON API. To integrate with your own API:
- Update the
fetchUsersthunk insrc/features/userSlice.js - Modify the data structure to match your API response
- Update the user mapping in
src/App.jsx
npm run build- Install Vercel CLI:
npm i -g vercel - Run:
vercel - Follow the prompts to deploy
- Build the project:
npm run build - Drag the
distfolder to Netlify - Configure your domain and settings
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -am 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- DummyJSON for providing the user data API
- Tailwind CSS for the utility-first CSS framework
- Redux Toolkit for simplified Redux development
- React Router for client-side routing
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact the maintainers
- Check the documentation
Made with ❤️ using React, Redux Toolkit, and Tailwind CSS