Skip to content

Latest commit

ย 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ–ผ๏ธ Image Explorer

๐Ÿš€ Live Demo: https://image-explorer-web-app.vercel.app/

๐Ÿ” Discover. Upload. Download. Explore.

A modern and interactive image discovery platform powered by Pexels, Pixabay & Unsplash APIs with performance optimization.


Image Explorer HTML5 CSS3 JavaScript API


GitHub LinkedIn


โœจ About The Project

Image Explorer is a modern web application designed to make image discovery simple, fast, and enjoyable.

Users can search for high-quality images using keywords, explore results from multiple image APIs, upload their own images, preview images in a beautiful modal, and download images instantly.

The project also includes a simple authentication system using LocalStorage, allowing users to create an account and maintain a personalized session.

๐Ÿš€ Built with pure HTML, CSS and JavaScript โ€” no frontend framework required.


๐Ÿ  Home Page

ImageLens Homepage

The Home Page serves as the primary hub for ImageLens, allowing users to discover, search, and explore high-resolution images seamlessly.

โœจ Key Features

  • Hero Search Bar: Instant image search with real-time query suggestions.
  • Featured Collections: Curated categories and trending visual topics.
  • Responsive Grid: Dynamic layout optimized for desktop, tablet, and mobile viewing.

Home Page Screenshot

Powered by Code With Vishesh

  • โœจ Beautiful gradient UI with particle animations
  • ๐Ÿ” Instant search across 3 image APIs (Pexels, Pixabay, Unsplash)
  • ๐ŸŽจ Modern dark theme with vibrant accents
  • ๐Ÿ’ซ Smooth animations and transitions
  • ๐Ÿ“ฑ Fully responsive design
  • โšก Lightning-fast image loading

๏ฟฝ๐ŸŽฏ Why Image Explorer?

Finding the right image shouldn't feel complicated.

Image Explorer brings multiple useful features together in one clean interface:

๐Ÿ”Ž Search Images
      โ†“
๐ŸŒ Fetch Results
      โ†“
๐Ÿ–ผ๏ธ Explore Gallery
      โ†“
๐Ÿ‘๏ธ Preview Full Size
      โ†“
โฌ‡๏ธ Download Image

Whether you're looking for wallpapers, nature photography, technology images, travel inspiration, or creative assets โ€” Image Explorer gives you a smooth way to discover them.


๐Ÿš€ Features

๐Ÿ” Smart Image Search

Search for images using simple keywords.

Image Explorer fetches results dynamically from:

  • ๐Ÿ“ธ Pexels API
  • ๐ŸŒŽ Pixabay API
  • ๐ŸŽจ Unsplash API (via secure Express proxy)

Results from all 3 providers are merged and displayed instantly in a responsive gallery.


๐Ÿ–ผ๏ธ Dynamic Image Gallery

Explore images through a clean and modern gallery interface.

Gallery features:

  • Responsive grid layout
  • Image hover animations
  • Smooth transitions
  • Lazy image loading
  • Dynamic API results
  • Beautiful image cards
  • Mobile-friendly layout

๐Ÿ“ค Image Upload

Users can upload their own images directly into the application.

Uploaded images are automatically added to the gallery and can be viewed alongside API results.


๐Ÿ‘๏ธ Full-Screen Image Modal

Click any image to open a larger preview.

The modal provides:

  • Full-size image preview
  • Photographer information
  • Image source
  • Download option
  • Close interaction
  • Smooth opening animation

โฌ‡๏ธ Instant Downloads

Download images directly from the image preview modal.

No unnecessary navigation.

One click โ†’ Download.


๐Ÿ” User Authentication

Image Explorer includes a simple authentication system.

Authentication features:

  • ๐Ÿ“ User Signup
  • ๐Ÿ”‘ User Login
  • ๐Ÿšช Logout
  • ๐Ÿ’พ Session management
  • ๐Ÿ‘ค Personalized user experience

User account and session information is stored using:

LocalStorage

โš ๏ธ This authentication system is designed for learning/demo purposes. Production applications should use secure server-side authentication and password hashing.


๐ŸŽจ Modern UI / UX

The interface focuses on a clean and interactive user experience.

