# TODO

- [x] change nanoid to uuid easy format to copy.
- [x] support app-root-path.
- [x] support nodemon.
- [x] add file size information;
- [x] support simple page:
  - [x] add local game and preview the game.
  - [x] change property of data and re-submit to server.
  - [x] add support to url file.
  - [x] Fix error when file have space.
  - [x] Add loading.
  - [ ] Add alert when adding duplicate games.
  - [x] show game id and can edit after loading game.
    - [x] Add field id when added.
    - [ ] Change to screen to add when added success. Ready to modify.
    - [ ] Field:
      - [x] uid: can modify.
      - [ ] file: can modify.
      - [x] file name: can modify.
      - [x] game name: can modify.
      - [x] Hidden: can modify.
      - [x] Working: can modify.
      - [x] description: can modify.
      - [x] background image: can modify.
      - [x] game_pad: click-only/basic-move/control-pad/customize.
      - [x] Game_rating: can modify.
      - [ ] how-to-play: can modify.
      - [ ] add random id generate.
  - [x] remove game.
  - [x] reset game.
  - [x] new game.
  - [x] Game data stronger form:
    - [x] Set up uid instead of id;
    - [x] Add how to play.
    - [x] Add auto convert data before saving.
  - [x] Support game listing;
  - [x] Support description add game rating.
  - [x] Add filter for list game;
  - [x] Add filter for list game: frontend;
  - [x] Add filter for list game backend;
  - [x] Refactor API: convert break code to chunk;
  - [x] BE:Create a set async functions that can download, rename file base on body data sent to create Promise.all.
  - [ ] Refactor data: more consistent
    - [x] Change id to uid.
    - [x] Redurant file, fileUrl to file.
    - [x] Create game data folder and images folder.
      - [x] Change create new game data to new path.
      - [ ] Change edit new game, image to new path.
      - [ ] Migrate all old data to the new one.
  - [x] Support config url path, and env.
  - [ ] *InProgress* [MVP] Support keyboard event from RN and send to player.
    - [x] Create simple listener and test.
    - [x] Create RNApdapter to standardize the way RN and WebView communicate.
    - [ ] Support keyboard up and down event.
  - [ ] Migrate to ReactJS.

## New

- Image crop with react: <https://www.npmjs.com/package/react-image-crop>
