Skip to content

Github-Emmi/react-js-jsx-and-css-mastering-front-end-development-Github-Emmi

Β 
Β 

Repository files navigation

🎨 React Task Manager - Modern Full-Stack Application

React Vite Tailwind CSS License PRs Welcome

A comprehensive React application demonstrating modern development practices with Tailwind CSS, API integration, and responsive design. Built for PLP Academy Full-Stack Development Program.

πŸš€ Live Demo

πŸ”— View Live Application (Replace with actual deployment URL)

πŸ“Έ Screenshots

Desktop View (Light Theme)

Desktop Light Theme

Desktop View (Dark Theme)

Desktop Dark Theme

Mobile Responsive Design

Mobile View

Screenshots will be added after deployment

✨ Features

🎯 Core Functionality

  • 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

πŸ› οΈ Technical Features

  • 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

🎨 UI/UX Features

  • 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

πŸ—οΈ Architecture

Project Structure

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

Component Architecture

  • 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

πŸš€ Getting Started

Prerequisites

  • Node.js: Version 18.0.0 or higher
  • npm: Version 8.0.0 or higher (or yarn/pnpm)
  • Git: For cloning the repository

Installation

  1. 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
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Start the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  4. Open your browser Navigate to http://localhost:3000 to view the application.

Available Scripts

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

πŸ”§ Configuration

Environment Variables

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=true

Customization

Theme Colors

Modify tailwind.config.js to customize the color palette:

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: {
          // Custom primary color scale
          500: '#your-color',
        },
      },
    },
  },
}

API Endpoints

Update src/api/index.js to use different APIs:

const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'https://your-api.com';

πŸ“± Responsive Design

Breakpoints

  • Mobile: 320px - 767px
  • Tablet: 768px - 1023px
  • Desktop: 1024px and above

Features by Device

  • Mobile: Collapsible navigation, touch-optimized controls
  • Tablet: Optimized grid layouts, hover states
  • Desktop: Full feature set, keyboard shortcuts

🎨 Design System

Color Palette

/* 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;

Typography

  • Primary Font: Inter (400, 500, 600, 700)
  • Monospace Font: Fira Code
  • Scale: 14px, 16px, 18px, 20px, 24px, 32px, 48px

Spacing System

  • Base Unit: 4px
  • Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 48px, 64px

πŸ§ͺ Testing

Manual Testing Checklist

  • 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

Browser Support

  • βœ… Chrome 90+
  • βœ… Firefox 88+
  • βœ… Safari 14+
  • βœ… Edge 90+
  • ⚠️ Internet Explorer (not supported)

🚒 Deployment

Vercel (Recommended)

  1. Connect your repository to Vercel
  2. Configure build settings:
    • Build Command: npm run build
    • Output Directory: dist
    • Install Command: npm install
  3. Deploy automatically on push to main branch

Netlify

  1. Build settings:
    Build command: npm run build
    Publish directory: dist
    
  2. Environment variables: Add your .env variables in Netlify dashboard

Other Platforms

The application is compatible with any static hosting service:

  • GitHub Pages
  • Firebase Hosting
  • AWS S3 + CloudFront
  • Surge.sh

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Process

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Code Standards

  • ESLint: Follow the configured linting rules
  • Prettier: Use consistent code formatting
  • Commits: Use conventional commit messages
  • Testing: Add tests for new features

πŸ“š API Documentation

JSONPlaceholder API

Used for posts, users, and comments data.

Base URL: https://jsonplaceholder.typicode.com

Endpoints:

  • GET /posts - Fetch all posts
  • GET /users - Fetch all users
  • GET /comments - Fetch all comments

DummyJSON API

Used for products, quotes, and enhanced data sets.

Base URL: https://dummyjson.com

Endpoints:

  • GET /products - Fetch products with search and pagination
  • GET /quotes - Fetch inspirational quotes
  • GET /users - Fetch user profiles

πŸ› Known Issues

  • 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

πŸ”„ Changelog

Version 1.0.0 (2024-11-07)

  • ✨ Initial release
  • πŸŽ‰ Complete task management system
  • 🌐 API integration with search and pagination
  • 🎨 Dark/light theme support
  • πŸ“± Fully responsive design
  • β™Ώ Accessibility improvements

πŸ† Acknowledgments

  • 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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Contact & Support

  • Developer: PLP Academy Student
  • Program: Full-Stack Development - Week 3 Assignment
  • Institution: PLP Academy
  • Year: 2024

Get Help

  • πŸ“– 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]

Built with ❀️ for PLP Academy
Demonstrating modern React development practices

🎯 Assignment Requirements Fulfilled

βœ… Task 1: Project Setup

  • React project with Vite
  • Tailwind CSS configuration
  • Proper project structure
  • React Router setup

βœ… Task 2: Component Architecture

  • Reusable Button component with variants
  • Card component with compound pattern
  • Navbar with responsive navigation
  • Footer with comprehensive links
  • Layout component integration

βœ… Task 3: State Management & Hooks

  • TaskManager with full CRUD operations
  • useState, useEffect, useContext implementation
  • Custom useLocalStorage hook
  • ThemeContext for dark/light mode

βœ… Task 4: API Integration

  • JSONPlaceholder API integration
  • Loading and error states
  • Pagination implementation
  • Search functionality
  • Multiple API endpoints

βœ… Task 5: Tailwind CSS Styling

  • Responsive design (mobile, tablet, desktop)
  • Dark/light theme implementation
  • Utility classes for layout and styling
  • Hover effects and animations
  • Consistent design system

πŸŽ‰ Additional Enhancements

  • TypeScript-ready architecture
  • Advanced error handling
  • Performance optimizations
  • Accessibility features
  • Professional documentation
  • Deployment-ready configuration

About

plp-mern-stack-development-classroom-react-js-jsx-and-css-mastering-front-end-development-MERN-Stack created by GitHub Classroom

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.3%
  • CSS 6.0%
  • HTML 0.7%