## Feature Suggestions for Enhanced Functionality on landver project.
After a thorough review of the codebase, below are my observations and suggestion:
#### Land_NFT.cairo
They should be a check put in place for the mint function that the land_NFT is not minted to a wrong address but the expected contract address.
In the transfer function, they is no check to ascertain that the land_NFT is transfered to the expected contract address. I will suggest that the check should be added to protects against transferring the land_NFT to a wrong contract address or an address_zero. And an event should be added after the NFT is transfer successfully.
In addition, I will suggest a check be added to verify that the land_NFT to be transferred hasn't been previously transferred.
#### Land_register.cairo
one feature of an efficient codebase is how well concerns are been seperated.
Seperation of concerns should be considered in order to make the code not to look bulking which may lead to confusion and mistake.
##### new function suggestions
1. I suggest that ownerOf function which is an internal function that takes in the token_id and return the current owner of the land_NFT should be included in the contract.
2. A feature should be implemented to allow a potential land owner to filter and pick lands in location of choice.
3. After registration, they should be a feature that stores informations of recent land registrations(the time frame can be determined by the project lead or owner).
4. When registering a land, a feature should be added to allow an owner provide an allowed contract address which will serve as the owner in the absence of the actual owner.
#### Tests
In the files containing the tests, I saw that not all functions have been tested for. For example, the transfer and mint function in land_NFT.
End-to-end test should be written for all possible scenerios for the entire functions of the smart contract. The project will be holding valuable assests and as such every measure should be put in place to ensure that the logic is correct and protects against all vulnerabilities.
##### comments
I will suggest that clear and self explanatory comments should be added to each of the functions in the smart contract to serve as a guide for subsequent contributors and others who would want to refer to landver's code base.
The few comments already existing should be checked to ensure they are grammartically correct so they can be easily understood.
##### Documentation
A documentation should also be written where the core functionalities of the project will be clearly explained. The documentation should also be written in a concise manner so it will be understood by technical and non-technical users.