I have been planning to write a Spring testing book for some time now. About a month ago I tried to create a table of contents for the book. I failed miserably.
The problem was that although I know what should be in the book, I found it hard to write my thoughts down. I decided to stop thinking about it and try again when I feel inspired. That was a big mistake. As you probably figured out, the inspiration never came.
This Is My Idea
Today I decided to take a bit different approach:
I started think what kind of example application I should write. I came up with following requirements:
- It should support multiple authentication mechanisms (form login, social sign in, and so on).
- It should have a file upload function.
- It should have scheduled jobs.
- It should be possible to implement the application as a single page application and as a normal Spring MVC application.
- It should use relational database and NoSQL database as a data storage.
After I had created this list, I had an idea about one possible example application. The example application could be a simple to-do list which has the following requirements:
- It must be possible to create an user account by using form and social sign in (and so on).
- It must be possible to authenticate by using form login and social sign in (and so on).
- It must have crud functions for to-do items.
- It must be possible group to-do items by adding tags to them.
- It must be possible to search to-do items.
- It must be possible to list to-do items which are tagged with a specific tag.
- It must be possible to add file attachments to to-do items.
- It must be possible to send email reminders to user when the due date of an open to-do item is approaching.
- Only the owner of a to-do item can see or modify its information.
What Do You Want?
Before I start to implement this application, I want to hear your opinion about it. Your feedback is very valuable to me because I want to write a book which is both interesting and useful. I would appreciate if you would answer to these questions:
- Did I miss an essential requirement?
- Is the example application good enough for this kind of book? If not, what would be a better choice?
Thank you for your time!