Actually you already made the first step. Your list looks pretty well as a top level of WBS. Another step would be decomposing these features into lower-level tasks. For such a simple application I would probably end up with only a couple of levels on WBS and wouldn't try to split any further.
Example of what I'm talking about could look something like:
Authentication module
Database design
User list
CRUD for managing users
Log in screen
Mechanism to verify permissions (access to specific function)
etc.
Task management
Database design
Task list
CRUD for task
...
Note: here's what I understand as CRUD
You should end up with simple hierarchical structure which represents fairly well what your app is going to do.
UPDATE (After Stephan's answer): What I assumed here was that every feature (database design, user list, etc.) is a deliverable, which means at the completion of the feature you have it working: tested and deployed (if you work on web-based app). It is approach used often in agile approaches where you often try to complete whole production cycle on feature-level and avoid splitting the project into phases: design, development, testing, deployment, etc.