UI highlights:

  • โœจ Gradient headings
  • ๐ŸŒˆ Modern color combinations
  • ๐ŸชŸ Clean cards
  • ๐ŸŽฏ Interactive buttons
  • ๐Ÿ’ซ Hover animations
  • ๐Ÿ”„ Smooth transitions
  • ๐Ÿ“ฑ Responsive design
  • ๐Ÿ–ผ๏ธ Image-focused layout
  • โšก Fast interactions

๐Ÿ› ๏ธ Technologies Used

Technology Purpose
๐ŸŸง HTML5 Structure & semantic markup
๐Ÿ”ต CSS3 Styling, animations & responsive design
๐ŸŸจ JavaScript ES6+ Application logic & DOM manipulation
๐Ÿ’พ LocalStorage Authentication & session data
๐Ÿ“ธ Pexels API High-quality image search
๐ŸŒŽ Pixabay API Image search & discovery
๐ŸŽจ Unsplash API Professional photo search
๐ŸŸฉ Node.js + Express Backend proxy server
๐Ÿ” Environment Vars Secure API key management

๐Ÿ”Œ APIs Used

๐Ÿ“ธ Pexels API

Pexels provides high-quality stock photography and image search capabilities.

Used in this project for:

  • Image searching
  • Photographer information
  • Image previews
  • Image URLs

๐ŸŒŽ Pixabay API

Pixabay provides a large collection of images that can be searched dynamically.

Used for:

  • Image discovery
  • Search results
  • Image previews
  • Additional image sources

๐ŸŽจ Unsplash API

Unsplash provides beautiful, high-quality professional photography.

Integration Method: Secure Express proxy server (API key kept server-side)

Used for:

  • Professional photo search
  • Extended image library
  • Photographer attribution
  • Enhanced search results

๐Ÿ”’ Secure Proxy Server

A Node.js/Express backend proxy server forwards Unsplash API requests securely:

  • ๐Ÿ” API key stored on server (never exposed to client)
  • ๐Ÿš€ Endpoint: http://localhost:3000/api/unsplash/search
  • โšก Handles rate limiting and error handling
  • ๐Ÿ“ก Merges Unsplash results with Pexels & Pixabay

Why? Protecting sensitive API keys from browser exposure ensures security and prevents abuse.


โšก Performance Optimizations

The application includes multiple performance enhancements:

  • ๐Ÿ“ฆ Lazy Loading: Images load only when visible in viewport
  • ๐ŸŽฏ Responsive Images: Correct image sizes for different screens (srcset/sizes)
  • ๐Ÿ”„ Async Decode: Images decode off main thread using decoding="async"
  • ๐Ÿ“Š Incremental Rendering: Gallery renders images in adaptive chunks (8-20 per batch)
  • โฑ๏ธ Scroll Throttling: Scroll events debounced with requestAnimationFrame (rAF)
  • ๐Ÿ‘๏ธ IntersectionObserver: Auto-load pagination when reaching end of feed
  • ๐Ÿšซ AbortController: Prevents stale requests from outdated searches overwriting results
  • ๐Ÿ’พ Search Caching: Repeated searches use cached results (instant display)

Result: Lightning-fast image loading even with large result sets!


โš™๏ธ How It Works

The application follows a complete workflow:

              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚   User Searches  โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚ JavaScript Logic โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ–ผ            โ–ผ            โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚ Pexels API   โ”‚   โ”‚ Pixabay API  โ”‚   โ”‚ Express Proxyโ”‚
   โ”‚ (Direct)     โ”‚   โ”‚ (Direct)     โ”‚   โ”‚โ†’ Unsplash APIโ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚                  โ”‚                  โ”‚
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ–ผ
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚ Merge Results    โ”‚
          โ”‚ (Dedup + Sort)   โ”‚
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚
                   โ–ผ
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚ Incremental      โ”‚
          โ”‚ Chunk Rendering  โ”‚
          โ”‚ (8-20 at a time) โ”‚
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ–ผ                     โ–ผ
    ๐Ÿ‘๏ธ Preview            โฌ‡๏ธ Download

