Welcome to Anime-Manga Hub, an application designed to provide detailed information about various anime and manga series. This project follows the Clean Architecture principles and SOLID design principles.
- Anime: Fetch and display details of anime, including latest, popular, and top-rated anime.
- Manga: Fetch and display details of manga, including latest, popular, and top-rated manga.
- Categories: Browse anime and manga categories.
- Characters: Fetch details of characters and list characters associated with specific anime.
- Episodes: Fetch details of episodes for a given anime.
- Reviews: Read reviews and fetch reviewer details.
The project is structured based on Clean Architecture principles, ensuring separation of concerns and facilitating maintainability and testability. The structure is divided into three main layers:
- Domain Layer: Contains entities, repositories, and use cases.
- Data Layer: Implements repositories, data sources, and models.
- Presentation Layer: To be implemented in the future.
Domain Layer
AnimeEntity
AnimeRepository
GetAnimeDetailsUsecase
GetLatestAnimeUsecase
GetPopularAnimeUsecase
GetTopRatedAnimeUsecase
Data Layer
AnimeModel
AnimeRemoteDataSource
AnimeRepositoryImpl
Domain Layer
MangaEntity
MangaRepository
GetMangaDetailsUsecase
GetLatestMangaUsecase
GetPopularMangaUsecase
GetTopRatedMangaUsecase
Data Layer
MangaModel
MangaRemoteDataSource
MangaRepositoryImpl
Domain Layer
CategoryEntity
CategoryRepository
GetCategoriesListUsecase
GetCategoryByIdUsecase
Data Layer
CategoryModel
CategoryRemoteDataSource
CategoryRepositoryImpl
Domain Layer
CharacterEntity
CharacterRepository
GetCharacterByIdUsecase
GetCharactersListUsecase
GetMediaCharactersListUsecase
Data Layer
CharacterModel
CharacterRemoteDataSource
CharacterRepositoryImpl
Domain Layer
EpisodeEntity
EpisodeRepository
GetEpisodeByIdUsecase
GetEpisodesListUsecase
Data Layer
EpisodeModel
EpisodeRemoteDataSource
EpisodeRepositoryImpl
Domain Layer
ReviewEntity
ReviewerEntity
ReviewRepository
GetReviewerByIdUsecase
GetReviewersListUsecase
GetReviewsListUsecase
Data Layer
ReviewModel
ReviewerModel
ReviewRemoteDataSource
ReviewRepositoryImpl
- Clone the repository:
git clone https://github.com/mahmoodhamdi/Anime-App.git
- Navigate to the project directory:
cd Anime-App
- Install dependencies:
flutter pub get
- Run the app:
flutter run
- Implement the presentation layer using BLoC architecture.
- Enhance UI/UX for a better user experience.
- Add more features and functionalities.
We welcome contributions! Please follow the steps below to contribute:
- Fork the repository.
- Create a new branch
git checkout -b feature/new-feature
- Commit your changes
git commit -m 'Add some feature'
- Push to the branch
git push origin feature/new-feature
- Create a new Pull Request.
For any inquiries or support, please contact Mahmoud Hamdy.
Happy Coding! 🚀