Creating desktop application that tracks time spent in different programs

i'm a CS student and for my semester project I want to make an app that tracks user time in different programs, prepares reports with time spent user spent "productive" and how much procrastinating, shows how much time user spends doing some tasks ans stuff like that.

I know there is a bunch of applications like that but I feel completely clueless about where should i start and how i might make it work.

I wasn't able to find any tutorials or articles on the subject, so i try to ask somebody for help. Maybe somebody could hint me in right direction or give a link to related tutorial.

Thank you in advance

2 answers

  • answered 2018-04-14 17:16 Nova Sys Eng

    Ok, granted, you're a "budding" programmer. As is the case for any huge task (your app doesn't sound like a college class calculator program), the first step is to break the problem into pieces. Did you pay attention to the class you took (I'm sure its part of your CS class curriculum) regarding requirements and design? So, I think the first step would be to put coding aside for the moment, sit down with paper and pencil, and jot down some program requirements for your user time tracking app. What are the expected inputs to your app? What transformations will your app make to this inputs? Finally, what outputs should your app produce?

    A good way of making your brain think about these topics is to write use cases or user stories. Once you understand what your app needs to do, you can think about a design (e.g., Steps to design) and then writing the code. One major decision during design time will be a high level decision regarding how you'll approach the design. Two (of many) primary approaches being procedural (a.k.a. functional) or object-oriented.

    For an app of this size, you have a lot to do before writing the first line of code, IMHO.

  • answered 2018-04-15 13:29 Alex Fedosenko

    In case anyone out there having same question.

    In C# there's actually a class Process (https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx) It has a lot of useful methods like getProcess() which returns all processes currently running on a computer.

    And about this class there are articles like (https://www.c-sharpcorner.com/uploadfile/puranindia/understanding-process-in-C-Sharp/) with in-depth explanation how everything works and how to use it.