Skip to content

A comprehensive React application showcasing modern UI components, authentication, and best practices

License

Notifications You must be signed in to change notification settings

Betelihemaraya/react-component-playground

Repository files navigation

React Component Playground

React Vite Tailwind CSS License: MIT GitHub

🎯 Purpose

The React Component Playground is a comprehensive demonstration application that showcases modern React development practices, component architecture, and user interface design. This project serves as both a learning resource and a portfolio piece, demonstrating proficiency in:

  • Component Architecture: Modular, reusable React components
  • State Management: Custom hooks and form handling
  • Routing: Single-page application navigation
  • Styling: Modern CSS with Tailwind CSS
  • Form Validation: User input validation and error handling
  • Responsive Design: Mobile-first, accessible interfaces

πŸš€ Technologies Used

Technology Version Purpose
React 19.0.0 Frontend framework
Vite 6.2.4 Build tool and development server
React Router DOM 7.4.1 Client-side routing
Tailwind CSS 3.4.17 Utility-first CSS framework
Formik 2.4.6 Form state management
React Hook Form 7.55.0 Form validation and handling
Yup 1.6.1 Schema validation
Heroicons 2.2.0 Icon library
Motion 12.6.2 Animation library
ESLint 9.21.0 Code linting and quality

✨ Features Implemented

πŸ” Authentication System

  • Login/Signup Forms: Complete user authentication flow
  • Form Validation: Real-time input validation with error messages
  • Responsive Design: Mobile-optimized authentication interfaces

πŸ“ Todo Management

  • CRUD Operations: Create, read, update, and delete todos
  • Custom Hooks: Reusable state management with useTodos
  • Form Handling: Add and edit todo items with validation
  • Alert System: User feedback for actions

πŸŽ›οΈ Interactive Components

  • Accordion Component: Collapsible content sections
  • Navigation Bar: Responsive navigation with active states
  • Custom Hooks: Reusable logic with useNavbar

🎨 User Experience

  • Responsive Design: Mobile-first approach
  • Modern UI: Clean, professional interface
  • Smooth Animations: Enhanced user interactions
  • Accessibility: Semantic HTML and keyboard navigation

πŸ—οΈ Code Quality

  • Modular Architecture: Feature-based folder structure
  • Component Composition: Reusable, maintainable components
  • Custom Hooks: Separation of logic and presentation
  • ESLint Configuration: Code quality and consistency
  • TypeScript Support: Type safety and better development experience

πŸš€ How to Run the Project

Prerequisites

  • Node.js (version 16 or higher)
  • npm or yarn package manager

Installation Steps

  1. Clone the repository

    git clone https://github.com/Betelihemaraya/react-component-playground.git
    cd react-component-playground
  2. Install dependencies

    npm install
  3. Start the development server

    npm run dev
  4. Open your browser

    • Navigate to http://localhost:5173
    • The application will automatically reload when you make changes

Available Scripts

npm run dev      # Start development server
npm run build    # Build for production
npm run preview  # Preview production build
npm run lint     # Run ESLint

πŸ“ Project Structure

react-component-playground/
β”œβ”€β”€ public/                     # Static assets
β”‚   └── vite.svg              # Vite logo
β”œβ”€β”€ src/                       # Source code
β”‚   β”œβ”€β”€ assets/               # Static assets
β”‚   β”‚   β”œβ”€β”€ css/              # CSS files
β”‚   β”‚   β”‚   └── wind.css      # Custom styles
β”‚   β”‚   └── react.svg         # React logo
β”‚   β”œβ”€β”€ features/             # Feature-based modules
β”‚   β”‚   β”œβ”€β”€ accordion/        # Accordion component feature
β”‚   β”‚   β”‚   β”œβ”€β”€ components/   # Accordion components
β”‚   β”‚   β”‚   └── pages/        # Accordion pages
β”‚   β”‚   β”œβ”€β”€ auth/             # Authentication feature
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx     # Login component
β”‚   β”‚   β”‚   β”œβ”€β”€ Signup.jsx    # Signup component
β”‚   β”‚   β”‚   └── validation.js # Form validation schemas
β”‚   β”‚   β”œβ”€β”€ navigation/       # Navigation feature
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx    # Navigation component
β”‚   β”‚   β”‚   └── useNavbar.jsx # Navigation hook
β”‚   β”‚   β”œβ”€β”€ pages/            # Main pages
β”‚   β”‚   β”‚   β”œβ”€β”€ About.jsx     # About page
β”‚   β”‚   β”‚   β”œβ”€β”€ Contact.jsx   # Contact page
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.jsx      # Home page
β”‚   β”‚   β”‚   └── Services.jsx  # Services page
β”‚   β”‚   └── todos/            # Todo management feature
β”‚   β”‚       β”œβ”€β”€ components/   # Todo components
β”‚   β”‚       β”œβ”€β”€ hooks/        # Custom hooks
β”‚   β”‚       └── pages/        # Todo pages
β”‚   β”œβ”€β”€ App.jsx               # Main application component
β”‚   └── main.jsx              # Application entry point
β”œβ”€β”€ assets/                    # Project assets
β”‚   β”œβ”€β”€ images/               # Images and diagrams
β”‚   └── screenshots/           # Application screenshots
β”œβ”€β”€ tests/                     # Test files
β”‚   └── App.test.js           # Main test file
β”œβ”€β”€ .gitignore                # Git ignore rules
β”œβ”€β”€ daily.md                  # Daily contribution log
β”œβ”€β”€ eslint.config.js          # ESLint configuration
β”œβ”€β”€ index.html                # HTML template
β”œβ”€β”€ LICENSE                   # MIT License
β”œβ”€β”€ package.json              # Dependencies and scripts
β”œβ”€β”€ postcss.config.js         # PostCSS configuration
β”œβ”€β”€ README.md                 # Project documentation
└── tailwind.config.js        # Tailwind CSS configuration

πŸ“Έ Screenshots

Home Page

Home Page Clean, modern homepage with navigation and feature highlights

Authentication

Login Page Responsive login form with validation

Signup Page User registration with form validation

Todo Management

Todo Page Interactive todo list with CRUD operations

Accordion Component

FAQ Page Collapsible accordion component for FAQs

Responsive Design

Mobile View Mobile-optimized responsive design

🀝 Contributing

We welcome contributions to improve the React Component Playground! Here's how you can contribute:

Getting Started

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

Development Guidelines

  • Follow the existing code style and structure
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting

Code Style

  • Use ESLint for code quality
  • Follow React best practices
  • Write clean, readable code
  • Add comments for complex logic

πŸ“„ License

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

πŸ‘¨β€πŸ’» Author

Betelihem Araya

πŸ™ Acknowledgments

  • React Team - For the amazing React framework
  • Vite Team - For the fast build tool
  • Tailwind CSS Team - For the utility-first CSS framework
  • Heroicons - For the beautiful icon set
  • Formik & React Hook Form - For excellent form handling libraries
  • Open Source Community - For the incredible tools and libraries

πŸ“Š Project Statistics

  • Components: 15+ reusable React components
  • Features: 4 major feature modules
  • Custom Hooks: 2 custom hooks for state management
  • Pages: 7 different application pages
  • Responsive: Mobile-first design approach
  • Accessibility: WCAG compliant components

⭐ Star this repository if you found it helpful!

πŸ”— Connect with me on LinkedIn for collaboration opportunities!

About

A comprehensive React application showcasing modern UI components, authentication, and best practices

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •