As explained in the introduction to this chapter, we will build a media management web application together. There are many types of media that we could consider managing; for example, books, comic books, mangas, movies, TV shows, anime, and much more. These types of media usually exist in different forms/formats, such as on paper, digitally, or disks.
Our application will be useful for people who are looking to manage their personal collections.
Through our application, it will be possible to manage lists of media of different types. For simplicity, we will limit ourselves to books, but we will try to create a solid foundation, so that the application can be easily extended to support new media types.
We'll explore the features of our applicationĀ in detail while looking at its domain model.
In order to write better code for this application, we will first learn about generics and enumerations, which are two major features of TypeScript.