Inspiration

As freelance developers, we thought that we could improve our cash-flow by doing a better job of tracking our time, and since we are working with Alexa day in and day out it seemed natural to use her abilities to help us. As it started to come together we thought it might be useful to other people and by using ISP we saw an easy way to monetize it.

What it does

With Milestone a user can record time log entries against tasks they define. The user can tell Alexa to record a block of time on a particular task, or they can start and stop work timers for automatic logging, i.e "Alexa, tell Milestone to start a timer on the Johnson case", or "Alexa, add 90 minutes to QA for Project Mobile App". Basic (free) users can have one project, and up to 10 active tasks. With a "Premium subscription" the user can define any number of tasks and projects. Tasks and projects can be defined through the Alexa voice interface, but all users have access to our web portal (with a linked account) where they can manage those as well. The web portal (portal.MilestoneTime.com) allows users to review their time records, and export them to a CSV file. We store all the time records for all users indefinitely, but for free subscribers we only allow them to see a the previous 2 days. Premium subscribers can review all of their data, using date filters to review specific ranges.

How I built it

We used the ASK for Node.js, and Visual Studio Code and the ASK extension. After trying a couple of different platforms we settled on Azure SQL, because it made it easier to build the web portal (building Azure SQL web apps is our primary business!).

Challenges I ran into

Balancing various limitations of the Alexa ecosystem - APL, Dynamic Entity Resolution, Acct Linking and ISP; and integrating those with a .NET Core Azure web app got to be kindof tricky.

Accomplishments that I'm proud of

Our research showed that other skills for this same idea had frequent problems with resolving the names of the tasks to be logged against; I think our use of Dynamic entities will make us stand out in that market. Also we really did some intricate work with APL that turned out really nice.

What I learned

We had to learn DER, ISP, Account Linking, and Alexa Event handling. We really expanded our toolbox with this one!

What's next for Milestone Time Tracking

We want to integrate with an Enterprise tools like Harvest, or maybe Jira. So, a user could import their task names from Harvest, and Milestone could send time entries via Harvest API directly into their timesheet.

Built With

Share this project:

Updates