A comprehensive React application demonstrating modern development practices with Tailwind CSS, API integration, and responsive design. Built for PLP Academy Full-Stack Development Program.
π View Live Application (Replace with actual deployment URL)
Screenshots will be added after deployment
- Task Management: Create, complete, delete, and filter tasks
- API Integration: Real-time data fetching from multiple APIs
- Search & Pagination: Advanced data exploration capabilities
- Responsive Design: Mobile-first, works on all devices
- Dark/Light Theme: System-aware theme switching with persistence
- Modern React: Hooks, Context API, and functional components
- TypeScript Support: Full type safety (optional enhancement)
- Performance Optimized: Debounced searches, lazy loading, memoization
- Accessibility: ARIA labels, keyboard navigation, screen reader support
- Error Handling: Comprehensive error boundaries and user feedback
- Local Storage: Persistent data across browser sessions
- Smooth Animations: CSS transitions and keyframe animations
- Loading States: Skeleton screens and spinners
- Interactive Elements: Hover effects, focus states, and micro-interactions
- Professional Design: Modern card-based layout with consistent spacing
- Custom Components: Reusable, configurable UI components
src/
βββ components/ # Reusable UI components
β βββ Button.jsx # Multi-variant button component
β βββ Card.jsx # Compound card component
β βββ Layout.jsx # Main layout wrapper
β βββ Loading.jsx # Loading states and skeletons
β βββ Navbar.jsx # Navigation with mobile support
β βββ Footer.jsx # Site footer
β βββ TaskManager.jsx # Task management component
βββ pages/ # Page-level components
β βββ HomePage.jsx # Landing page
β βββ TasksPage.jsx # Task management page
β βββ ApiDataPage.jsx # API data exploration
β βββ AboutPage.jsx # Project information
βββ hooks/ # Custom React hooks
β βββ index.js # useLocalStorage, useDebounce, etc.
βββ context/ # React context providers
β βββ ThemeContext.jsx# Theme management
βββ api/ # API service functions
β βββ index.js # API clients and utilities
βββ utils/ # Utility functions
β βββ index.js # Helper functions
βββ assets/ # Static assets
β βββ animations.css # Custom animations
βββ App.jsx # Main application component
- Compound Components: Card with Header, Content, Footer sub-components
- Render Props: Flexible component composition patterns
- Higher-Order Components: Layout and theme providers
- Custom Hooks: Reusable stateful logic
- Context API: Global state management for themes
- Node.js: Version 18.0.0 or higher
- npm: Version 8.0.0 or higher (or yarn/pnpm)
- Git: For cloning the repository
-
Clone the repository
git clone https://github.com/PLP-MERN-Stack-Development/react-js-jsx-and-css-mastering-front-end-development-Github-Emmi.git cd react-js-jsx-and-css-mastering-front-end-development-Github-Emmi -
Install dependencies
npm install # or yarn install # or pnpm install
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to
http://localhost:3000to view the application.
| Script | Description |
|---|---|
npm run dev |
Start development server with HMR |
npm run build |
Build production-ready application |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint for code quality checks |
npm run format |
Format code with Prettier |
Create a .env file in the root directory:
# API Configuration (optional)
VITE_API_BASE_URL=https://jsonplaceholder.typicode.com
VITE_DUMMY_API_URL=https://dummyjson.com
# Application Settings
VITE_APP_NAME=React Task Manager
VITE_APP_VERSION=1.0.0
# Development Settings
VITE_DEBUG=trueModify tailwind.config.js to customize the color palette:
module.exports = {
theme: {
extend: {
colors: {
primary: {
// Custom primary color scale
500: '#your-color',
},
},
},
},
}Update src/api/index.js to use different APIs:
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'https://your-api.com';- Mobile: 320px - 767px
- Tablet: 768px - 1023px
- Desktop: 1024px and above
- Mobile: Collapsible navigation, touch-optimized controls
- Tablet: Optimized grid layouts, hover states
- Desktop: Full feature set, keyboard shortcuts
/* Light Theme */
--color-primary: #3b82f6;
--color-secondary: #64748b;
--color-success: #10b981;
--color-warning: #f59e0b;
--color-error: #ef4444;
/* Dark Theme */
--color-bg-primary: #0f172a;
--color-bg-secondary: #1e293b;
--color-text-primary: #f8fafc;
--color-text-secondary: #cbd5e1;- Primary Font: Inter (400, 500, 600, 700)
- Monospace Font: Fira Code
- Scale: 14px, 16px, 18px, 20px, 24px, 32px, 48px
- Base Unit: 4px
- Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 48px, 64px
- All pages load correctly
- Navigation works on all devices
- Task creation, completion, and deletion
- API data fetching and search
- Theme switching persistence
- Responsive design breakpoints
- Accessibility with screen readers
- Error handling for network failures
- β Chrome 90+
- β Firefox 88+
- β Safari 14+
- β Edge 90+
β οΈ Internet Explorer (not supported)
- Connect your repository to Vercel
- Configure build settings:
- Build Command:
npm run build - Output Directory:
dist - Install Command:
npm install
- Build Command:
- Deploy automatically on push to main branch
- Build settings:
Build command: npm run build Publish directory: dist - Environment variables: Add your
.envvariables in Netlify dashboard
The application is compatible with any static hosting service:
- GitHub Pages
- Firebase Hosting
- AWS S3 + CloudFront
- Surge.sh
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- ESLint: Follow the configured linting rules
- Prettier: Use consistent code formatting
- Commits: Use conventional commit messages
- Testing: Add tests for new features
Used for posts, users, and comments data.
Base URL: https://jsonplaceholder.typicode.com
Endpoints:
GET /posts- Fetch all postsGET /users- Fetch all usersGET /comments- Fetch all comments
Used for products, quotes, and enhanced data sets.
Base URL: https://dummyjson.com
Endpoints:
GET /products- Fetch products with search and paginationGET /quotes- Fetch inspirational quotesGET /users- Fetch user profiles
- Search delay: Debounced search may feel slow on fast typing
- Image loading: Product images may occasionally fail to load
- iOS Safari: Minor animation performance issues on older devices
- β¨ Initial release
- π Complete task management system
- π API integration with search and pagination
- π¨ Dark/light theme support
- π± Fully responsive design
- βΏ Accessibility improvements
- PLP Academy - Full-Stack Development Program
- React Team - For the amazing React library
- Tailwind CSS - For the utility-first CSS framework
- Vite Team - For the lightning-fast build tool
- API Providers - JSONPlaceholder and DummyJSON for free APIs
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: PLP Academy Student
- Program: Full-Stack Development - Week 3 Assignment
- Institution: PLP Academy
- Year: 2024
- π Documentation: Check this README and inline code comments
- π Bug Reports: Open an issue on GitHub
- π‘ Feature Requests: Open a feature request issue
- π§ Direct Contact: [your-email@example.com]
Demonstrating modern React development practices
- React project with Vite
- Tailwind CSS configuration
- Proper project structure
- React Router setup
- Reusable Button component with variants
- Card component with compound pattern
- Navbar with responsive navigation
- Footer with comprehensive links
- Layout component integration
- TaskManager with full CRUD operations
- useState, useEffect, useContext implementation
- Custom useLocalStorage hook
- ThemeContext for dark/light mode
- JSONPlaceholder API integration
- Loading and error states
- Pagination implementation
- Search functionality
- Multiple API endpoints
- Responsive design (mobile, tablet, desktop)
- Dark/light theme implementation
- Utility classes for layout and styling
- Hover effects and animations
- Consistent design system
- TypeScript-ready architecture
- Advanced error handling
- Performance optimizations
- Accessibility features
- Professional documentation
- Deployment-ready configuration


