Skip to content

vitalyiegorov/suuudokuuu

Repository files navigation

Stand With Ukraine

Suuudokuuu

Sudoku game to help Ukraine win the war against Russia.

Play now! Do not hesitate

Download on the App Store

TODO

Features

  • share puzzle/challenge with friends:
    • challenge mode - see target score and countdown timer based on shared data
  • add mistakes purchasing through in-app purchases
    • donate to ZSU, add BE logic for this
    • add donation branding and description on main screen
  • add gamification and percentage of completeness
  • add game pausing? timer should not run when app is in background
  • disable screenshots?
  • add unique check for generated field, sometimes puzzle can have multiple solutions
  • best stats is confusing and not clear, especially time:
    • add best time/score for each difficulty, when user selects difficulty show separate screen
  • score row completing row/col/group

Frontend

  • improve logic code coverage
  • add donation CTA on main screen and ukraine support
  • add animations
    • add number flying to its stop?
    • add more fun to winner page(ZSU, Ukraine, donation CTA)
    • add more fun to looser page(ZSU, Ukraine, donation CTA)
    • animation when finishing full row/col/group(score multiplies)
  • add successful run count and longest run count history on main screen?
  • add game logic:
    • timer
    • score and its calculation based on errors, timer, row/col/group finish
  • optimize rendering(why does it lag? =)

Web

  • fix mobile version padding and field size
  • add pages titles
  • fix font issue

Backend

  • setup backend, app should still support full offline mode support
  • add user creation and logic
  • store user solved puzzle, add time, score, rank for same puzzle
  • create leaderboards

CI/CD

  • create release notes and migrate to semantic-release
  • setup maestro e2e tests on CI pull request
  • android build for main branch should be published to play console
  • ios/android builds should be published as artifacts so team members can test them
  • setup conventional commits, automatic version management and changelog generation(ios, android also)
  • setup pull-request pipeline for linting, tests, etc
  • ios build for main branch should be published to testflight

E2E

  • Create separate flows for described items
  • Pass selectors from typescript selector files
  • Cannot select value if not empty cell selected
  • Deselect cell if value is completed
  • Leave cell selection if value is not completed
  • Animations:
    • Select cell animation
    • Complete row animation
    • Complete col animation
    • Complete group animation
    • Complete value animation
    • Win animation
  • Win scenario:
    • Win score and time
  • Loose scenario:
    • Win score and time
  • Pause scenario:
    • Return to game after pause
    • No pause on other screens(win, loose, home)
    • Reset app after pause
  • Score calculation
  • Best game on home page

Overall

  • add sentry for error reporting
  • migrate to monorepo
  • add e2e tests(maestro or wdio?)
  • add turbo
  • fix metro require cycles (store related as usual) =)
  • add unit tests for game logic, add code coverage(codecov?)
  • add ts-prune
  • add jscpd
  • add commit-lint
  • add husky
  • fix ts error on app.json import
  • refactor folder structure to modules(game, app-root, history)
  • setup eas
  • setup iphone deployment
  • add github actions