Skip to content
 
 

Repository files navigation

Senior Frontend Engineer Assessment Task

Overview

Create an employee management application using Angular, RxJS, and NgRx. The application should allow users to browse a list of users, view user details, and edit user details. The goal is to demonstrate your expertise in Angular architecture, state management, reactive programming, and writing unit tests.

Project Requirements

Application Features

  • User List:

    • Display a list of employees with basic information (name, email, role, and status).
      • You can use mock data or fetch data from a mock API.
    • Include a way to filter users, e.g. by name, email, or status.
  • User Details:

    • Display detailed information about a selected user (name, email, role, status, joining date).
    • Include a way to edit the user details.

State Management with NgRx

  • Implement global state management for users.
  • Create actions, reducers, and selectors for managing user state.

Reactive Programming with RxJS

  • Use RxJS operators to manage state, transform data streams, and handle asynchronous operations.

Unit Testing

  • Use Jasmine and Karma to write a few unit tests.

Styling

  • Use SCSS for basic styling.
  • You may use Angular Material or any other UI library for a polished UI.

Documentation

  • Provide a README file with instructions on how to set up and run the application.

Optional Features

  • Persistent Storage: Use local storage or session storage to persist state across page reloads.

Submission Instructions

  1. Fork the repository.
  2. Commit your code regularly to show your progress.
  3. Ensure that the application runs without errors.
  4. Submit the GitHub repository link with your final submission.

Evaluation Criteria

  • Code Quality: Clean, readable, and maintainable code.
  • Application Structure: Proper use of Angular modules, components, services, and NgRx.
  • State Management: Effective use of NgRx for global state management.
  • Reactive Programming: Demonstration of RxJS for handling data streams and asynchronous operations.
  • Functionality: Implementation of all required features and optional features.
  • Testing: Coverage and quality of tests.
  • User Experience: Aesthetic and functional UI/UX design. Responsive UI is not necessary in this task.

Good luck! We look forward to reviewing your submission.

About

An assessment task for Angular frontend engineer candidates

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages