This project is able to scrape shows from the TvMaze API. Shows since 2014 are saved to a mssql database, accessed by using EF Core. Additionally, this project contains an API which enables users to query the stored shows, add new shows (which are possibly not available on TvMaze), update shows, and delete shows.
A .Net 6 Domain Driven Design/Onion architecture/clean design is used, using Automapper to map objects. Only a few Unit tests are available, which use the xUnit framework. However, in the future these need to be expanded.
- Open this solution in Visual Studio 2022 or newer.
- Change the database connection strings in the appsettings.json files of the TvMaze.Api and TvMaze.Scraper projects to connect to your database instance.
- Open the Package Manager Console by navigating to Tools -> NuGet Package Manager -> Package Manager Console
- Change the default project within the Package Manager Console to 'TvMaze.Infrastructure' and run the following command:
Update-Database
- You can now run the TvMaze.Api and TvMaze.Scraper projects.
- Implement Serilog to enable structured logging.
- Add more unit tests
- Move hardcoded values (such as API endpoint URIs, time values, and constants) to the appsettings.json and create Option configuration classes.
- Fix all StyleCop warnings (mainly add more documentation to public classes, properties, and methods).