Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergio11/nimbustv_android
NimbusTV is your ultimate M3U streaming solution for Android TV ๐บโจ, offering seamless management of multiple playlists ๐ถ and access to diverse channels, including live events and radio ๐ป. With integrated EPG support ๐
and customizable reminders โฐ, it ensures you never miss your favorite shows!
https://github.com/sergio11/nimbustv_android
androidtv clean-architecture dash exoplayer hilt-compose hilt-dependency-injection hls jetpack-compose jetpack-compose-navigation kotlin m3u8-playlist material3-android material3-components mvi mvi-architecture room-database room-persistence-library
Last synced: 2 months ago
JSON representation
NimbusTV is your ultimate M3U streaming solution for Android TV ๐บโจ, offering seamless management of multiple playlists ๐ถ and access to diverse channels, including live events and radio ๐ป. With integrated EPG support ๐ and customizable reminders โฐ, it ensures you never miss your favorite shows!
- Host: GitHub
- URL: https://github.com/sergio11/nimbustv_android
- Owner: sergio11
- License: mit
- Created: 2015-08-12T09:47:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-11-07T18:29:39.000Z (3 months ago)
- Last Synced: 2024-11-07T19:20:30.567Z (3 months ago)
- Topics: androidtv, clean-architecture, dash, exoplayer, hilt-compose, hilt-dependency-injection, hls, jetpack-compose, jetpack-compose-navigation, kotlin, m3u8-playlist, material3-android, material3-components, mvi, mvi-architecture, room-database, room-persistence-library
- Language: Kotlin
- Homepage:
- Size: 84 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# NimbusTV ๐๐บ: Your Gateway to Effortless M3U Streaming on Android TV
Welcome to **NimbusTV** ๐, your all-in-one solution for experiencing M3U playlist content on Android TV without the usual hassle. Designed with simplicity and power in mind, NimbusTV lets you forget about complicated setups and file management, making it easy to dive straight into your favorite channels ๐บโจ.
With NimbusTV, you can effortlessly manage multiple M3U playlists ๐, giving you the freedom to organize your channels by themeโsports ๐, movies ๐ฌ, news ๐ฐ, music ๐ถ, and more. Switch seamlessly between playlists and enjoy diverse formats with support for HLS ๐ก, DASH ๐ฅ, Clear Key-encrypted channels ๐, and even radio streams ๐ป.
NimbusTV doesnโt stop at playlists. Bringing in EPGs ๐ for each of your channels, it keeps you informed with real-time programming schedules. Imagine instantly knowing whatโs on, whatโs up next, and never having to wonder if you've missed a must-watch show ๐. Set custom reminders ๐ for your favorite programs, so youโll always be in the know when the action begins!
Crafted with **Jetpack Compose for TV** ๐ฅ๏ธ, NimbusTV shines on the big screen, delivering a smooth, elegant experience for Android TV. Built on the reliable **Clean Architecture** ๐งฉ and **MVI** pattern foundations, itโs designed to be fast, scalable, and visually immersive. Thanks to the [**๐ฎ Fudge**](https://github.com/sergio11/fudge_tv_compose_library) UI Kit, NimbusTV combines a sleek design with easy navigation, putting total control in your hands ๐๏ธ.
A big thank you to the [JetFit](https://github.com/TheChance101/tv-samples/tree/JetFit/JetFit) repository for inspiring NimbusTV with a solid base for Jetpack Compose for TV ๐ ๏ธ.
**NimbusTV is for educational purposes only ๐**, and I am not responsible for the use or content viewed ๐ซ. Accessing public channels is at your own risk.
Please review the full **Disclaimer** section below for more information ๐.
Explore NimbusTV today, and bring a world of channels right to your living roomโeffortless, organized, and always ready when you are. ๐โจ๐บ
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Slides are built using the template from [Previewed](https://previewed.app/template/AFC0B4CB). I extend my gratitude to them for their remarkable work and contribution.
### About Playlist and EPG Sources
For demonstration and testing purposes, **NimbusTV** utilizes publicly available IPTV playlists from the [IPTV-Org](https://iptv-org.github.io/) project. These playlists offer a diverse collection of international channels in M3U format, enabling users to explore and experience a wide range of content directly from the app.
To handle M3U playlist parsing, weโve integrated and customized the [M3u parser](https://github.com/BjoernPetersen/m3u-parser) library. Modifications were made to extend the functionality, allowing NimbusTV to support even more complex M3U structures, while accommodating the varied and sometimes inconsistent formats found in IPTV playlists.
Explore NimbusTV today, and bring a world of channels right to your living roomโeffortless, organized, and always ready when you are. ๐โจ๐บ
## Overview ๐
NimbusTV is designed to transform the way users experience content on their Android TVs, offering an all-encompassing, intuitive platform that boasts a wide range of features tailored to enhance user satisfaction and engagement.
![]()
### Features โจ
- **Multi-Playlist Management** ๐:
- Users can easily manage multiple M3U playlists, allowing them to create, edit, and organize channels by themes, genres, or personal preferences. This feature ensures quick access to favorite content without the hassle of searching through extensive lists, making content discovery smooth and enjoyable.- **Diverse Playback Options** ๐บ:
- NimbusTV supports a variety of streaming formats, including HLS (HTTP Live Streaming), DASH (Dynamic Adaptive Streaming over HTTP) with clear keys, and internet radio. This flexibility ensures users can enjoy a wide range of content, from live TV broadcasts to on-demand streaming and radio stations, all with high-quality playback tailored to their internet connection.- **EPG Importation** ๐ :
- Users can import Electronic Program Guides (EPGs) seamlessly into NimbusTV. This feature provides access to detailed programming information for all favorite channels, allowing users to see whatโs currently airing, upcoming shows, and special events. The EPG importation enhances the viewing experience by helping users plan their watching schedules effectively.- **Reminders** โฐ:
- With customizable reminders, users can set alerts for upcoming shows or events. This feature ensures that users never miss their favorite programs, as they will receive timely notifications based on their personalized schedules. It adds convenience, allowing users to enjoy their content without the worry of forgetting about upcoming broadcasts.- **User Profiles** ๐ค:
- NimbusTV allows for the creation of personalized user profiles, enabling each family member or user to have their own distinct viewing experience. Each profile maintains unique playlists, EPGs, and preferences, fostering an independent content management system that caters to the diverse tastes and viewing habits of different users.- **Secure Access** ๐:
- User privacy is a top priority in NimbusTV. Profiles are stored securely, with an optional PIN for access, ensuring that personal data and preferences remain protected. This feature enhances user trust, allowing them to enjoy their content with peace of mind regarding their security.- **Dynamic Viewing Modes** ๐บ:
- Users can switch between various EPG viewing modes, such as "Channel Overview," which provides a broad view of available channels, or "Now and Schedule," which displays currently airing programs and upcoming shows. This dynamic feature allows users to customize their viewing experience based on their preferences and the type of content they wish to explore.- **Enhanced Search Functionality** ๐:
- NimbusTV includes a powerful search feature that enables users to quickly find channels, shows, or genres. This enhanced search capability streamlines navigation within the app, making it easier for users to discover new content or revisit their favorites without unnecessary delays.NimbusTV is committed to providing an enriching, user-friendly experience that meets the diverse needs of its users while transforming their living room into an entertainment hub. With its extensive features and intuitive interface, NimbusTV is your go-to platform for all things streaming! ๐
![]()
## Technologies Used ๐ ๏ธ
NimbusTV harnesses a variety of technologies to deliver a seamless streaming experience on Android TV. ๐
- **Kotlin** ๐ฆบ: The preferred language for developing Android applications, offering modern syntax and powerful features to enhance productivity. ๐
- **Room** ๐๏ธ: Implements a local database schema to persist information about M3U playlists, channels, EPG data, and program entries linked to each user profile. Each user profile in NimbusTV maintains its own independent playlists and EPGs, ensuring personalized content management. ๐๐
- **Jetpack DataStore** ๐พ: A modern data storage solution used to store application preferences shared across profiles. It allows users to enable different EPG viewing modes, such as "Channel Overview" or "Now and Schedule," and activate channel search options. ๐โจ
- **Coil** ๐ผ๏ธ: An image loading library for Android that simplifies the process of loading images from the internet, ensuring smooth and efficient image handling in the app. ๐ธ๐
- **WorkManager** ๐ฐ๏ธ: Used to schedule background tasks, such as updating EPG data daily and sending reminders for upcoming shows, ensuring that users never miss their favorite content. ๐ โฐ
- **Coroutines** ๐: Simplifies asynchronous programming and efficiently manages background tasks, enhancing app responsiveness. โฑ๏ธโก
- **Clean Architecture** ๐๏ธ: Promotes a well-structured and scalable app design by separating concerns into distinct layers, enhancing maintainability and testability. ๐
- **MVI (Model-View-Intent)** ๐: Implements a unidirectional data flow pattern, ensuring a clear separation between UI components and business logic. ๐
- **Jetpack Compose for TV** ๐บ: Utilizes Jetpack Compose to build modern, responsive UIs tailored for TV screens, optimizing the interface for large displays. ๐จ
- **Jetpack Compose Navigation** ๐บ๏ธ: Facilitates in-app navigation and screen transitions with a clear API, supporting deep linking and complex navigation flows effortlessly. ๐ฆ
- **Material Design 3** ๐จ: Applies the latest Material Design guidelines to create a visually appealing and intuitive user interface. ๐๏ธ
- **๐ฎ Fudge** ๐ฐ: Fudge is a Jetpack Compose UI Kit for TV apps, providing pre-built components and tools to craft engaging experiences on the big screen. ๐ฌ๐
- **Media3 for Media Playback** ๐ฅ:
- **Media3 ExoPlayer** ๐ฌ: Part of the Media3 library, ExoPlayer supports various media formats, providing advanced features for high-quality playback. ๐ป๐ฟ
- **HLS (HTTP Live Streaming)** ๐บ: This plugin allows the playback of HLS streams, enabling adaptive streaming for different network conditions. It dynamically adjusts the quality of the video based on the user's internet speed, ensuring smooth playback with minimal buffering. ๐ฅ๐
- **DASH (Dynamic Adaptive Streaming over HTTP)** ๐ก: This plugin enables the playback of DASH streams, another adaptive streaming format. Similar to HLS, DASH adjusts video quality in real-time, providing a seamless viewing experience by optimizing bandwidth usage and improving playback performance. ๐บโก
- **Media3 UI** ๐จ: Provides UI components for integrating media playback controls into your appโs interface. ๐น๏ธ๐ถ- **Dagger Hilt** ๐งฉ: A dependency injection library simplifying the management of dependencies and enhancing modularity in your app. ๐ง๐ก
- **Mapper Pattern** ๐: Facilitates conversion between different data models, ensuring data consistency across application components. ๐
## Architecture Overview ๐๏ธ
NimbusTV is designed with a robust architecture for maintainability, testability, and flexibility. The architecture leverages several design patterns and principles:
### **Clean Architecture**
Clean Architecture focuses on separating concerns into distinct layers:
- **Presentation Layer**: Handles UI and user interactions using Jetpack Compose for modern interfaces. ๐ฅ๏ธโจ
- **Domain Layer**: Contains business logic and use cases, independent of external frameworks. ๐ง ๐
- **Data Layer**: Manages data sources and repositories, abstracting data retrieval and storage. ๐ฆ๐### **Data Sources**
Data sources fetch and manage data from various origins, including:
- **Remote Data Sources** ๐: Interact with cloud services or web APIs (e.g., Firebase Firestore). โ๏ธ๐
- **Local Data Sources** ๐ป: Handle local data storage (e.g., Room and Jetpack DataStore). ๐พ๐๏ธ### **Repository Pattern**
The repository pattern provides a unified interface for data access, decoupling data retrieval from the rest of the application for easier testing and maintenance. ๐โ๏ธ### **Use Cases**
In the Domain Layer, Use Cases represent specific actions, encapsulating business logic and interacting with repositories to retrieve or modify data. ๐งฉ๐### **Inversion of Control (IoC)** ๐
IoC inverts control flow, allowing dependencies to be injected rather than hardcoded, promoting modularity and reducing boilerplate code. ๐ง๐### **SOLID Principles** ๐
We apply SOLID principles to ensure our codebase remains clean and maintainable:
- **Single Responsibility Principle (SRP)** โ : Each class has one responsibility.
- **Open/Closed Principle (OCP)** ๐: Classes are open for extension but closed for modification.
- **Liskov Substitution Principle (LSP)** ๐: Subtypes must be substitutable for their base types.
- **Interface Segregation Principle (ISP)** ๐ซ: Clients should not depend on interfaces they do not use.
- **Dependency Inversion Principle (DIP)** ๐: High-level modules depend on abstractions.### **MVI (Model-View-Intent)** ๐
MVI manages state and interactions, ensuring a predictable unidirectional data flow. ๐๐This architecture ensures that NimbusTV is well-structured, easy to maintain, and scalable, adhering to best practices and design principles. ๐โจ
## App Screenshots ๐ธ
Discover **NimbusTV** and its intuitive design with these screenshots, giving you a glimpse into the appโs key features!
### Onboarding and Getting Started ๐ฌ
Begin your experience on **NimbusTV** by creating a profile. This first step is all about setting up a unique space for your favorite EPGs and playlists. No need for online accounts or loginโeverything is managed locally for a standalone experience. Start organizing your content right away!
![]()
![]()
![]()
### Managing Your Profiles ๐ค
Step into the **Profiles** section, where you can customize **NimbusTV** to suit your viewing preferences. Hereโs what makes the Profiles section so versatile:
![]()
- **Profile Selection**: Choose between different profiles in the **Profile Selection** screen. Each profile allows for custom EPGs and playlists, ensuring a unique setup for each viewer.
![]()
![]()
- **Creating Profiles**: Add up to four profiles, perfect for household members who want their own playlists and EPGs. Customize each with a unique name and avatar, making NimbusTV adaptable and fun for everyone!
![]()
![]()
![]()
- **Editing Profiles**: Update profile details, including name, avatar, and security PIN, all while keeping your data secure and your experience personalized.
![]()
![]()
- **Deleting Profiles**: When a profile is no longer needed, delete it to keep **NimbusTV** clean and focused on what matters most.
![]()
![]()
The **Profiles** section makes NimbusTV adaptable to every userโs viewing needs, ensuring a personalized experience on a single device.
![]()
### Home Screen ๐ ๐บ
Welcome to the **Home** screen of **NimbusTV**, your central hub for exploring and enjoying your playlists and channels:
![]()
![]()
![]()
- **Channel Preview** ๐: Hover over any channel to get a quick preview of what's currently playingโideal for browsing without fully tuning in.
![]()
![]()
- **Favorites** โญ: Mark your favorite channels to keep them easily accessible for quick viewing.
- **Smooth Playlist Switching** ๐: Effortlessly switch between playlists to explore channels organized by theme or preference, perfect if you like variety.
![]()
![]()
- **Playlist Management** ๐๏ธ: From the main screen, access the **Manage Playlist** button to open the playlist management view, where you can:
- **Add New Playlists** โ: Add new M3U playlists to expand your channel lineup.
- **Delete Playlists** ๐๏ธ: Remove playlists that are no longer needed.
- **Update Playlists** ๐: Refresh playlists to keep content up-to-date.
- **Explore Channels and Favorites** ๐: View each playlist's channels, mark favorites, or play them instantly.
![]()
![]()
![]()
![]()
![]()
![]()
With NimbusTVโs **Home** screen, youโre in control of all your playlists and favorite channels, providing a fully personalized TV experience. ๐
### Channel Search Screen ๐๐บ
The **Channel Search** feature in **NimbusTV** is your go-to tool for quickly finding channels across all imported playlists! Accessible from the **Side Menu** (if enabled in **Preferences**), this screen allows you to:
- **Quickly Search Channels** ๐: Type a keyword to search through all registered channels, making it easy to find exactly what youโre looking for in seconds.
- **Intuitive On-Screen Keyboard** โจ๏ธ: Use the keyboard on the left side of the screen to input search terms, with the results instantly updating as you type.
- **Results Display** ๐: Found channels are shown in a convenient list on the right side of the screen. Browse through and explore results based on your search term.
- **Channel Actions** ๐ฌ: Selecting a channel in the search results opens a dialog with two options:
- **Play Now** โถ๏ธ: Instantly tune in to the channel.
- **Add to Favorites** โญ: Save the channel for quick access from your favorites list.
![]()
![]()
![]()
The **Channel Search** screen streamlines navigation and lets you customize your experience by finding and favoriting channels across your playlists.
### Favorites Section โญ
The **Favorites** section in **NimbusTV** is designed for quick access to the channels you love most. Hereโs what makes it a perfect tool for streamlining your viewing experience:
- **Easy Access to Favorites** ๐: Your favorite channels are all listed in one place, making it effortless to start watching right away.
- **Instant Playback** โถ๏ธ: Simply select a channel from the list to begin playback, no need to navigate through different playlists.
- **Manage Favorites** ๐๏ธ: Want to declutter? Easily remove channels from your favorites list with a single action, keeping only the content you truly enjoy.
The **Favorites** section keeps your top channels just a click away, making it your personalized hub for entertainment on NimbusTV!
![]()
![]()
### EPG (Electronic Program Guide) ๐
The **Electronic Program Guide (EPG)** in **NimbusTV** lets each profile import, view, and manage channel lists and programming schedules. Hereโs an overview of its key features:
![]()
![]()
#### EPG Viewing Modes ๐๏ธ
**NimbusTV** offers two EPG display modes, configurable from **Settings**:
- **Now & Schedule Mode** โฐ:
This mode displays the EPG in a two-column format:
- The first column shows all channels with their currently airing programs.
- The second column lists the full schedule for each channel, indicating whether the event is past, live, or upcoming.
You can select any upcoming event to open a dialog and set a reminder, which will notify you 5 minutes before the show starts.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
- **Single-Column Mode** ๐:
This format organizes the EPG into a single column, with each channel appearing in an individual row alongside its full schedule for the day. Just like in **Now & Schedule Mode**, you can interact with events and set reminders for future shows.
![]()
![]()
![]()
![]()
Both modes provide intuitive navigation through each channelโs programming, making it quick and easy to keep track of your favorite shows.
#### EPG Source Management ๐ง
Each profile can access **EPG Source Management**, where you can:
![]()
- **Add New EPGs** โ: Import custom EPG sources to load channel programming schedules.
![]()
- **Delete Existing EPGs** ๐๏ธ: Remove any EPG sources that you no longer need.
![]()
- **Daily Auto-Updates** ๐: NimbusTV schedules a daily update for each active EPG, refreshing programming data so you always have the latest information.
With these flexible options, each profile in **NimbusTV** can tailor its own program guide, ensuring a viewing experience thatโs convenient and perfectly suited to your preferences. Stay organized, informed, and on top of your favorite channelsโ schedules!
![]()
### Full-Screen Player ๐ฅ
The **Full-Screen Player** in **NimbusTV** provides an immersive viewing experience, allowing you to enjoy channels in full detail. Hereโs what you can do within the player:
- **Full-Screen Playback** ๐บ: Each channel can be viewed in full-screen mode, giving you a clear and focused experience of your selected content.
- **Add to Favorites** โญ: Want quick access to a channel? Add it to your favorites directly from the player screen with just one click.
- **Access System Settings** โ๏ธ: Open the system settings panel without leaving the player, allowing for quick adjustments to enhance your viewing experience.
![]()
![]()
![]()
![]()
#### Audio-Only Player for Music & Radio ๐ป
For music or radio channels, **NimbusTV** launches a special **Audio-Only Player**:
- **Music & Radio Display** ๐ถ: When tuning into a radio or music channel, the audio-only player displays station or channel information, delivering a streamlined audio experience without video, ideal for listening enjoyment.
With both full-screen video playback and an optimized audio-only mode, **NimbusTV**โs player is designed to adapt to your viewing and listening needs, making every channel as engaging as possible.
![]()
### Settings Screen โ๏ธ
The **Settings** screen in **NimbusTV** offers you a range of customizable options to tailor your viewing experience. Hereโs how you can enhance your interaction with the app:
![]()
### Channel Search Settings ๐
The **Channel Search** option allows you to enable or disable the feature to search for channels across your playlists, providing you with flexibility in navigation.
- **Toggle Search Visibility** โ๏ธ: Enable or disable the channel search feature easily. When activated, the search icon will appear in the side menu, making it simple to find your favorite channels at any time.
![]()
- **EPG View Mode Selection** ๐ : Choose how you want to view the Electronic Program Guide (EPG). You can opt for a **"Now & Schedule"** format with two columns for an overview of what's currently airing and what's coming up, or a **unified format** with a single column displaying all programming for the current day in one row per channel.
![]()
### Additional Settings ๐ ๏ธ
- **Access AndroidTV Settings** ๐ฑ: Quickly navigate to the AndroidTV system settings for further customization and adjustments.
- **Legal Information** ๐: View essential documents like **Terms and Conditions**, ensuring you understand the usage of the app.
![]()
- **Help Section** โ: Need assistance? Access the help section for FAQs and troubleshooting tips to enhance your experience.
![]()
- **About Us** โน๏ธ: Learn more about **NimbusTV** and our mission in the "About NimbusTV" section.
![]()
- **Log Out** ๐ช: Easily log out of your account when youโre done, ensuring your privacy and security.
![]()
With these settings, **NimbusTV** empowers you to create a viewing environment that fits your preferences, making your entertainment experience as enjoyable as possible!
## Contribution
Contributions to NimbusTV Android are highly encouraged! If you're interested in adding new features, resolving bugs, or enhancing the project's functionality, please feel free to submit pull requests.## Credits
NimbusTV is developed and maintained by Sergio Sรกnchez Sรกnchez (Dream Software). Special thanks to the open-source community and the contributors who have made this project possible. If you have any questions, feedback, or suggestions, feel free to reach out at [email protected].## Acknowledgements ๐
We express our deep appreciation to [Freepik](https://www.freepik.es/) for generously providing the resources used in this project.
A heartfelt thank you to the creators of the [JetFit repository](https://github.com/TheChance101/tv-samples/tree/JetFit/JetFit) for providing such an invaluable starting point for Jetpack Compose for TV. Your work has been incredibly inspiring and instrumental in shaping the development of this project.
The resources, examples, and insights provided in the JetFit repository served as a foundational reference, enabling us to build and expand upon your excellent groundwork. Your contributions have significantly accelerated our journey and enriched our understanding of creating seamless TV applications using Jetpack Compose. ๐บโจ
For demonstration and testing purposes, **NimbusTV** utilizes publicly available IPTV playlists from the [IPTV-Org](https://iptv-org.github.io/) project. These playlists offer a diverse collection of international channels in M3U format, enabling users to explore and experience a wide range of content directly from the app.
To handle M3U playlist parsing, weโve integrated and customized the [M3u parser](https://github.com/BjoernPetersen/m3u-parser) library. Modifications were made to extend the functionality, allowing NimbusTV to support even more complex M3U structures, while accommodating the varied and sometimes inconsistent formats found in IPTV playlists.
๐๐ I want to extend my sincere gratitude to [Umair Khalid](https://github.com/UmairKhalid786) for his outstanding work on the [ComposeTv](https://github.com/UmairKhalid786/ComposeTv) repository. This repository has been an invaluable resource and a crucial starting point for my project.
Through ComposeTv, I've had the opportunity to learn and explore new techniques and concepts in development. Umair Khalid's clear documentation and high-quality code have been instrumental in my understanding and professional growth.
## Disclaimer
NimbusTV is provided for educational and learning purposes only ๐. The project has been developed to facilitate access and viewing of content through M3U playlists ๐, organized in an efficient and accessible manner on Android TV devices ๐บ. NimbusTV is not responsible for the use made of the app or the content viewed through it ๐ซ.
Users are responsible for ensuring that the content they access through the app does not violate any copyright laws or other applicable regulations in their jurisdiction โ๏ธ. NimbusTV uses public IPTV sources such as IPTV org ๐, which provide freely accessible and public domain channels ๐ก. NimbusTV does not control or guarantee the availability or legality of the TV channels available through these sources ๐.
By using NimbusTV, you acknowledge that the use of the app is at your own risk โ ๏ธ, and the development team assumes no responsibility for any copyright violations, legal issues, or damages resulting from accessing content through the app ๐ผ.
## Visitors Count
## Please Share & Star the repository to keep me motivated.
![]()
## License โ๏ธ
This project is licensed under the MIT License, an open-source software license that allows developers to freely use, copy, modify, and distribute the software. ๐ ๏ธ This includes use in both personal and commercial projects, with the only requirement being that the original copyright notice is retained. ๐
Please note the following limitations:
- The software is provided "as is", without any warranties, express or implied. ๐ซ๐ก๏ธ
- If you distribute the software, whether in original or modified form, you must include the original copyright notice and license. ๐
- The license allows for commercial use, but you cannot claim ownership over the software itself. ๐ท๏ธThe goal of this license is to maximize freedom for developers while maintaining recognition for the original creators.
```
MIT LicenseCopyright (c) 2024 Dream software - Sergio Sรกnchez
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```