Skip to content

Som-Dvps/Som-Movie-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
SOM Music Banner

🎬 SOM Music - Movie & Series Discovery Platform

Your ultimate destination for discovering movies, series, and entertainment content with a modern, sleek interface.

React React Router OMDb API


✨ Features

  • πŸŽ₯ Infinite Scrolling - Seamlessly browse through thousands of movies and series
  • πŸ” Smart Search - Powerful search functionality with real-time results
  • 🎭 Genre Filtering - Browse by Movies, Series, Drama, Horror, and American content
  • ❀️ Favorites System - Save and manage your favorite movies with localStorage persistence
  • πŸŒ“ Dark/Light Mode - Toggle between themes with smooth transitions
  • πŸ“± Responsive Design - Optimized for desktop, tablet, and mobile devices
  • 🎨 Modern UI/UX - Netflix-inspired interface with glassmorphism effects
  • πŸ“§ Contact Form - Integrated Formspree contact system
  • ⚑ Fast Performance - Optimized React components with lazy loading

πŸ“Έ Visual Demo

🎬 Popular Movies

Discover trending and popular movies with our intuitive interface. Each movie card displays high-quality posters, release years, and quick access to detailed information. The infinite scroll feature ensures you never run out of content to explore.

Key Features:

  • 🎯 Instant movie details on click
  • ❀️ One-tap favorite functionality
  • πŸ–ΌοΈ High-resolution poster images
  • ⚑ Lightning-fast loading with lazy loading
Popular Movies

πŸ“Ί Series Collection

Browse through an extensive collection of TV series and shows from around the world. Our series section offers the same seamless experience as movies, with detailed episode information and ratings.

What You Get:

  • πŸ“Š Complete series information
  • ⭐ IMDb ratings and reviews
  • πŸ“… Release dates and years
  • 🎭 Genre classifications
Series Collection

πŸ‘» Horror Genre

Explore spine-chilling horror movies and series curated for thrill-seekers. Our horror collection features classics and modern masterpieces, all organized for easy discovery.

Horror Features:

  • πŸŽƒ Curated horror collections
  • πŸ” Filter by sub-genres
  • πŸ“ˆ Trending horror content
  • πŸŒ™ Perfect for dark mode viewing
Horror Genre

🎭 Drama Collection

Dive into compelling drama content from around the world. From award-winning films to critically acclaimed series, our drama section has something for every mood.

Drama Highlights:

  • πŸ† Award-winning titles
  • 🌍 International content
  • πŸ’« Critically acclaimed picks
  • πŸ“– Rich storytelling experiences
Drama Collection

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn package manager
  • OMDb API Key (Get one free here)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd movie-app
  2. Install dependencies

    npm install
  3. Configure Environment Variables

    Create a .env file in the root directory:

    REACT_APP_FORMSPREE_API=https://formspree.io/f/your-form-id
  4. Start the development server

    npm start
  5. Open your browser

    Navigate to http://localhost:3000


πŸ› οΈ Tech Stack

Frontend

  • React 19.2.3 - Modern UI library
  • React Router DOM 6.30.2 - Client-side routing
  • CSS3 - Custom styling with CSS variables

APIs & Services

  • OMDb API - Movie and series data
  • Formspree - Contact form backend

Development Tools

  • React Scripts 5.0.1 - Build tooling
  • Testing Library - Component testing
  • Web Vitals - Performance monitoring

πŸ“ Project Structure

