3. All projects must have a tests, main shared and static library and executable file for using a main library. For more information about structure projects see [this](ProjectStructure.md) guide.
> Do not worry. All targets alredy support in our [CMake](https://github.com/QuasarApp/CMake) toolchains and [CMakeProject](https://github.com/QuasarApp/CMakeProject) templates.
5. All functions and classes must be documented using doxygen comments. For more information about syntaxis of the doxygen comments see the [doxygen](https://www.doxygen.nl/manual/docblocks.html) documentation
> Example:
``` cpp
/**
*@brief qHash are Simple hash function of the Random object
*@param rand are Input data.
*@return crc32 hash code.
*/
uint qHash(Random rand);
```
6. All develops library classes must be implemented on the library namespace to avoid conflicts with the names of other libraries.
Almost all quasarapp projects are written so that they can be used as separate modules for new projects. Therefore, the use of submodules is inevitable.