In my first post, I outlined the 3 major components of the system I am thinking about - Web site, Web service, and Android app. At first I thought I would dive right into programming the Android application, but then I realized that I was about to make the same mistake my business users make. I was about to develop something without first thinking through the use-cases I wanted to accommodate. So, this post is going to deal with the use-cases I will be developing.
First let's talk about the Web site. Here are the use cases I want available for my first revision:
- Allow a user to set up a new account
- Allow a user to set up a new 'Family' (or group)
- Allow a user to send invitations to other users to sign up/join the group
- Allow a user to add a list to the Family
- Allow a user to add an item to a list
- Allow a user to mark an item as purchased
- Allow a user to mark an item as needed again
- Periodically poll the server for lists
- Synchronize the local list with the server and save it (rules for conflicts?)
- Allow a user to view lists
- Allow a user to mark an item as purchased
- Allow a user to mark an item as needed again
- Allow a user to force a sync (He may want to do this right before entering a store)
Given the functionality on the Android application, I believe the needs of the Web service become apparent
- Provide a service to allow a user to sync the lists from his groups
Now that I look at that, I believe this is going to be a bit more work than I thought, but not too bad. I can see that there are many more use cases for the Web application than I thought, and many fewer for the Web service.
Next: Let's do some UML and Sequence diagrams.
You will probably also need a feature that gets your wife to use the app instead of immediately calling you at work for each item :P
ReplyDelete