Skip to content

Releases: sahaib/TheRealPopCollectionShop

Release Notes - TRPC Shop v1.2.1 🚀

29 Nov 13:11

Choose a tag to compare

New Features ✨

User Profile System 👤

  • Implemented animated profile cards with user information display
  • Added member since tracking and email display
  • Interactive profile statistics for favorites and orders

Shopping Cart 🛒

  • Persistent cart storage with user-specific data
  • Add/Remove items functionality
  • Real-time cart count updates
  • Price calculation and total management

Favorites System ❤️

  • User-specific favorites storage
  • Add/Remove favorites with toast notifications
  • Persistent favorites across sessions
  • Favorites counter in profile

Movie Catalog 🎬

  • New releases section with pre-order capability
  • Detailed movie cards with dynamic image loading
  • Movie categorization system
  • Price display and purchase options

UI/UX Improvements 🎨

  • Dark mode support across all components
  • Animated interactions using Framer Motion
  • Toast notifications for user actions
  • Responsive grid layouts for product listings
  • Loading states and error handling

Technical Improvements 🛠️

Data Management 💾

  • Local storage implementation for cart and favorites
  • Session-based user data handling
  • Type safety improvements across components

Performance ⚡

  • Lazy loading for images
  • Client-side state management optimization
  • Efficient data fetching patterns

Code Structure 📁

  • Modular component architecture
  • Consistent error handling
  • Type-safe props and interfaces
  • Reusable hooks for common functionality

Bug Fixes 🐛

  • Fixed cart item removal functionality
  • Resolved favorites persistence issues
  • Fixed image loading fallbacks
  • Corrected price calculation in cart

Known Issues 🚧

  • Profile page header overlap needs adjustment
  • Cart removal confirmation needed
  • Favorites sync between multiple tabs

Coming Soon 🔜

  • Order history implementation
  • Payment gateway integration
  • Advanced search functionality
  • User reviews and ratings system

Contributors: @sahaib
Version: 1.2.1
Release Date: 2024-11-29

Release v1.0.1

29 Nov 11:32

Choose a tag to compare

🚀 Release v1.0.1 - November 2024

✨ New Features

Search & Movie Management

  • 🔍 Improved search functionality with better accuracy and performance
  • 📝 Added Movie Entry Form for administrators
  • 🎬 Enhanced TMDB integration for movie data fetching
  • 🖼️ Automated movie poster updates through TMDB API

User Experience

  • ❤️ Redesigned favorites system with improved state management
  • 🛒 Enhanced cart functionality with real-time updates
  • 🔐 Improved authentication flow with NextAuth.js
  • 🌓 Added dark mode support
  • 🎨 New responsive movie card design

Backend Improvements

  • 🗃️ Optimized database queries for favorites and cart operations
  • 🔒 Enhanced API route security
  • 🚦 Added proper error handling across all API endpoints

Admin Features

  • 🎯 New admin dashboard for movie management
  • 📊 Protected admin routes with email verification
  • 🔄 Automated movie data synchronization

🔍 Key Implementation Details

TMDB Integration

async function getMovieDetails(title: string, year: number) {
if (!process.env.TMDB_API_KEY) {
throw new Error('TMDB_API_KEY not found in environment variables');
}
console.log(🔍 Fetching details for: ${title} (${year}));
const response = await fetch(
https://api.themoviedb.org/3/search/movie?api_key=${process.env.TMDB_API_KEY}&query=${encodeURIComponent(title)}&year=${year}
);
if (!response.ok) {
throw new Error(TMDB API error: ${response.status});
}
const data = await response.json();
return data.results?.[0] || null;
}

Enhanced Favorites System

export async function POST(request: Request) {
try {
const session = await getServerSession(authOptions)
if (!session?.user?.email) {
return NextResponse.json(
{ error: 'You must be signed in to manage favorites' },
{ status: 401 }
)
}
const { title } = await request.json()
const user = await prisma.user.findUnique({
where: { email: session.user.email },
include: { favorites: true }
})
// ... rest of the implementation
} catch (error) {
console.error('Error updating favorites:', error)
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
)
}
}

🐛 Bug Fixes

  • Fixed movie poster loading issues
  • Resolved favorites synchronization problems
  • Fixed cart state persistence issues
  • Corrected movie category assignment
  • Improved error handling in movie data updates

🔧 Technical Improvements

  • Updated all major dependencies
  • Implemented proper TypeScript types across the application
  • Optimized build process
  • Enhanced error logging
  • Improved code organization and modularity

📚 Documentation

  • Added comprehensive API documentation
  • Updated deployment instructions
  • Added contributor guidelines
  • Improved code comments and type definitions

🔜 Coming Soon

  • Enhanced search filters
  • User reviews and ratings
  • Improved recommendation system
  • Payment integration
  • Email notifications

🛠️ Installation

npm install
npx prisma generate
npm run build

💡 Notes

  • Please update your .env file with the new required variables
  • Run database migrations before deploying
  • Clear browser cache after updating to this version

🔑 Required Environment Variables

DATABASE_URL=
DIRECT_URL=
PULSE_API_KEY=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
SENDGRID_API_KEY=
RECAPTCHA_SECRET_KEY=
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=
NEXT_PUBLIC_TMDB_API_KEY=
NEXT_PUBLIC_TMDB_IMAGE_BASE_URL=
PRISMA_ENGINE_TYPE=
PRISMA_CLIENT_ENGINE_TYPE=
TMDB_API_KEY=

🙏 Acknowledgments

  • TMDB API for movie data
  • NextAuth.js team
  • Prisma team
  • All contributors

📝 License

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


Made with ❤️ by @sahaib