C++ source directory structure

I am going to start a medium size project, and I want to know what is the standard today in source directory structure. The ShooterGame example comes with the old Public / Private directory structure. Is that directory structure still used? What do you use for your new projects? What do you modify in the *.Build.cs? Do your classes always match with a .cpp and .h file?

In Unreal it is best to think in Modules Gameplay Modules | Unreal Engine Documentation

The Public / Private folders are there to signify what is exposed from the module that other modules can use. So if you just have one game module you can put all your source into the Private folder in whatever structure you see fit.

Some modules also have a Classes folder, this is an old convention that you would put all your UObject derived classes in, but this is no longer necessary (they just go into the Public / Private folders)