Basically: divide and conquer. Your 2nd paragraph essentially defines three major partitions to your app. That's a good place to start your organization. Within each of those partitions, perhaps think about how it breaks down in terms of database, processing, and user interface. In addition, you'll want to keep an overall picture in mind as far as the database design goes in terms of what the data interactions/dependencies might be between those areas.
You may at this time want to look to see if any framework, CMS, etc. looks like it can handle a lot of this for you.
At that point you should be ready to pick one aspect of one section and start getting into the nuts and bolts: determining what, if any, 3rd-party software to use (e.g. PHPMailer to help with the email aspects?) along with the detailed design and implementation. Just keep breaking things down until you have individual classes (or include files) and then down to individual methods (or functions). If you keep things loosely coupled, you don't have to keep the entire app in your mind at all times.