Skip to content

Repository files navigation

InspirePixel Hero

🎨 InspirePixel

Where landscapes turn into inspiration

Vue 3 Vite License

A premium visual inspiration platform featuring stunning landscapes, exclusive content, and a seamless Pro experience.

πŸš€ Live Demo β€’ πŸ“– Documentation β€’ πŸ’Ž Go Pro


✨ Features

🎯 Core Features

  • πŸ–ΌοΈ Curated Gallery - High-quality landscape photography
  • πŸ” Smart Search - Find inspiration instantly with debounced search
  • ❀️ Favorites System - Save and organize your favorite images
  • πŸ“± Fully Responsive - Seamless experience across all devices
  • πŸŒ™ Modern UI/UX - Glassmorphism, gradients, and smooth animations
  • πŸ€– AI Descriptions - Automatic image descriptions powered by Hugging Face

πŸ’Ž Pro Features

  • πŸ”“ Premium Content - Access exclusive high-resolution images
  • ⬇️ 4K Downloads - Download images in full quality
  • 🎨 Pro Gallery - Exclusive collection from Unsplash API
  • βœ‰οΈ Email Validation - LGPD-compliant Pro activation
  • πŸ† Pro Badge - Visual distinction with premium branding

πŸ€– AI-Powered Features

  • 🧠 Hugging Face Integration - Free AI image captioning using VIT-GPT2 model
  • πŸ“ Smart Fallbacks - 30+ categories with creative descriptions when API unavailable
  • πŸ’Ύ Intelligent Caching - LocalStorage caching prevents repeated API calls
  • 🎯 Category Detection - Automatic category extraction from image URLs
  • ⚑ Real-time Generation - Instant description generation with loading states

πŸ” Authentication System

  • πŸ“§ Email Validation - Secure user registration
  • πŸ”’ Password Protection - Minimum 6 characters
  • πŸ’Ύ Persistent Sessions - Stay logged in across sessions
  • 🎫 Pro Upgrade Flow - Seamless transition to premium

πŸ“¬ Newsletter Integration

  • βœ‰οΈ Firebase Google Forms - Automated email confirmations
  • βœ… Email Validation - Regex-based validation
  • πŸ’Ύ Fallback Storage - LocalStorage backup
  • 🎨 Premium Design - Gradient form with animations

πŸ€– AI Description System

How It Works

  1. Primary AI Generation - Uses Hugging Face's VIT-GPT2 model for intelligent image captioning
  2. Smart Category Detection - Automatically extracts image categories from URLs (nature, architecture, people, etc.)
  3. Creative Fallbacks - When API fails, provides category-specific creative descriptions
  4. Intelligent Caching - Stores descriptions in localStorage to prevent redundant API calls
  5. Real-time UI - Shows loading states and instant feedback

Supported Categories

The system supports 30+ image categories with unique creative descriptions:

  • Nature: "Majestic natural scenery showcasing the harmony between earth and sky"
  • Architecture: "Impressive architectural marvel showcasing human ingenuity and design"
  • People: "Captivating portrait revealing the depth of human emotion and character"
  • Abstract: "Intriguing abstract composition exploring form, color, and texture"
  • City: "Vibrant urban landscape capturing the energy of modern city life"
  • Animals: "Fascinating wildlife portrait showcasing animal grace and natural behavior"
  • Food: "Appetizing culinary creation showcasing gastronomic artistry and flavor"
  • Technology: "Innovative technological marvel demonstrating human progress and ingenuity"
  • Travel: "Exotic destination capturing the allure of adventure and exploration"
  • Sports: "Dynamic athletic moment capturing the intensity of competitive spirit"
  • Fashion: "Elegant fashion statement showcasing style and contemporary trends"
  • Landscape: "Breathtaking panoramic vista celebrating the grandeur of natural landscapes"
  • Portrait: "Compelling portrait study revealing personality and human depth"
  • Black & White: "Timeless monochromatic composition emphasizing form and contrast"
  • Wallpaper: "Versatile background design offering aesthetic and functional appeal"
  • Background: "Versatile backdrop design providing clean and functional aesthetics"
  • Macro: "Intricate macro study revealing hidden details and microscopic beauty"
  • Aerial: "Spectacular aerial perspective showcasing geographical patterns and scale"
  • Vintage: "Nostalgic vintage composition evoking historical charm and character"
  • Minimalist: "Clean minimalist composition celebrating simplicity and essential forms"
  • Ocean: "Majestic ocean vista celebrating the power and beauty of marine landscapes"
  • Forest: "Lush forest landscape celebrating biodiversity and natural harmony"
  • Mountain: "Majestic mountain landscape showcasing geological grandeur and scale"
  • Beach: "Idyllic beach scene celebrating coastal tranquility and natural beauty"
  • Flower: "Delicate floral composition celebrating botanical beauty and color diversity"
  • Car: "Sleek automotive design showcasing engineering excellence and style"
  • Building: "Impressive architectural structure showcasing design innovation and purpose"
  • Art: "Creative artistic composition showcasing imaginative expression and vision"
  • Music: "Dynamic musical composition celebrating rhythm, melody, and artistic expression"
  • Dance: "Graceful dance composition celebrating movement, rhythm, and human expression"

