Challenge Overview
Project Overview
Dinnaco is looking for a simple and intuitive time tracking application that works on Windows 7+ desktops.
The application will record and summarise the time spent against projects and tasks throughout the day either by a timer or in blocks of time. The user can review the time recorded every 2 weeks and tweak the totals if necessary, and then this will be imported into the user’s SAP timesheet system. The application will also pull recently used project codes from SAP to allow the user to record time to relevant codes.
It is vital that the user experience is intuitive and fast by minimising mouse clicks, using keyboard shortcuts and screen hotspots where relevant to reduce the time it takes a user to record time.
Challenge Overview
The goal of this challenge is to convert the provided design into a .NET WPF clickable desktop prototype application.
Challenge Requirements
UI flow and navigation
The design screens are placed in this invisionapp (link https://invis.io/EY5LMVHA8 ) to show you the actions done in each screen, and flow/navigation between screens. Additional details and requirements are attached in the forums.
If any flow or action not clear, please post in forums to get clarifications from PM/Copilot.
UI and Screens in scope
-
Tray Reminder
-
Provide notification reminders to user.
-
Screenshots:
-
4d-Reminder-3.jpg
-
4b-Reminder-1.jpg
-
4c-Reminder-2.jpg
-
-
Clicking (x) will close the reminder popup.
-
Clicking on “Add New Project” should open “3a-Widget---New-project.jpg” screen.
-
Clicking on “Open Your Projects” should open “1a-Widget---Tracker.jpg” screen.
-
Clicking on “Start a timer” should open “1a-Widget---Tracker.jpg” screen.
-
You will use NotifyIcon.
-
Notifications Logic
-
No active projects – there are no projects currently loaded (show once a day at 10am)
-
o No timer is running – no timer is currently running (show once a day at 10am)
-
o Timer active – a timer is running against a project or task (show once an hour)
-
-
-
Tracker Small Widget
-
Screenshots
-
1e-Widget---Add-time.jpg
-
1c-Widget---Task-typing.jpg
-
1g-Widget---Resume.jpg
-
1a-Widget---Tracker.jpg
-
1f-Widget---Tracking.jpg
-
1b-Widget---Task-hover.jpg
-
1h-Widget---Check.jpg
-
1i-Widget---Details-hover.jpg
-
1d-Widget---Add-time-hover.jpg
-
3d-Widget---Empty.jpg
-
-
By default when no projects it will show the widget as shown in “3d-Widget---Empty.jpg” screen.
-
Clicking “New Project” should open “3a-Widget---New-project.jpg” screen.
-
This widget will list currently active projects, each section will have following information:
-
First row is the project row
-
Following rows are the tasks
-
“New Task” button add new row and allow user to insert description of the task or select from drop down.
-
-
For a task:
-
By default it will show 00:00 time in counter section.
-
Hovering over the task row will show “play” button, clicking on it will start the counter.
-
While the task is running hovering over it will show “pause” or “stop” icons.
-
Clicking on “pause” will show “play” and “stop” buttons and pause the timer.
-
Clicking on “Stop” will stop the timer and show “play” button.
-
-
User can add time manually by clicking on “Add Time” button (i.e. +6m), user will select a value, then click on “>” icon to close the “Add Time” section. The selected time will be manually added to the timer (increment timer).
-
-
There can be one single active task at a time.
-
User can navigate to details screen clicking on “>” icon as shown in this screen “1i-Widget---Details-hover.jpg”.
-
Selecting a task would mark it as complete.
-
The vertical dots when hovering over the task allows users to reorder tasks.
-
Editing task name should be implemented.
-
-
Task Details Small Widget
-
Screenshots:
-
2a-Widget---Task-details.jpg
-
2b-Widget---Task-details---select.jpg
-
-
User can do all actions a user can do for a task row as described in Tracker Small Widget described above.
-
Check as default should store the information in JS to simulate how to mark a task as default or not.
-
Add project to SAP button should be dead link, no action to be done when clicking on it for now.
-
DELETE button will remove the task from the project.
-
Clicking Back button in header will take user back to Tracker Small Widget.
-
Clicking Expand icon will open up the Full screen version of Task Details.
-
-
New Project Small Widget
-
Screenshots:
-
3b-Widget---New-project---SAP.jpg
-
3c-Widget---New-project---Temporary.jpg
-
3a-Widget---New-project.jpg
-
-
In your solution you need to simulate loading SAP project or creating a temp project. Both should be saved in JS and rendered in Tracker view.
-
The flow is shown in the invisionapp, if you have any questions please ask in forums.
-
-
Tracker Full Screen
-
We don’t have screenshot or design for this, but basically it will be a full screen view same as “5b-Fullscreen---Settings.jpg” screen but content will be similar to the Tracker content.
-
The functionality of the page will be same as Tracker Small Widget but we for Task details we show a small widget as in “6a-Fullscreen---Day-view.jpg”.
-
-
Settings Screen
-
Screenshots:
-
5b-Fullscreen---Settings.jpg
-
-
Clicking on the checkmark circle will enable that field.
-
Tracking Days – the days will be checkboxes, user can check/uncheck a day to specify the days.
-
Tracking hours and Launch Hours: the fields values should allow only value in “HH:MM” format between 00:00-12:00.
-
Default Add Time : this is a radio group buttons.
-
Active Projects : nothing happen when clicking on “Select from Map” button.
-
Shortcuts : the combination should be keyboard keys combination. How to implement this should read directly from user clicking on the keyboard.
-
Notifications :
-
For first two rows the field values format will be same as tracking/launch hours.
-
For the Submission Reminder this will allow users to set the reminder day of the first/last two weeks.
-
-
-
Summary Full Screen View
-
Screenshots :
-
6b-Fullscreen---Week-view.jpg
-
6c-Fullscreen---Submitted.jpg
-
6f-Fullscreen---Meeting-Hover.jpg
-
6d-Fullscreen---Meeting-setting-1.jpg
-
6a-Fullscreen---Day-view.jpg
-
6e-Fullscreen---Meeting-setting-2.jpg
-
-
We don’t have small widget view of this screen.
-
The date in top of the screen represents the date selected in the calendar, by default it is current day. User can also select a range so this will show start/end date of the range as shown in the “6b-Fullscreen---Week-view.jpg” screen.
-
The project/tasks list will work same as described above.
-
Viewing task detail will show the right side widget as shown in “6a-Fullscreen---Day-view.jpg“ screenshot.
-
For select view, if week is selected then the calendar by default will select the current week.
-
Day view is not required so Select View clicking on “Day View” nothing will happen.
-
User can drag and drop a meeting from left side and drop it in a task. This will help user to view tasks associated with meetings, so when hovering over a meeting it will highlight the meeting and tasks associated as shown in 6f-Fullscreen---Meeting-Hover.jpg screen.
-
Submit button get enabled only if user select at least one task.
-
The Submit/Validate/New Project buttons hover state should look like the Submit button styling in “6f-Fullscreen---Meeting-Hover.jpg”
-
Technology Stack
-
- .NET Framework 4.5
-
- C#
-
- WPF
-
- XAML
Documents
The design and screenshots are provided in challenge forums.
Final Submission Guidelines
Submission
-
- All the files that implement the above requirements.
-
- Deployment document to deploy the prototype.
-
- Notes file to reviewer if needed.