Sharpy is an application were users can create tasks for others to accept and complete. It uses the new Metro application capabilities so a user can create, manage and monitor tasks with a minimal number of actions. It leverages the Metro notification capabilities so it can help to manage and follow up tasks. The application permits to assign tasks to multiple sharpies (contacts that must complete the task) and owls (contacts that want to get notifications of the task state).
The application is developed in C# and XAML. Windows Notification Services and Push Notification are used to provide updates of the task state and contact details among users. In the back-end, I will use the patterns I covered on my
previous articles in CodeProject so the domain and persistence components can be implemented in a flexible manner decoupling the client side. In this way I can rapidly develop a proper back-end that could work well with cloud services at some stage in the future. The mentioned articles discussed the details of such a design.
The idea is simple, is it just me or sometimes when people are asked to do something, they just forget about it. So why not to provide an application where the person asking takes the responsibility; they normally do
it anyway in the form of a call, text message, email, whatsApp and so for.
So the proposed solution is to amalgamate the whole process, that is: request and
actioning in just one simple application where both sides can easily notify
each other when the task changes. The application defines two sets of task users: sharpies and owls. The sharpies need to acknowledge
the received task and complete it before are due; the owls monitor the acknowledges and task completions. Simple, isn't it?
The Sharpy application provides an easy way for everyone to interact, manage and monitor these tasks taking advantage of Windows 8 and the new Metro application functionalities.
The Sharpy application is still in a design stage, this article will be modified as new application artefacts are created so expect many updates over the incoming weeks. The goal of this
first version of the article is to address the scope of the application, high-level design and describe which technologies the application will use.
But it is still early days so if you can think of any feature that you might want to see in the application, let me know, place a comment
at the end of the article and we will take from there.
Application Scope - Functional Requirements
There are two main entities in the application: contact and task.
Contacts are authorised Sharpy users that can create tasks and assign to other users. The following functions will be available:
- Contact details
- Search for contacts
- Send invitations
- Accept invitations
- List of friends
Tasks are actions that users create and assign to contacts. The following functionality is required for tasks:
- Task details
- A user can create a task indicating start and due date/time
- The user can add sharpies to the task who will need to accept and complete it
- The user can also add owls to the task so they get notifications and follow when
tasks are complete
Sharpy uses the new Metro tile notifications to inform the user of Sharpy events:
- Invitation requests
- Accept tasks
- Notify changes of tasks assigned to other sharpies
- Overdue tasks
Sharpy uses the following notification mechanisms:
Those are the information and notifications that you can see directly through the application tile
Toast notifications deliver transient messages outside the app to get the user’s attention immediately. They are intended to be used only when the Sharpy application is not active.
A badge is a summary or status update concerning some application notification
In order to notify users of actions taken by other Sharpies, the application requires to use Push Notifications and Windows Notification services from the cloud which is new functionality for Metro applications in Windows 8. In a nutshell the Sharpy Notification design is as follows:
Application User Interface - Screens
The main screen provides access to three main functions:
- My Tasks
- Create new task panel
Summary data in relation to the state of tasks is displayed in the Sharpies tile, it also displays the last task notification
that has been registered. Icons are used for each state: Pending confirmation/acceptance, ToDo and Overdue.
The 'My Tasks' tile displays a summary of tasks that other sharpies have created and assigned to me. The tile also displays a set of summary state counters. The last section provides an easy to use mechanism to start creating a new task, once the 'SEND' button is clicked the application takes the user to another helper window to enter other details like due date, sharpies and owls
This is the screen that the application user uses for monitoring the tasks assigned to others. It tries to ease the navigation among sharpies and their tasks. A touchable screen will facilitate scrolling of lists and quick selections. This screen is divided in two sections:
- Left side: List of sharpies that have been assigned any tasks and the current user is an owl.
That is, the owl has been subscribed to those tasks, the task creator is
automatically assigned as an owl for the task.
- Right side: List all the tasks for the selected sharpie.
The design is very simple and should allow the user to be able to navigate in an easy manner from sharpies to tasks.
As it can be seen above, the sharpie title provides a summary detail with a description of the first task to accept/complete and a set of task state counters, sharpies are sorted by the task due date or creation date depending on the task state.
For the section on the right side, as it can see above, tasks are sorted by the due date/creation date, and each task also displays the last action that was taken.
My Tasks Screen
This screen is very similar to the right panel that is used in the Sharpies screen. A list of tasks assigned to the user are displayed
and sorted by due date and state. The user in this screen is able to accept tasks created by others and complete them. Again, usage is facilitate by the touchable screen for navigation and manipulation of the tasks.
In the next article update I will include a prototype screen of this function in the application.
Sharpy is a simple solution for a common daily problem, with an easy to use user interface leveraging a touchable screen and the new notification mechanisms included in the Metro applications, hopefully users should find the application valuable. I hope it can also become a good example of the Metro capabilities for other developers.
The competition is a fantastic idea, personally I was wondering what to look next, I had some ideas for Windows Phone but because the Windows 8 SDK was not available I was thinking of having a look at Android. Then by a chance, I heard about the competition last Thursday 18th Oct. Only on Friday I was opening Windows 8 and VS2012 for the first time. I have years of experience with XAML and I was not expecting to be able to do so much in so little time. I have to say that I am very impressed and I like it. It is very exciting, MS has done a really good job with W8 and VS2012.
23 Oct - First version of the article submitted - missing some sections and source code - I had to meet the deadline