I'm newbie for JMeter and performance testing. I have googled up and down all the available resources and tutorial online to setup a performance test plan. I need expertise from the forum members to point out
1) What is missing from my test plan?
2) Is my test plan sufficient for the performance testing?
3) How I plan for the user think time in my test plan? What is the best timer (constant, random or etc) options for each of my request?
4) What I need to enhance from my test plan?

General picture for my test plan:
User login to application to upload their document via document library module. Upload the document. Logout from the application.

Test Plan:
-Test Plan
- Thread Group
- Login Controller, Once only controller
- Login landing page
- User login
- Dashboard, simple controller
- Document Library, simple controller