πŸ› οΈ Tech Stack

Frontend

  • Vue 3 - Composition API with <script setup>
  • Vue Router - SPA navigation with guards
  • Vite - Lightning-fast build tool
  • SCSS - Advanced styling with variables

Libraries & APIs

  • @iconify/vue - 200,000+ icons
  • Hugging Face - Free AI image captioning API
  • Firebase - Firebase integration for authentication and storage
  • Unsplash API - High-quality image source (Pro)
  • Spotify Web API - Music integration for an immersive experience

Code Quality

  • Semantic HTML - <main>, <section>, <article>, <nav>
  • Accessibility - ARIA labels, roles, keyboard navigation
  • Clean Architecture - Composables, reusable components
  • Modern Patterns - Reactive state, computed properties

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm

Installation

# Clone the repository
git clone https://github.com/bia024/ipx.git
cd inspirapixel

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Add your API credentials to .env

# Start development server
npm run dev

Environment Variables

Create a .env file in the root directory:

VITE_UNSPLASH_ACCESS_KEY=your_unsplash_key
VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id
VITE_HF_API_KEY=your_hugging_face_api_key

πŸ“‚ Project Structure

inspirapixel/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/          # Images and static files
β”‚   β”œβ”€β”€ components/      # Reusable Vue components
β”‚   β”‚   β”œβ”€β”€ Header.vue
β”‚   β”‚   β”œβ”€β”€ Hero.vue
β”‚   β”‚   β”œβ”€β”€ Gallery.vue
β”‚   β”‚   β”œβ”€β”€ Footer.vue
β”‚   β”‚   β”œβ”€β”€ AuthModal.vue
β”‚   β”‚   β”œβ”€β”€ ToastNotification.vue
β”‚   β”‚   └── BackToActions.vue
β”‚   β”œβ”€β”€ composables/     # Vue composables
β”‚   β”‚   β”œβ”€β”€ useAuth.js
β”‚   β”‚   β”œβ”€β”€ useToast.js
β”‚   β”‚   β”œβ”€β”€ useLLM.js
β”‚   β”‚   └── useUnsplash.js (planned)
β”‚   β”œβ”€β”€ views/           # Page components
β”‚   β”‚   β”œβ”€β”€ HomeView.vue
β”‚   β”‚   β”œβ”€β”€ ModeSelectionView.vue
β”‚   β”‚   β”œβ”€β”€ ContactView.vue
β”‚   β”‚   β”œβ”€β”€ InstitutionalView.vue
β”‚   β”‚   β”œβ”€β”€ PrivacyPolicyView.vue
β”‚   β”‚   β”œβ”€β”€ TermsView.vue
β”‚   β”‚   └── CopyrightView.vue
β”‚   β”œβ”€β”€ router/          # Vue Router config
β”‚   β”œβ”€β”€ App.vue          # Root component
β”‚   └── main.js          # Entry point
β”œβ”€β”€ public/              # Public assets
└── index.html           # HTML template

🎨 Key Components

🏠 Hero Section

  • Split-screen layout with search and Pro showcase
  • Debounced search with URL sync
  • Animated premium card with call-to-action

πŸ–ΌοΈ Gallery

  • Lazy loading with Intersection Observer
  • Premium content locking for Free users
  • Favorites system with localStorage
  • Responsive grid layout
  • AI-powered description generation

πŸ” Authentication Modal

  • Tab-based UI (Login/Register)
  • Real-time validation
  • Toast notifications
  • Smooth animations

πŸ“§ Newsletter Form

  • Email validation
  • Firebase integration
  • Loading states
  • Success/error feedback

πŸ’Ž Pro Mode

How It Works

  1. Select Pro - Choose Pro plan on mode selection page
  2. Login Required - Must be authenticated to upgrade
  3. Email Validation - Email must match account (LGPD compliance)
  4. Confirmation - Receive validation email
  5. Unlock Content - Access premium features instantly

Pro Benefits

Feature Free Pro
Gallery Access βœ… Limited βœ… Full
Image Quality Standard 4K
Downloads ❌ βœ… Unlimited
Exclusive Content ❌ βœ…
Pro Badge ❌ βœ…
Priority Support ❌ βœ…

🎯 Roadmap

  • Core gallery functionality
  • Authentication system
  • Pro/Free mode distinction
  • Newsletter integration
  • Semantic HTML refactoring
  • AI-powered image descriptions
  • Unsplash API integration
  • Image lightbox/modal
  • Backend API
  • Payment integration
  • User dashboard
  • Social sharing

🀝 Contributing

Contributions are welcome! Please follow these steps:

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

πŸ“„ License

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


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

Bianca Caetano - Software Engineer Student

Passionate about crafting immersive digital experiences that inspire creativity and innovation using Vue.js, Vite, and modern web technologies.


πŸ™ Acknowledgments


⭐ Star this repo if you find it helpful!

Made with πŸ’œ by Bianca Caetano

Back to Top ↑

About

InspirePixel is a visual inspiration platform built with Vue 3 and Vite, featuring a curated gallery of high-quality landscapes, smart search, favorites management, user authentication, and newsletter integration. The platform includes a Pro mode with exclusive premium content, 4K downloads, and enhanced features. Designed with a clean architecture

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages