# Man-Jain
## Homebase App: In-depth analysis
### Statistics:
* Total lines: 26,000
* Contribution = 42.36%
### Automated analysis results:
- General assessment: https://sonarcloud.io/summary/overall?id=namesty_homebase-app
- Main points of improvement: https://sonarcloud.io/project/issues?authors=manank321%40gmail.com&resolved=false&severities=MAJOR&types=CODE_SMELL&id=namesty_homebase-app
#### Conclusions and observations
- Homebase is a huge application, with 26k lines of code and multiple integrations and very complex behaviors and user flows
- There is very little percentage of code duplication, which is even better given the size of the app; only 4.4%
- No security vulnerabilities
- Code Smells rating is "A" which is very good. There's still a significant amount of them (because the codebase is very large). Man-Jain is responsible for 16% of them and they're all related to unused code.
- There is a considerable amount of bug issues (12) which merits a "C" rating, and although Man-Jain did not author any of those, they should still be/have been reviewed as they're pretty evident (e.g: `network === networkNameMap.ghostnet ? 0 : 0`).
### Human analysis results:
#### Positive highlights:
- The application is very complex and requires a very deep understanding of the architecture behind it and technical limitations of the Tezos's ecosystem tooling. Man-Jain managed to ship a whole new version refactor by reimplementing the core mechanisms of the DAOs that Homebase supports
- His understanding of technical requirements is very deep and thorough. He's understood and handled technical requests directly from the Homebase community and the client.
- He has successfully added new features to the already existing application
- He's led the implementation of the merge between Homebase and Homebase lite
- He identified the needs very quickly and took initiatives like the refactoring of Homebase's indexer
- His code has been clean and appropriate
- He's handled a multitude of different integrations with different 3rd party services.
- He's taken ownership of the whole codebase, shipping features and solving issues from changes to the services layer, to UI, to the DAO asbtraction, etc.
- He's identified additional requirements and points of improvement and made issues for them.
#### Points of improvement:
- Application code still has no tests and it needs them. Although this may seem like a very standard request, performing e2e tests on Homebase in particular isn't easy. It requires the dockerization and orchestration of many different 3rd party services and other dOrg-maintained applications outside of Homebase (like the indexer). But still, this is the strongest point of improvement.