Nishant's example of a To-Do app is a good one. There is a website dedicated to building the same To-Do app using various technologies.
After you pick something to develop I recommend you build it again using different technologies. Each time you build it differently you will learn more about what you're building and why.
The first backend project I built used Meteor. That taught me a bit about databases, subscriptions, and sessions. Next I rebuilt it using Polymer. That made me better understand routing, templates, bower, and components. After that I built it using React. That helped me understand states, properties, and rendering the virtual DOM. (Note there is no correct order to learn these things. I suggest you pick the one that seems easiest to understand and start there).
All of those used slightly different design patterns for how data can flow. What can modify data, when, how, etc.
Each time you build a new version of the program you can also experiment with different data stores. MySQL, Mongo, flatfile, APIs, etc.