Skip to content

Portfolio of React applications showcasing various components, features, and practical implementations of modern JavaScript frameworks and CSS styling

Notifications You must be signed in to change notification settings

HHHAAAANNNNN/ReactProjects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

ReactProjects

A collection of 5 diverse React applications demonstrating various frontend development concepts and practical use cases.

📋 Projects Overview

1. Simple Notes App

A minimalist note-taking application that allows users to create, edit, and delete notes.

Features:

  • Create new notes with title and content
  • Edit existing notes
  • Delete notes
  • Persistent storage using localStorage
  • Clean and intuitive user interface
  • Responsive design for mobile and desktop

Technologies:

  • React Hooks (useState, useEffect)
  • localStorage API
  • CSS3 for styling

2. Weather App

A real-time weather application that fetches and displays current weather information for any location.

Features:

  • Search weather by city name
  • Display current temperature, humidity, and weather conditions
  • Weather icons based on conditions
  • 5-day weather forecast
  • Geolocation support to get local weather
  • Temperature unit conversion (Celsius/Fahrenheit)

Technologies:

  • React Hooks
  • Weather API integration (OpenWeatherMap or similar)
  • Fetch API for HTTP requests
  • CSS3 with animations

3. Quiz App

An interactive quiz application with multiple-choice questions and score tracking.

Features:

  • Multiple-choice questions
  • Real-time score calculation
  • Progress indicator
  • Timer for each question
  • Final score display with performance feedback
  • Option to restart the quiz
  • Different quiz categories

Technologies:

  • React Hooks (useState, useEffect)
  • Component composition
  • Conditional rendering
  • State management

4. Pomodoro Timer

A productivity timer based on the Pomodoro Technique to help manage work and break intervals.

Features:

  • 25-minute work sessions
  • 5-minute short breaks
  • 15-minute long breaks after 4 sessions
  • Start, pause, and reset functionality
  • Session counter
  • Audio notifications when timers complete
  • Customizable timer durations
  • Progress visualization

Technologies:

  • React Hooks (useState, useEffect, useRef)
  • setInterval/setTimeout for timer logic
  • Audio API for notifications
  • CSS animations

5. GIF Search

A GIF search engine that allows users to search and browse animated GIFs.

Features:

  • Search GIFs by keyword
  • Display trending GIFs
  • Grid layout with infinite scroll
  • Copy GIF URL to clipboard
  • Preview GIFs on hover
  • Responsive masonry layout
  • Share functionality

Technologies:

  • React Hooks
  • GIPHY API integration
  • Infinite scroll implementation
  • Clipboard API
  • CSS Grid/Flexbox

🚀 Getting Started

Prerequisites

Before you begin, ensure you have the following installed on your machine:

  • Node.js (version 14.0 or higher)

    • Download from nodejs.org
    • Verify installation: node --version
  • npm (comes with Node.js) or yarn

    • Verify npm: npm --version
    • Or install yarn: npm install -g yarn
  • Git

    • Download from git-scm.com
    • Verify installation: git --version

Installation

Follow these steps to set up the repository locally:

  1. Clone the repository

    git clone https://github.com/HHHAAAANNNNN/ReactProjects.git
  2. Navigate to the project directory

    cd ReactProjects
  3. Install dependencies for each project

    Each project is contained in its own directory. Navigate to each project and install dependencies:

    # Simple Notes App
    cd simple-notes-app
    npm install
    cd ..
    
    # Weather App
    cd weather-app
    npm install
    cd ..
    
    # Quiz App
    cd quiz-app
    npm install
    cd ..
    
    # Pomodoro Timer
    cd pomodoro-timer
    npm install
    cd ..
    
    # GIF Search
    cd gif-search
    npm install
    cd ..

    Note: If you're using yarn, replace npm install with yarn install

  4. Set up environment variables (if required)

    Some projects may require API keys:

    • Weather App: Create a .env file in the weather-app directory

      REACT_APP_WEATHER_API_KEY=your_openweathermap_api_key
      
    • GIF Search: Create a .env file in the gif-search directory

      REACT_APP_GIPHY_API_KEY=your_giphy_api_key
      

    How to get API keys:


🏃 Running the Projects

Each project runs independently on its own development server.

Running Individual Projects

1. Simple Notes App

cd simple-notes-app
npm start

The app will open at http://localhost:3000

2. Weather App

cd weather-app
npm start

The app will open at http://localhost:3000

3. Quiz App

cd quiz-app
npm start

The app will open at http://localhost:3000

4. Pomodoro Timer

cd pomodoro-timer
npm start

The app will open at http://localhost:3000

5. GIF Search

cd gif-search
npm start

The app will open at http://localhost:3000

Note: Only one project can run on port 3000 at a time. If you want to run multiple projects simultaneously, you'll be prompted to run on a different port (e.g., 3001, 3002, etc.).


🛠️ Building for Production

To create an optimized production build for any project:

cd [project-directory]
npm run build

This creates a build folder with optimized production files ready for deployment.


📁 Project Structure

ReactProjects/
├── simple-notes-app/
│   ├── public/
│   ├── src/
│   ├── package.json
│   └── README.md
├── weather-app/
│   ├── public/
│   ├── src/
│   ├── package.json
│   ├── .env
│   └── README.md
├── quiz-app/
│   ├── public/
│   ├── src/
│   ├── package.json
│   └── README.md
├── pomodoro-timer/
│   ├── public/
│   ├── src/
│   ├── package.json
│   └── README.md
├── gif-search/
│   ├── public/
│   ├── src/
│   ├── package.json
│   ├── .env
│   └── README.md
└── README.md

🧪 Testing

To run tests for any project:

cd [project-directory]
npm test

This launches the test runner in interactive watch mode.


🤝 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new features
  • Submit pull requests

📝 License

This project is open source and available under the MIT License.


👤 Author

Farhan Nugraha


🙏 Acknowledgments

  • Create React App for project bootstrapping
  • OpenWeatherMap API for weather data
  • GIPHY API for GIF content
  • React community for excellent documentation and resources

Happy Coding! 🚀

About

Portfolio of React applications showcasing various components, features, and practical implementations of modern JavaScript frameworks and CSS styling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •