Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 6.09 KB

README.md

File metadata and controls

90 lines (67 loc) · 6.09 KB

ScreenPulse 🎬🎮

ScreenPulse is the frontend part of a full stack application built with Angular, integrating with a custom backend API built with Node.js and Express, and MongoDB Atlas for database storage. The frontend allows users to search for movies, series, or video games in the OMDB API, view detailed information, and save favorites to collections after registering and logging in.

Features ✨

  • Search: Search for movies, series, or video games
  • Sort: Sort results by title, year, or type
  • Details: Get detailed information such as director, actors, year, plot, etc.
  • Authentication: User registration and login for authentication and authorization
  • Favorites: Save items to your favorites collection
  • Favorites Page: Allows you to:
    • View all items, movies, series, or video games collections
    • Filter by title and sort by title or year
    • Add your own reviews/notes

Technologies & Libraries 🛠️

API Integration 🌐

  • ScreenPulse Backend API: This API server manages user authentication, connections to the MongoDB database, and requests to external APIs such as the OMDB API. It provides endpoints for user registration, login, saving favorites, and retrieving data from the database.
  • OMDB API: Provides the data source for movie, series, and video game information.

Angular Architecture 🏗️

ScreenPulse is optimized for modularity and scalability, using lazy loading for performance:

  • Core Module: Houses core functionalities like guards and services, eagerly loaded for application-wide availability.
  • Feature Modules: Each page or feature has its module with components, services, and routing configurations, lazily loaded to minimize initial load time.
  • Shared Module: Centralizes reusable components, services, and models for easy access across feature modules, fostering code reusability.
  • App Module and Routing: The main AppModule handles bootstrapping and imports the AppRoutingModule for application-level routing. Lazy loading improves performance by loading feature modules on-demand.

Lazy loading ensures swift load times, resource efficiency, and a seamless user experience while maintaining a modular codebase.

UX/UI Design 🎨

ScreenPulse combines ng-bootstrap, Angular Material, and custom components to create an engaging user experience. These libraries also speed up the development process and ensure consistency in page design.

Responsive 📱💻

ScreenPulse is designed to be responsive, ensuring a seamless user experience across all devices, including desktop computers, tablets, and mobile phones.

Desktop Devices 💻

ScreenPulse offers a rich and immersive experience on desktop devices, with a spacious layout that maximizes screen real estate and enhances usability.

Macbook-Air-localhost Macbook-Air-localhost (5) Macbook-Air-localhost (2) Macbook-Air-localhost (3) Macbook-Air-localhost (4)

Mobile Devices 📱

ScreenPulse offers a rich and immersive experience on desktop devices, with a spacious layout that maximizes screen real estate and enhances usability.

iPhone-12-PRO-localhost iPhone-12-PRO-localhost (5) iPhone-12-PRO-localhost (2) iPhone-12-PRO-localhost (3) iPhone-12-PRO-localhost (4)

Demo

https://sreenpulse.web.app/

https://youtu.be/e1ZbcnbUI2E

Development Server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

Code Scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory.

Running Unit Tests

Run ng test to execute the unit tests via Karma.

Running End-to-End Tests

Run ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.

Further Help

To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.

License

This project is licensed under the MIT License.