# Syngergyland Code Review
## Dashboard
- [Task Tracker]: General Refactor
- [Task]: General Refactor: TODOs
- Remove old TODOs that are already finished
- Add an issue for every remaining TODO in the code
- [Task]: General Refactor: Remove magic numbers
- QuestConfigurationPopup.tsx: `i === 6`, ` Array(8)`, ...
- BoosterCard.tsx: `nftIndex === 6`
- long etc
- [Task Tracker]: Refactor Pages
- [Task]: Refactor Pages: index.tsx
- Why usage of `useQuery` for airdrops instead of `useFetchAirdrops`
- Sort synergianHolders function should be moved to lib
- [Task]: Refactor Pages: General cleanup: remove unused code
- Remove unnecessary classes, types, functions etc...
- Sort and clean imports
- Remove all `console.log`
- ...
- [Task Tracker]: Refactor Hooks
- [Task]: Refactor Hooks: Display a notification for every fast return at the begining, eg, connect wallet
- [Task]: Refactor Hooks: General cleanup: remove unused code
- Remove unnecessary classes, types, functions etc...
- Sort and clean imports
- Remove all `console.log`
- ...
- [Task]: Refactor Hooks: `useClaimReward`
- code inside `setRewards` looks very similar 3 times, could be wrapper in a private function inside the hook
- [Task]: Refactor Hooks: `useCountdown`
- `getReturnValues` could be moved to `time` util/lib
- [Task]: Refactor Hooks: `useLoot`
- code inside `setLoots` looks very similar 2 times, could be wrapper in a private function inside the hook
- [Task]: Refactor Hooks: `useMaintenance`
- code inside the 2 `while` loops is very similar, could be wrapper in a private function inside the hook
- [Task]: Refactor Hooks: `useManageNfts`
- Do we need so mmuch logic in a single hook?
- [Task]: Refactor Hooks: `useStartQuest`
- what do the first 2 loops do? Why the magic numbers?
- `startQuest` is huge, cant it be fractioned?
- [Task Tracker]: Refactor Lib
- [Task]: Refactor Lib: Organize `lib` folder
- `/synergyland`
- `/airdrops`, `/boosters`, `/quests`, `/rewards`,`/traits`, `/seasons`, `/loots`, `notifications`, `time`
- `constants`
- `utils`
- `types/interfaces`
- `helpers`: these dont get exported
- `stores`
- `hooks`
- ...
- `/web3`
- `/web3`, `/metaplex`, `/solana`, `/wallet`, `/gembank`...
- `/classes` eg MetaplexClient, SolanaClient (unused INFT)
- `actions`
- `types/interfaces`
- unused `interface INFT`
- `/constants`
- `environment`
- ...: app constants
- `/hooks`
- app hooks, if necessary
- `utils`
- generic app utils. eg: time, env, trimmers, clipboard, etc... though I would split these into multiple files
- `helpers`: these dont get exported, similar to utils but internal only
- [Task]: Refactor Lib: General cleanup
- Make sure every element is in its corresponding file
- `sleep` function is repeated N times
- const `process.env.NEXT_PUBLIC_S3_ASSETS` repeated N times
- Types and Interfaces namings, plural usually wrong
- Add return types to all functions
- Remove unnecessary classes, types, functions etc...
- Sort and clean imports
- Set logs as `console.error` when necessary
- Remove all `console.log`
- ...
- [Task Tracker]: Refactor Public
- [Task]: Move buttons folder into assets
- [Task Tracker]: Refactor Components
- TODO