Your ultimate destination for discovering movies, series, and entertainment content with a modern, sleek interface.
- π₯ 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
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
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
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
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
- Node.js (v14 or higher)
- npm or yarn package manager
- OMDb API Key (Get one free here)
-
Clone the repository
git clone <repository-url> cd movie-app
-
Install dependencies
npm install
-
Configure Environment Variables
Create a
.envfile in the root directory:REACT_APP_FORMSPREE_API=https://formspree.io/f/your-form-id
-
Start the development server
npm start
-
Open your browser
Navigate to
http://localhost:3000
- React 19.2.3 - Modern UI library
- React Router DOM 6.30.2 - Client-side routing
- CSS3 - Custom styling with CSS variables
- OMDb API - Movie and series data
- Formspree - Contact form backend
- React Scripts 5.0.1 - Build tooling
- Testing Library - Component testing
- Web Vitals - Performance monitoring
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
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.
A Supabase-inspired dropdown menu organizes content by:
- Genres: Movies, Series, Drama
- Collections: Horror, American content
- Quick Access: Favorites
- Favorites: Saved movies persist across sessions
- Theme Preference: Dark/light mode choice is remembered
- User Settings: All preferences stored locally
Dynamic theming with CSS variables:
- Dark Mode (Default): Optimized for low-light viewing
- Light Mode: Clean, bright interface
- Smooth transitions between themes
Runs the app in development mode at http://localhost:3000
Launches the test runner in interactive watch mode
Builds the app for production to the build folder
- Optimized and minified
- Ready for deployment
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}
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
- β Chrome (latest)
- β Firefox (latest)
- β Safari (latest)
- β Edge (latest)
β οΈ IE11 (not supported)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, feedback, or support:
- Email: yousufmoha255@gmail.com
- WhatsApp: +252 90 668 0955
- 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.




