
CineScope is a film catalogue application built with Angular 21, applying Clean Architecture strictly: separate domain, application, and infrastructure layers, with the domain free of framework dependencies.
Reactive state is handled with Angular Signals for fine-grained UI updates, reserving RxJS for asynchronous stream composition and API side effects. The boundary between both models is explicit and enforced by the types.
Data access is encapsulated behind ports defined in the domain and implemented in infrastructure via the Adapter pattern, so the data source can be swapped without touching either the domain or the presentation layer.