Skip to content

xxidbr9/ajaib-interview-test

Repository files navigation




AJAIB INTERVIEW TEST PROJECT (Senior Web Engineer)

This is, Ajaib Interview test for role (Senior Web Engineer) - By Nando

See hosted project : https://xxidbr9.github.io/ajaib-interview-test

Project Purpose

This is a project example of an user list that from API store with state management, and meet all the functionality requirements.

Goals

  • Debounce search
  • Sort Functionality (click sort in every table column),
  • Reset Filter Functionality
  • Using state management

Tools

  • React v18
  • Typescript
  • Ant Design (Base on the example UI)
  • Webpack v5
    • Brotli for compression,
  • Babel
  • Redux
    • Redux saga
    • Redux Toolkit
  • Husky
  • Eslint
  • Jest
  • Commitlint
  • React Testing Library
  • Axios
  • More

HOW TO RUN

Install all dependency

yarn

Run in Development mode

yarn dev

Build the Project

yarn build

Serve the project in Production (using serve)

yarn serve

TODO : Serve the project in Production (using Docker Compose)

docker-compose up

Technical Answer

Find the Answered Question in Google Docs

https://docs.google.com/document/d/1l05DPZr9z-DVmfXf-jOt2Zm6FIKgWty12Y09WIlJC8k/edit?usp=sharing

PRESENTATION

Take a look at the presentation Google Slide

BONUS

  • This project use Webpack v5, it will be easily expose and consume a module federation for Micro-frontend
  • Brotli for compression, can reduce 60% bundle size when serve it to user, use with ngx_brotli and serve in NGINX, reduce 60% assets size
  • Github action for CICD action file
  • Test all Development PR see example
  • Great Web performance (base on lighthouse)

TODO

  • Build the project using docker and inside NGINX
  • Test all file

About

Ajaib interview test for Senior Web Engineer by Nando

Resources

Stars

Watchers

Forks