Key Features in the Flow:

  • โœ… All 3 APIs queried in parallel
  • โœ… Results merged into single feed
  • โœ… Incremental rendering for performance
  • โœ… IntersectionObserver for auto-load pagination
  • โœ… AbortController to prevent stale updates

๐Ÿ“ Project Structure

Image-Explorer/
โ”‚
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ style.css
โ”œโ”€โ”€ script.js
โ”‚
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ images/
โ”‚   โ””โ”€โ”€ icons/
โ”‚
โ””โ”€โ”€ README.md

If your project uses a different folder structure, update this section according to your actual files.


๐Ÿ”‘ API Configuration

To run the project locally, you need API keys from:

  • ๐Ÿ“ธ Pexels
  • ๐ŸŒŽ Pixabay
  • ๐ŸŽจ Unsplash (optional - for enhanced results)

Frontend Configuration

Add your Pexels and Pixabay API credentials inside the JavaScript:

const PEXELS_KEY = "YOUR_PEXELS_API_KEY";
const PIXABAY_KEY = "YOUR_PIXABAY_API_KEY";

Backend Proxy Configuration (Unsplash)

The Unsplash API is served via a secure Express proxy server.

Set the environment variable before running the server:

# Windows PowerShell
$env:UNSPLASH_ACCESS_KEY="YOUR_UNSPLASH_ACCESS_KEY"
cd server
npm install
npm start

Or use the provided startup script:

.\start-server.ps1 -UnsplashKey "YOUR_UNSPLASH_ACCESS_KEY"

โš ๏ธ Important Security Notes

  • โœ… Pexels & Pixabay keys: OK to embed in frontend (they're public keys)
  • ๐Ÿ”’ Unsplash key: MUST be server-side only (via environment variable)
  • โš ๏ธ Never commit secrets to GitHub โ€” use .env files or environment variables
  • ๐Ÿ›ก๏ธ Production: Use proper secrets management (Heroku Config Vars, AWS Secrets Manager, etc.)

๐Ÿ’ป Installation & Setup

1๏ธโƒฃ Clone the Repository

git clone https://github.com/Code-With-Vishesh/Image-Explorer-Web-App-.git
cd Image-Explorer-Web-App-

2๏ธโƒฃ Install Server Dependencies (Optional - Only for Unsplash)

Move into the server directory and install dependencies:

cd server
npm install

3๏ธโƒฃ Set Environment Variables

Windows PowerShell:

$env:UNSPLASH_ACCESS_KEY="your_unsplash_key_here"

macOS/Linux (Bash):

export UNSPLASH_ACCESS_KEY="your_unsplash_key_here"

4๏ธโƒฃ Start the Proxy Server (Optional)

npm start

Expected output:

Unsplash proxy listening on http://localhost:3000

5๏ธโƒฃ Open the Project

Open index.html in your browser or use VS Code Live Server:

# Using Live Server extension in VS Code
Right-click index.html โ†’ Open with Live Server

โœ… Verify Everything Works

Open DevTools (F12) โ†’ Network tab โ†’ Search for an image

You should see API calls to:

  • โœ… api.pexels.com (Pexels)
  • โœ… pixabay.com/api (Pixabay)
  • โœ… localhost:3000/api/unsplash/search (Unsplash via proxy)
cd Image-Explorer

3๏ธโƒฃ Configure API Keys

Add your Pexels and Pixabay API keys according to your JavaScript configuration.


4๏ธโƒฃ Run the Project

You can simply open:

index.html

in your browser.

For the best development experience, use VS Code + Live Server.


๐ŸŒ Live Demo

๐Ÿš€ Live Demo: https://image-explorer-web-app.vercel.app/


๐Ÿ  Home Page

Home Page Screenshot

๐Ÿ” Search Results

Search Results Screenshot

๐Ÿ–ผ๏ธ Image Preview

Image Preview

๐Ÿ” Login / Signup

Login and Signup


๐Ÿ“ฑ Responsive Design

Image Explorer is designed to work across different screen sizes.

Supported devices:

๐Ÿ–ฅ๏ธ Desktop
       โ†“
๐Ÿ’ป Laptop
       โ†“
๐Ÿ“ฑ Tablet
       โ†“
๐Ÿ“ฑ Mobile

The layout automatically adapts to different screen sizes using responsive CSS.


โšก Key JavaScript Concepts Used

This project helped implement several important JavaScript concepts:

  • DOM Manipulation
  • Event Listeners
  • Fetch API
  • Async/Await
  • Promises
  • JSON Handling
  • API Integration
  • LocalStorage
  • Dynamic HTML Generation
  • Modal Components
  • File Upload Handling
  • Error Handling
  • Responsive UI interactions

๐Ÿง  What I Learned

Building Image Explorer helped me improve my practical understanding of:

๐ŸŒ Frontend Development

I learned how to create responsive and interactive interfaces using HTML and CSS.

โšก JavaScript

I practiced real-world JavaScript concepts including API requests, asynchronous programming, DOM manipulation, and event handling.

๐Ÿ”Œ API Integration

I learned how to work with third-party APIs and dynamically display external data inside a web application.

๐Ÿ’พ LocalStorage

I learned how browser storage can be used to save user information and maintain sessions.

๐ŸŽจ UI/UX

I improved my understanding of modern layouts, animations, hover effects, responsive design, and user interaction.


๐Ÿ”ฎ Future Improvements

The project can be extended with many exciting features.

Planned improvements:

  • โค๏ธ Like / Favorite Images
  • โญ Save Favorite Images
  • ๐Ÿ—‚๏ธ Create Image Collections
  • ๐ŸŒ™ Dark / Light Mode
  • ๐Ÿ”Ž Advanced Filters
  • ๐Ÿ“ Image Orientation Filters
  • ๐ŸŽจ Color-based Search
  • ๐Ÿ“œ Search History
  • ๐Ÿ” Backend Authentication
  • โ˜๏ธ Cloud Image Storage
  • ๐Ÿ‘ค User Profiles
  • ๐Ÿง  AI-powered Image Search
  • ๐Ÿ“ฑ Progressive Web App Support

๐Ÿ›ก๏ธ Security Note

This project uses browser LocalStorage for demonstration purposes.

It should not be considered a secure authentication system for production applications.

For a production-ready application, authentication should be handled using:

Frontend
   โ†“
Backend API
   โ†“
Authentication System
   โ†“
Secure Database

Passwords should never be stored as plain text.


๐Ÿค Contributing

Contributions are welcome!

If you have an idea that can improve Image Explorer:

1. Fork the repository

git fork

2. Create a new branch

git checkout -b feature/your-feature

3. Make your changes

Improve the project or add a new feature.

4. Commit your changes

git commit -m "Add new feature"

5. Push your branch

git push origin feature/your-feature

6. Create a Pull Request

Submit your Pull Request on GitHub.


โญ Support

If you found this project useful or interesting, consider giving it a โญ on GitHub.

It really helps and motivates me to build more projects! โค๏ธ


๐Ÿ‘จโ€๐Ÿ’ป Author

Vishesh Jaiswal

๐Ÿ’ป Frontend / Full-Stack Developer

Passionate about building modern, responsive and interactive web applications.


GitHub

LinkedIn


๐Ÿ“Š Project Highlights

๐Ÿ–ผ๏ธ Image Search
โšก Real-Time API Integration
๐Ÿ“ค Image Upload
โฌ‡๏ธ Instant Download
๐Ÿ” Authentication
๐Ÿ’พ LocalStorage
๐ŸŽจ Modern UI
๐Ÿ“ฑ Responsive Design
๐Ÿš€ Pure JavaScript

โค๏ธ Built With Passion

HTML โค๏ธ CSS โค๏ธ JavaScript

Built to learn. Built to improve. Built to create.


โญ If you like this project, don't forget to star the repository!


๐Ÿš€ Keep Coding. Keep Building. Keep Growing.


ยฉ 2026 Vishesh Jaiswal โ€” Image Explorer

About

A platform where you can: ๐Ÿ” Search images from Pexels & Pixabay APIs ๐Ÿ“ท Upload your own photos ๐Ÿ’พ Download images instantly โœจ Enjoy a modern, interactive, and responsive UI This project helped me strengthen my HTML, CSS, JavaScript skills and explore API integration in real-time.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages