Mobile App Developer Assessment by ETIQA IT

  • This app’s state management, navigation & dependencies management is rely on GetX package
  • Some simple validations were setup on the form to add new todo.
    • Title: Minimum length of 5
    • Start Date: Must be smaller than or equal to end date
    • End Date: Must be larger than or equal to start date


Project Structure

├── lib
│   ├── constants
│   ├── controllers
│   ├── models
│   └── screens
│       └── todo (consists of todo module screens)
│   ├── utilities (consists of common utility functions which can be used by all modules)
│   └── widgets
│       ├── common (consists of common widgets which can be used by all modules)
│       └── todo (consists of widgets to be used by todo module)
└── test
    ├── controllers (consists of unit test for controllers)
    └── utilities (consists of unit test for utility functions)

Unit test

  • Some simple unit tests are created in test directory for demo purpose.
  • To execute all the unit tests, simply run flutter test in the terminal.
  • To execute an individual unit test file, run flutter test test/{folder_name/file_name} in the terminal. eg: flutter test test/controllers/manage_todo_controller_test.dart

Continuous Integration

  • A simple CI/CD was setup with codemagic. New build will be triggered by every new push or pull request completed on this repository.



View Github