Angular port of book app