Ngx Demo App

CI

Angular demo application containing typical pages with posts, albums and photos.

The goal of the assignment of this application is to demonstrate my software engineering skills, especially around code organization, data structure use, problem-solving, and testing.

Key Features

  • Latest version of Angular
  • Using four libraries for state management (NgRx + NGXS + Akita + Elf)
  • Each page takes a different approach to dealing with state (for example normalization using normalizr)
  • ESLint for code quality
  • Bootstrap for UI
  • Extreme usage of Type hinting via TypeScript
  • Unit tests (Jasmine)
  • End-to-End tests (Cypress)

Getting started

You can view a live demo over at https://ildar-icoosoft.github.io/ngx-demo-app/

To get the frontend running locally:

  • Clone this repo
  • npm install to install all req'd dependencies
  • npm start to start the local server

Backend API

The app uses these API endpoints to retrieve the data to display on the page.

Pages

Each page is lazy-loaded, include a loading indicator.

Dashboard page

The dashboard page shows a summary of each data and a statistics overview.

screenshot

Post list page

A clean list of posts with filtering, sorting, and pagination.

screenshot

Post page

screenshot

Album list page

A clean list of albums with filtering and infinite scroll.

screenshot

Album page

Similar to other list pages, it has search and infinite scroll.

screenshot

Photo list page

screenshot

Photo page

screenshot

User page

screenshot