User submitted content in drupal (Drupal Noobie) First off, I would like to state that I am a total noobie when it comes to Drupal and do not have a great deal of experience with web development in general.  On the other hand I have a good deal of experience programming in general and will not shy away from some serious PHP hacking. 

I am trying to create a webpage that will allow users to submit project files (which will be .zip files) which need to be extracted, then analyzed, then stored.  

I would like to have a main ladding page that will allow user to navigate to different types of projects or allow them to follow a link to submit their own project. 

So far I have not been able to find many good resources that talk about challenges associated with user generated content.  Can anyone suggest any books, videos, tutorials, really anything that would help me get started on this specific topic?  I own the book Drupal 7 module development, which was a decent starting point but doesn't really offer much information about my specific problem.  

Also, any modules that might be helpful for this task?  

EDIT:

So far I have been able to create a new content type which can be added using add content and then will show up in one of the main tabs on my basic page.  So far I only allow the user to add screenshots and a title, one big thing I am wondering if how would I handle anything more complex?  So far I have created everything by using the GUI interface under structure->content types but I see no way that I could call some php code after the user has uploaded the project to unzip their project and do whatever else I need to do.  Am I going about this wrong?
Have you taken a look at Open Atrium? It is not a Drupal module, rather a Drupal distribution pre-configured with a set of modules to help you manage projects. It includes functionality to upload files into projects, allows users to create new projects, etc.

Open Atrium has been around for a few years now, and it is pretty stable. Since it is Drupal (and hence, GPL'd), if the features that it brings does not satisfy your needs, as always, you can create your own modules to extend the existing functionality, or as a minimum, you could use Open Atrium to provide you ideas on how you might structure your project, which modules might help you out, etc.

There's also Storm, but it is currently available only for Drupal 6.x, and it's 7.x version is still not stable.