View Code? Open in Web Editor
NEW
Desktop productivity with "not your average quick launcher" plus Pomodoro Timer! ๐
by Xeno Innovations, built using Mono.Addins. Coming soon is the sidebar desktop dock similar to RocketDock or ObjectDock
Home Page: https://xenoinc.com
License: GNU General Public License v3.0
toolshub's People
Contributors
toolshub's Issues
As a developer, I'd like to have automatic features during check-in like continuous integration, code coverage, and apply the badges to the readme.md
file so the public can see how the project is doing.
Acceptance
Remove gitlab's ci because it doesn't work
Sign-up for ci and add baddge
Sign-up for code coverage and add badge
Add badge for project license
Out of Scope
Style checker & badge
Up-to-date security checker & badge
See also:
As an app, I want to detect when the system is shutting down and inform any add-ins that the event is occurring. This will help to safely deallocate objects/processes.
Acceptance
Send shutdown signal to add-ins
Out of Scope
If there are any add-ins which need to perform actions based on this, a new backlog item will need to be created for it.
As a user, I would like for my saved Shortcut to launch its link whether it's an application, folder, or URL
Acceptance
Launch link if it's an application, url, or folder
Out of Scope
Application parameters
Custom link addresses
As a user, I would like for my saved Shortcut to launch its link whether it's an application, folder, or URL
Acceptance
Launch link if it's an application, url, or folder
Out of Scope
Application parameters
Custom link addresses
As a user, I want the add-in list to display 3 columns of info about the add-in. Data should include: (1) Icon, (2) name, and (3) version number
As a user, I want to have a custom sidebar background which takes in PNG format for background transparency.
Acceptance
Load background from settings
Set background via preferences
Allow background transparency if PNG
As a user, I want to have a basic Sidebar add-in manager for extensibility.
This should extend similar to the SysTray
As a user, I would like for add-in's node in the TreeView to be listed under a Category. This will help the grouping an item's purpose.
Acceptance
Display add-in's node under a supplied Category. If none provided, it goes under "Generic"
As a user, I want to be able to quickly mount VeraCrypt virtual drives via our Shortcuts launcher.
NOTE: This is the first pass, only apply and will not be as feature-rich as we'd like it to be.
References: https://www.veracrypt.fr/
Acceptance
Out of Scope
Applying very, very strong encryption for storing passwords.
Discovering if drives are pre-mounted
Handling multiple drives
SignOn/LogOff/Shutdown handlers
Refreshing SysTray after mounting/dismounting
The MSBuild scripts in the build.proj
file is incomplete and can cause issues if executed. Please remove erroneous code and fix missing targets.
As a user, I would like to have the Shortcuts editor display a GUI editor instead of JSON data for easier editing of items.
Acceptance
Out of Scope
As a user, I want to be able to view an add-in's preferences in the add-in manager
Acceptance
Manager must accept in Panel object (WinForms)
Out of Scope
Saving and loading of add-in preference data
As a user, I only want to have only one instance of the app running.
Acceptance
Only allow app to run once
Out of Scope
Don't check for remote desktop instances
As a user, I want the Shortcuts add-in to use the new Settings manager.
Acceptance
Initialize the Settings service/manager
Save and load Shortcuts from its add-in PropertyBag
Update Properties page to load/save
Out of Scope
Additional enhancements to the Settings add-in
As a user, I would like to begin migrating the Pomodoro project to an add-in driven by the ShortcutsAddin.
Pull Request : #69
Acceptance
Start/pause/stop timer
Short and Long breaks
Update SysTray with a count-down to completion
Reset SysTray icon back to default when done
Out of Scope
Properties configuration to disable it
Launch from SystemTray ExtensionPoint
Tasks
As a developer, I would like to have a working external XML based add-in example
Acceptance
Rename, SampleAddin to SampleXmlAddin
Create SampleAssmAddin which doesn't use XML manifest files
Have them use OnStart
and Utility
paths
Prepare them to have a Preference page
As a user, I want the option to display an icon transparency based on which icon we are over top of. For instance, the current icon is set to 90%, 2nd=50%, 3rd=25%, 4th=0%
Acceptance
Setting to enable/disable this feature
Setting: Transparency level of selected icon
Setting: Transparency level of proximity icons
Displaying icons using the set rules
As a user, i would like to have a "drawer" plugin which acts as a (single) subdirectory and expands outward.
Acceptance
Default style: linear (linear horizontal or vertical?)
Out of Scope
Changing Expansion styles (curved, linear
As a user, I would like to load the project Pomodoro project as a utility add-in.
This add-in will serve as a Utility loader example
Related to pull request : #69
Acceptance
Migrate from standalone EXE to DLL
Launch as an external add-in
Load on startup as Utility
Out of Scope
Properties configuration to disable it
Launch from SystemTray ExtensionPoint
Tasks
As a developer, I want the system to discover a basic add-in to ensure that the Mono.Addin system is functioning correctly.
Acceptance
Use the path, ToolsHub/AppInitialize
for addins
Create a simple test add-in
As a developer, I would like for the System Tray to have an add-in extension point. This would allow for quicker access to add-in features
Acceptance
Create systray extension point
Allow add-ins to add menu item
Out of Scope
As a user, I want to be able to launch utilities. Replace the ApplicationAddon ext point with /ToolsHub/Utility
.
Acceptance
Execute after all other components application have been loaded.
As a user, I want to the Sidebar to startup via the add-in extension point.
Acceptance
Use ExtensionPath to be loaded on startup
As a user, I want to be able to move Shortcut items around using a drag-n-drop method
Acceptance
Move items up/down using drag-and-drop with the mouse pointer
Move item up/down using on-screen buttons (optional)
As a user, I want to sidebar to disappear into the left side of the screen when the mouse is no-longer over it (5sec) and reappear when mouse is on the left side for 1sec.
Acceptance
Auto-hide based on specified duration
Out of Scope
Setting which side of the screen to hide/show on
Setting the duration
As a user, I want the Pomodoro timer to make sounds OnStart, OnComplete, and OnPause. However, I don't want to carry along heavy WAV or MP3 files; let's generate the sounds!
Reference:
As a user, I want to see all add-ins with a Preference page to be listed in the side TreeView.
Branch: feature/pref-page-init
Acceptance
Fix ExtensionPoint for /ToolsHub/PerferencePage
if needed
List add-ins discovered preference pages into the left side TreeView
Out of Scope
Displaying the node as sub-item of a category in the TreeView
Displaying graphical icon for enabled/disabled status
As a user, I want to be able to update a Shortcut's item info using the Preference page's editor
Acceptance
Out of Scope
Moving items via drag-drop
As a user, I want the add-in manager do display an enabled icon and title of the add-in.
Acceptance
Display icon (enabled/disabled )
Display title of add-in
Out of Scope
Changing status of icon. See story, #10
Displaying add-ins under a category
Custom loading of add-in's own icon
As a user, I want to visibly know if the add-in is enabled or disabled based upon the icon's status in the add-in manager.
Acceptance
List of add-in's icons should change depending on enabled/disabled status
Out of Scope
Custom icons supplied by add-in
As a user, I want my sidebar shortcuts to be loaded from the portable settings.
Acceptance
Use INI file to load shortcut icons
Use INI file to set shortcut's path
Display icon in the sidebar
Out of Scope
Global settings file for multiple users
As a user, i want the shortcut icons to display their own icon. If one is not found then use generic
Acceptance
Out of Scope
Overriding with a custom icon
As a user, I want to be able to add commands to the SystemTray via Mono.Addins using the ICommand interface.
As an app, I'd like for the core system to handle and initialization extension point for add-ins.
Acceptance
Create an extension point for initialization and execute
As a user, I want to be able to reorganize icon order by performing drag and drop along the sidebar
As a user, I want to be able to add/remove items from my Shortcuts add-in
Branch: feature/pref-shortcuts
Acceptance
Create simple Shortcuts editor preference page
Edit json file in text editor for first pass
Out of Scope
As a developer, I want to prepare ourselves for IoC, so stop using our settings as a static class which is almost a singleton. Use Application.Settings property to keep the settings in-memory.
Acceptance
Convert Settings class from static class to regular class
Control settings from the Application.Settings property
Out of Scope
Implementing IoC if possible
As a developer, I would like to be able to loosely communicate between add-in host and extensions via a Message Sender . This allows us the ability to send a signal out to parts of our code and only listening parties can act upon it if they choose to do so.
For example, we want to refresh the System Tray after editing it. We wouldn't need IoC, just simply send a message to inform SystemTrayManager
to refresh its menu cache and display it.
Acceptance
Implement a MessageSender
Create simple system tests
Use a sample external add-in
Out of Scope
Fully implementing it across all extension points
As a user, I want a simple sidebar for launching applications
Acceptance
Display generic icon and text
Launch link
Read list of links from config file
Out of Scope
As a developer, I would like to test the Shortcut add-in's ability to load (dummy) data and display it as a sub-menu in the SystemTray.
As a user, I want to see all add-ins loaded into the system
Acceptance
List add-ins discovered by the system into the left side TreeView
Ability to enable/disable a selected add-in
Out of Scope
Displaying the node as sub-item of a category in the TreeView
Displaying graphical icon for enabled/disabled status
As a user, I want to be able to easily add/remove shortcut add-in items using the TreeView editor in the Preferences dialog.
Acceptance
Out of Scope
Editing JSON data (text and targets)
Moving items via drag-drop
As a user, I want to have the ability to start ToolsHub when the system starts. Also, provide options for which method of auto-startup we should perform.
Acceptance
Create "General" settings page
Create a checkbox to start the app with Windows
Create a dropdown for startup method
Start menu (current / all users)
RegEdit (current / all users)
Save settings
Out of Scope
As a user, I want to be able to store application preferences for core and add-ins into a simple db system (sqlite? ). This preference data manager will be used to save/load/reset settings. Consider the storage datatypes needed for storage. Perhaps, everything is a string?
Acceptance
Research options for data storage (sqlite, ini, xml, etc)
At the very least implement a string-based storage system
As a user, we should not be loading Shortcuts directly from SysTray class. Instead, we should be initializing it via Mono.Addins .
Acceptance
Fix SysTray ExtensionPoint class and attributes
Create Shortcuts Extension for SysTray, only providing target path
Tasks:
As a user, I want to be able to set the transparency level of the sidebar
Acceptance
Set alpha transparency of sidebar
As a user, I want to be able to access the application via the Windows' SystemTray icon.
Acceptance
Menu item: Preferences
Menu item: About
Menu item: Exit
Out of Scope
Add-in expandability
Pretty icon
As a developer, I would like to see the design document for how the app plans to implement the ExtensionPoint
for SystemTray via Mono.Addins.
Acceptance
Create wiki document for integration plans
Create additional stories if need be
Out of Scope
Implementing code for changes
Allow user to add shortcuts by drag/drop onto sidebar
Allow user to remove shortcut by dragging it off the sidebar
As a developer, we must follow the rules set forth by Xeno Innovations' StyleCop ruleset
Acceptance
Publish the rules file to our public gist
Modify all files to reduce warnings in accordance to the rules