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
AnimeEntityAnimeRepositoryGetAnimeDetailsUsecaseGetLatestAnimeUsecaseGetPopularAnimeUsecaseGetTopRatedAnimeUsecase
Data Layer
AnimeModelAnimeRemoteDataSourceAnimeRepositoryImpl
Domain Layer
MangaEntityMangaRepositoryGetMangaDetailsUsecaseGetLatestMangaUsecaseGetPopularMangaUsecaseGetTopRatedMangaUsecase
Data Layer
MangaModelMangaRemoteDataSourceMangaRepositoryImpl
Domain Layer
CategoryEntityCategoryRepositoryGetCategoriesListUsecaseGetCategoryByIdUsecase
Data Layer
CategoryModelCategoryRemoteDataSourceCategoryRepositoryImpl
Domain Layer
CharacterEntityCharacterRepositoryGetCharacterByIdUsecaseGetCharactersListUsecaseGetMediaCharactersListUsecase
Data Layer
CharacterModelCharacterRemoteDataSourceCharacterRepositoryImpl
Domain Layer
EpisodeEntityEpisodeRepositoryGetEpisodeByIdUsecaseGetEpisodesListUsecase
Data Layer
EpisodeModelEpisodeRemoteDataSourceEpisodeRepositoryImpl
Domain Layer
ReviewEntityReviewerEntityReviewRepositoryGetReviewerByIdUsecaseGetReviewersListUsecaseGetReviewsListUsecase
Data Layer
ReviewModelReviewerModelReviewRemoteDataSourceReviewRepositoryImpl
- 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! 🚀