Skip to content

Clean and usable WPF application that helps users focus on the spending time productively at their computers

License

Notifications You must be signed in to change notification settings

iskenxan/FOCUSME

Repository files navigation

FOCUSME

###Clean and usable application to focus on your work ##Basic Functionality:

  • Set the values for your session before launching it

![Image of Configuration.xaml] (https://raw.githubusercontent.com/iskenxan/FOCUSME/cabff64aa4e7109c31f0abff6e729b2568b50402/Config.gif)

  • Timer acts like a constant reminder, plus plays an alarm

![Image of Status.xaml] (https://raw.githubusercontent.com/iskenxan/FOCUSME/cabff64aa4e7109c31f0abff6e729b2568b50402/Status.gif)

  • Notification popups help you stay focused

![Image of Notification.xaml] (https://raw.githubusercontent.com/iskenxan/FOCUSME/cabff64aa4e7109c31f0abff6e729b2568b50402/Notification.png)

  • Final results window displays screen shots of your work

![Image of Results.xaml] (https://raw.githubusercontent.com/iskenxan/FOCUSME/cabff64aa4e7109c31f0abff6e729b2568b50402/Results.gif)

###About Project: The application is built using C# and WPF. Structured according to MVVM pattern. ![Image of MVVM] (https://raw.githubusercontent.com/iskenxan/FOCUSME/master/MVVM.gif)

###Interface: For building the interface I used MetroWindow package in Nuget.

###Code Snippet:

        void EventArrived(object sender, EventArrivedEventArgs e)
        {
  //gets the title of the process and creates a popup notification message
            //uses the dispatcher to run the method in the UI thread
            window.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() =>
            {
                processTitle = (string)((ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value)["Name"];
                var previousPopup = User32.FindWindow(null, ProcessTitle);
                if(previousPopup==IntPtr.Zero)
                {

                    popupMessage = "You launched " + processTitle + ". Do you really need it?";
                    Popup popup = new Popup();
                    popup.DataContext = this;
                    popup.Show();
                }
            }));
            }

###Areas for improvement

  • Making notification system more robust and pleasant for user
  • Fixing minor bugs
  • Any other useful functionality

####Anybody is welcome to contribute to this project. If something is not working properly use github's issue reporter on the right or shoot me an email at [email protected]

About

Clean and usable WPF application that helps users focus on the spending time productively at their computers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages