johannesjo / super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.
http://super-productivity.com
MIT License
8.65k stars 753 forks source link
electron-app hacktoberfest hacktoberfest2022 jira linux macos productivity task-manager time-tracker timetracking to-do-list todo

Stand With Ukraine

Banner

MIT license GitHub All Releases Chocolatey package On product hunt tweet

Get it from the Snap Store English badge App Store Badge Play Store Badge F-Droid Badge Super Productivity is an advanced todo list app with integrated [Timeboxing](https://en.wikipedia.org/wiki/Timeboxing) and time tracking capabilities.

:globe_with_meridians: Open Web App or :computer: Download

## :heavy_check_mark: Features - **Keep organized and focused!** Plan and categorize your tasks using sub-tasks, projects and tags and color code them as needed. - Use **timeboxing** and **track your time**. Create time sheets and work summaries in a breeze to easily export them to your company's time tracking system. - Helps you to **establish healthy & productive habits**: - A **break reminder** reminds you when it's time to step away. - The **anti-procrastination feature** helps you gain perspective when you really need to. - Need some extra focus? A **Pomodoro timer** is also always at hand. - **Collect personal metrics** to see, which of your work routines need adjustments. - Integrate with **Jira**, **GitHub**, **GitLab**, **Gitea** and **OpenProject**. Auto import tasks assigned to you, plan the details locally, automatically create work logs, and get notified immediately, when something changes. - Attach context information to tasks and projects. Create **notes**, attach **files** or create **project-level bookmarks** for links, files, and even commands. - Super Productivity **respects your privacy** and **does NOT collect any data** and there are no user accounts or registration. **You decide where you store your data!** - It's **free** and **open source** and always will be. And much more! Work View with global links ## :question: How to use it If you need some help, [this article on dev.to is the best place to start](https://dev.to/johannesjo/getting-started-with-super-productivity-2791). If you prefer, there is also a (long) [youtube video available](https://www.youtube.com/watch?v=VoF2_RSdNXA). There is another older – the app looks and feels much better now ;) – [article](https://dev.to/johannesjo/super-productivity-how-to-grow-fond-of-time-tracking-and-task-management-22ee) on how I personally might use the app - and still [another one](https://dev.to/johannesjo/the-prioritising-scheme-how-to-eat-the-frog-with-super-productivity-mlk) on how I implement the 'eat the frog' prioritizing scheme in the app. [If you have further questions, please refer to the discussions page](https://github.com/johannesjo/super-productivity/discussions).
⌨ Keyboard shortcuts and short-syntax ### Keyboard shortcuts (most important) - `Shift`+`A`: Open add task bar - `Enter`: Edit currently focussed task title - `Arrow keys`: Navigate around task list - `D`: Mark currently focused task as done - `A`: Add subtask to currently focused task - `Y`: Toggle tracking time to currently focused task - `S`: Open schedule dialog for currently focused task - `Backspace`: Delete currently focused task - `ArrowRight`: Open additional info panel for currently focused task - `Ctrl`+`Shift`+`ArrowUp`: Move currently focused task up in list - `Ctrl`+`Shift`+`ArrowDown`: Move currently focused task down in list ### Short-Syntax Can be used when adding a task. - `# `: add a tag to the task (`"task-description #tag1"`) - `m` or `h`: set time-estimate for the task (`"task-description 10m"` or `"task-description 5h"`) - `+ `: add the task to an existing project (`"task-description +Important Project"`) - `Ctr + 2`: toggle between moving the new task to the bottom and top of the list
## :globe_with_meridians: Web Version Check out the web version even though it is a bit limited: Time tracking only works if the app is open and for idle time tracking to work, the chrome extension has to be installed. If you want the Jira integration and idle time tracking to work, you also have to download and install the [Super Productivity Chrome Extension](https://chrome.google.com/webstore/detail/super-productivity/ljkbjodfmekklcoibdnhahlaalhihmlb). ## :computer: Downloads & Install ### All Platforms [Install from the releases page](https://github.com/johannesjo/super-productivity/releases). ### Windows Due to certification issues it's recommended to download the app from the Microsoft Store: English badge You can also install the app using [Chocolatey](https://community.chocolatey.org/packages/super-productivity): ```powershell choco install super-productivity ``` ### Linux #### Snap - Most distributions Install via command-line: ```bash # stable sudo snap install superproductivity # edge channel releases sudo snap install --channel=edge superproductivity # it is also recommended to disable updates to the app while it is running: sudo snap set core experimental.refresh-app-awareness=true ``` Get it from the Snap Store #### Aur - Arch Linux ```bash git clone https://aur.archlinux.org/superproductivity-bin.git cd superproductivity-bin makepkg -si ``` ### MacOS Install via [homebrew cask](https://github.com/caskroom/homebrew-cask): ```bash brew install --cask superproductivity ``` App Store Badge ### Android There is a [very early(!) Android version available](https://play.google.com/store/apps/details?id=com.superproductivity.superproductivity&hl=gsw). The sources can be [found here](https://github.com/johannesjo/super-productivity-android). App Store Badge F-Droid Badge ## :hearts: Contributing Please check out the [CONTRIBUTING.md](CONTRIBUTING.md) There are several ways to help. 1. **Spread the word:** More users means more people testing and contributing to the app which in turn means better stability and possibly more and better features. You can vote for Super Productivity on [Slant](https://www.slant.co/topics/14021/viewpoints/7/~productivity-tools-for-linux~super-productivity), [Product Hunt](https://www.producthunt.com/posts/super-productivity), [Softpedia](https://www.softpedia.com/get/Office-tools/Diary-Organizers-Calendar/Super-Productivity.shtml) or on [AlternativeTo](https://alternativeto.net/software/super-productivity/), you can [tweet about it](https://twitter.com/intent/tweet?text=I%20like%20Super%20Productivity%20%20https%3A%2F%2Fsuper-productivity.com), share it on [LinkedIn](http://www.linkedin.com/shareArticle?mini=true&url=https://super-productivity.com&title=I%20like%20Super%20Productivity&), [reddit](http://www.reddit.com/submit?url=https%3A%2F%2Fsuper-productivity.com&title=I%20like%20Super%20Productivity) or any of your favorite social media platforms. Every little bit helps! 2. **Provide a Pull Request:** Here is a list of [the most popular community requests](https://github.com/johannesjo/super-productivity/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) and here some info on [how to run the development build](https://github.com/johannesjo/super-productivity#running-the-development-server). Please make sure that you're following the [angular commit guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits) and to also include the issue number in your commit message, if you're fixing a particular issue (e.g.: `feat: add nice feature with the number #31`). 3. **[Answer questions](https://github.com/johannesjo/super-productivity/discussions)**: You know the answer to another user's problem? Share your knowledge! 4. **[Provide your opinion](https://github.com/johannesjo/super-productivity/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A%22community+feedback+wanted%22):** Some community suggestions are controversial. Your input might be helpful and if it is just an up- or down-vote. 5. **[Provide a more refined UI spec for existing feature requests](https://github.com/johannesjo/super-productivity/issues?q=is%3Aissue+is%3Aopen+label%3A%22needs+concept+and%2For+ui+spec%22)** 6. **[Report bugs](https://github.com/johannesjo/super-productivity/issues/new)** 7. **[Make a feature or improvement request](https://github.com/johannesjo/super-productivity/issues/new)**: Something can be done better? Something essential missing? Let us know! 8. **[Translations](https://github.com/johannesjo/super-productivity/tree/master/src/assets/i18n), Icons, etc.**: You don't have to be programmer to help. Some of the icons really need improvement and many of the translations could use some love. [![inlang status badge](https://badge.inlang.com/?url=github.com/johannesjo/super-productivity)](https://fink.inlang.com/github.com/johannesjo/super-productivity?ref=badge) You can use the Fink Localization Editor to edit, lint, and add translations for different languages. [Contribute via fink Guide](https://inlang.com/g/6ddyhpoi). 9. **[Sponsor the project](https://github.com/sponsors/johannesjo)** ### Running the development server To run the development server you need to have node installed at least in the version 14. Go to https://nodejs.org for installation instructions. **Clone repo** ```bash git clone https://github.com/johannesjo/super-productivity.git ``` **Install dependencies** ```bash cd super-productivity npm i -g @angular/cli npm i ``` **Run the dev server** ```bash ng serve ``` Afterwards you can open http://localhost:4200 in your browser. For most adjustments this should be enough and also enables you to use the [redux dev tools](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=de). If you want to run the app standalone do the following: ```bash ng serve # in a new console tab npm start ``` ### Packaging the app Packaging the app is done via [electron-builder](https://github.com/electron-userland/electron-builder). To start packaging run `npm run dist`. If you want to add new platforms and experiment with the build options the easiest way to do so is manipulating the `build` property in the [package.json](https://github.com/johannesjo/super-productivity/blob/develop/package.json), but you can also use the [command line interface of electron builder](https://www.electron.build/cli). ## Run as Docker Container ```bash docker run -d -p 80:80 johannesjo/super-productivity:latest ``` ## Custom themes (desktop only) In addition to color coding your projects and tags and to the dark and light theme you can also load completely custom css to restyle everything. To load a custom theme you simply need put them into a new file named `styles.css` directly in the [user data folder](#user-data-folder). There is a great set of [themes available for download in this repository](https://github.com/johannesjo/super-productivity-themes/tree/main/dist) as well as some [info on how to role out your own custom themes](https://github.com/johannesjo/super-productivity-themes). ## Custom WebDAV Syncing If using the integrated WebDAV Syncing is not working out for you, you can also try to sync all app files, which are located in the [user data folder](#user-data-folder). ## Automatic Backups For the desktop version automatic backups are stored per default in the `backup` sub folder of the [user data folder](#user-data-folder). Once you located a backup you can restore it on the settings page under `Sync & Export/Import/Export/Import from file`. ## User Data Folder Where user data is stored differs from OS to OS. The most common locations are: | OS | Location | | ----------- | ----------------------------------------------------------------------------------------------- | | **Mac OS** | `~/Library/Application Support/superProductivity/` | | **Windows** | `C:\Users\\AppData\Roaming\superProductivity/` or `%APPDATA%\superProductivity` | | **Linux** | `~/.config/superProductivity/` | The path should be shown when you go to the "Automatic Backups` section on the configuration page (minus the "backup" sub folder). You can also see it printed out when you start the app from the command line. For web browsers, data is simply stored for the current user inside the browser storage. ### Using a custom folder to save user data You can specify a custom folder for saving your data by starting the application with the `--user-data-dir` parameter like so: ```bash superproductivity --user-data-dir=/path/to/my/data ```