Why is the index.php file missing?
That's exactly what drupal-project does. Your index.php should be at projectfolder/web/index.php.

Personally, I like this approach because it provides one directory level above your site root. This makes a good, secure place for files (settings, private file system) that should never be served directly by your web server. 

The drupal-project composer template uses this level above your  site root to install composer dependencies and tools like Drush and DrupalConsole. That's nice because when you bundle these tools with the project (instead of using a globally installed Drush for instance), you can always be sure that your colleagues are using the exact same version.