movie-app/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ som movies free.png      # App logo
β”‚   β”œβ”€β”€ favicon.ico              # Browser icon
β”‚   └── index.html               # HTML template
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/                  # Images and media
β”‚   β”‚   β”œβ”€β”€ som music bgc.jpg
β”‚   β”‚   └── screenshots/
β”‚   β”œβ”€β”€ components/              # Reusable components
β”‚   β”‚   β”œβ”€β”€ Header.js
β”‚   β”‚   β”œβ”€β”€ Header.css
β”‚   β”‚   β”œβ”€β”€ MovieCard.js
β”‚   β”‚   └── MovieCard.css
β”‚   β”œβ”€β”€ pages/                   # Page components
β”‚   β”‚   β”œβ”€β”€ Home.js
β”‚   β”‚   β”œβ”€β”€ Home.css
β”‚   β”‚   β”œβ”€β”€ MovieDetails.js
β”‚   β”‚   β”œβ”€β”€ MovieDetails.css
β”‚   β”‚   β”œβ”€β”€ Favorites.js
β”‚   β”‚   β”œβ”€β”€ Favorites.css
β”‚   β”‚   β”œβ”€β”€ Contact.js
β”‚   β”‚   └── Contact.css
β”‚   β”œβ”€β”€ utils/                   # Utility functions
β”‚   β”‚   β”œβ”€β”€ api.js               # API calls
β”‚   β”‚   β”œβ”€β”€ ThemeContext.js      # Theme management
β”‚   β”‚   └── FavoritesContext.js  # Favorites state
β”‚   β”œβ”€β”€ App.js                   # Main app component
β”‚   β”œβ”€β”€ App.css                  # Global styles
β”‚   └── index.js                 # Entry point
β”œβ”€β”€ .env                         # Environment variables
β”œβ”€β”€ package.json                 # Dependencies
└── README.md                    # Documentation

🎨 Key Features Explained

πŸ”„ Infinite Scrolling

The home page implements infinite scrolling using the Intersection Observer API, automatically loading more content as you scroll down. This provides a seamless browsing experience without pagination.

🎯 Mega Menu Navigation

A Supabase-inspired dropdown menu organizes content by:

  • Genres: Movies, Series, Drama
  • Collections: Horror, American content
  • Quick Access: Favorites

πŸ’Ύ Local Storage Persistence

  • Favorites: Saved movies persist across sessions
  • Theme Preference: Dark/light mode choice is remembered
  • User Settings: All preferences stored locally

🎨 Theme System

Dynamic theming with CSS variables:

  • Dark Mode (Default): Optimized for low-light viewing
  • Light Mode: Clean, bright interface
  • Smooth transitions between themes

πŸ”§ Available Scripts

npm start

Runs the app in development mode at http://localhost:3000

npm test

Launches the test runner in interactive watch mode

npm run build

Builds the app for production to the build folder

  • Optimized and minified
  • Ready for deployment

npm run eject

⚠️ One-way operation - Ejects from Create React App


🌐 API Integration

OMDb API

The application uses the OMDb API for fetching movie data:

// Example API call
const API_KEY = '242bc620';
const BASE_URL = 'https://www.omdbapi.com/';

// Search movies
fetch(`${BASE_URL}?apikey=${API_KEY}&s=batman&page=1`)

Key Endpoints:

  • Search: ?s={query}&page={page}
  • Details: ?i={imdbID}
  • Popular: ?s=movie&page={page}

πŸ“± Responsive Design

The application is fully responsive with breakpoints:

  • Desktop: 1200px+
  • Tablet: 768px - 1199px
  • Mobile: < 768px

Features adapt seamlessly:

  • Mega menu β†’ Mobile drawer
  • Grid layouts adjust columns
  • Touch-optimized interactions

🎯 Browser Support

  • βœ… Chrome (latest)
  • βœ… Firefox (latest)
  • βœ… Safari (latest)
  • βœ… Edge (latest)
  • ⚠️ IE11 (not supported)

🀝 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.


πŸ“ž Contact

For questions, feedback, or support:


πŸ™ Acknowledgments

  • OMDb API for providing movie data
  • React for the amazing framework
  • Formspree for contact form handling
  • Design inspiration from Netflix and modern streaming platforms

Made with ❀️ by the SOM Music Team

Β© 2025 SOM Music. All rights reserved.

About

A modern, feature-rich movie and series discovery platform built with React 19. Browse thousands of movies and TV shows with infinite scrolling, smart search, genre filtering, and a favorites system. Features a Netflix-inspired UI with dark/light themes, glassmorphism effects, and responsive design. Powered by OMDb API.

Topics

Resources

License

MIT, Apache-2.0 licenses found

Licenses found

MIT
LICENSE
Apache-2.0
LICENSE-APACHE

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors