Commit b7d95624 authored by ransome1's avatar ransome1
Browse files

Project clean up

parents
---
name: Bug report
about: Create a report and help to improve sleek
title: ''
labels: 'bug'
assignees: 'ransome1'
---
**Is it an actual bug?**
Or can it be a specific behavior of sleek that others would not consider a bug? In this case a feature request can be better suited: https://github.com/ransome1/sleek/issues/new?assignees=&labels=&template=feature_request.md&title=
**Did you check if the bug has already been reported?**
Please do so first: https://github.com/ransome1/sleek/issues
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Do you see any error entries in sleeks developer tools?**
While sleek is open press Ctrl + Shift + I which will open the developer tools. If the shortcut doesn't work, press the Alt key, select the tab "About" and select the developer tools. In the dev tools select the tab "Console" and check if any error entries are written, while you provoke the bug.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Ubuntu 20.10, Windows 10, Debian 10.9, MacOS 10.15 et cetera]
- Version of sleek [e.g. 0.9.8]
- Source: Github, Snap Store, Flathub, Windows Store
---
name: Feature request
about: Suggest an idea for sleek
title: ''
labels: 'feature request'
assignees: 'ransome1'
---
**Did you check if a similar feature request has already been reported?**
Please do so first: https://github.com/ransome1/sleek/issues
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
name: Build/release
on: push
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Check out Git repository
uses: actions/checkout@v1
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
with:
node-version: 14
- run: npm install electron-builder --save-dev
- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}
# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
# publish-aur-package:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
#
# - name: Publish AUR package
# uses: KSXGitHub/github-actions-deploy-aur@v2
# with:
# pkgname: sleek
# pkgbuild: ./PKGBUILD
# commit_username: ${{ secrets.AUR_USERNAME }}
# commit_email: ${{ secrets.AUR_EMAIL }}
# ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
# commit_message: Update to latest sleek release
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '43 17 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
name: Mirror to opencode.net
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Mirror + trigger CI
uses: SvanBoxel/gitlab-mirror-and-ci-action@master
with:
args: "https://www.opencode.net/ransome/sleek.git"
env:
GITLAB_HOSTNAME: "opencode.net"
GITLAB_USERNAME: "ransome"
GITLAB_PASSWORD: ${{ secrets.gitlab_password }}
GITLAB_PROJECT_ID: "https://www.opencode.net/ransome/sleek/edit"
GITHUB_TOKEN: ${{ secrets.github_token }}
# This workflow integrates njsscan with GitHub's Code Scanning feature
# nodejsscan is a static security code scanner that finds insecure code patterns in your Node.js applications
name: njsscan sarif
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '41 10 * * 3'
jobs:
njsscan:
runs-on: ubuntu-latest
name: njsscan code scanning
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: nodejsscan scan
id: njsscan
uses: ajinabraham/njsscan-action@master
with:
args: '. --sarif --output results.sarif || true'
- name: Upload njsscan report
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif
node_modules/
dist/
*.log
*.DS_Store
*.snap
*.bak
snap/local/
*.py
*.ini
.gitignore
*.db:encryptable
*.db
System Volume Information/
build/
Thumbs.db
flatpak/generated-sources.json
flatpak/com.github.ransome1.sleek.yml
assets/icons/bak
MIT License
Copyright (c) 2021 Robin Ahle
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Privacy Policy for sleek
This document contains types of information that is collected by sleek and how I as it's developer use it.
I myself am very sensible about my own privacy and in these days of massive and needless collection of personal data, I want sleek to be different. I am not interested in who sleek's users are and will therefor don't gather sensitive data.
However I would like to know how many users are actively using sleek and, in case a user explicitly agrees to it, how sleek is being used. The app communicates with a Matomo instance I host myself. The data is exclusively sent via a secure SSL-encrypted connection. sleek follows a standard procedure of logging. The information collected by Matomo include only masked internet protocol (IP) addresses, operating system, screen resolution, date and time stamp as well as the user's basic app settings. Also a non personalized random user id is being generated. Like this I can see how many unique sleek users are out there without collecting sensitive data.
## Default logging
Once sleek is opened, it will announce to the Matomo instance that it has been started. This happens one time per app session and has the purpose of telling me how many users are using sleek and where these users are roughly located. With this information I can for instance decide which language should be added next and so forth.
## Error logging
Error logging is not active per default. You need to activate it explicitly in sleek's settings. While developing sleek, I rely on error response messages, that tell me what is going on with sleek. The problem with this is, that I can only see errors I provoke myself using sleek for my own use cases. But these will most likely differ from how other users will utilize the app. Once the error logging is active, all error information users provoke will be sent to the Matomo instance. With this information I can maintain and improve sleek.
## Event logging
Event logging is not active per default. You need to activate it explicitly in sleek's settings. Events are mostly clicks on buttons, checkboxes, links and so on. This information is valuable to me, as it tells me which features are used and which ones are not. Those insights help me keeping sleek clean of unnecessary features that will interfere with sleeks usability. This type of logging will not collect any personal information like the content of your todos, filters or whatsoever. It will only tell me which elements have been clicked.
## Cookies
sleek itself doesn't use cookies. Data that needs to be persisted, is written to a local file that is not being transfered anywhere else but your computer.
By using sleek, you hereby consent to this Privacy Policy.
If you have additional questions or require more information about this Privacy Policy, do not hesitate to contact me.
# sleek
## sleek is a todo app based on todo.txt, free and open-source. Available for Linux, Windows and MacOS
sleek is an open-source todo app that makes use of the todo.txt format. sleeks GUI is modern and clean yet offers a decent set of functions which help users getting things done. sleek is available as a client for Windows, MacOS and Linux.
By using sleeks GUI or simply writing in plain text todo.txt format, users can add contexts, projects, priorities, due dates or recurrences to their todos and use these todo.txt attributes as filters or search for them by full text search.
sleek watches todo.txt files continuously for changes so it can be used with other todo.txt apps. Users can switch between bright and dark mode, choose several languages and manage multiple todo.txt files.
The todo list can be sorted and grouped by priorities or due dates. Todos with due date or repeating todos will trigger alarms with thresholds of 1 or 2 days before the due date. Completed todos can be hidden or archived into separate done.txt files and if users have tons of todos, a compact view can come in handy.
![Alt text](assets/screenshots/mac/main.png?raw=true "Screenshot of sleek's main view as seen on MacOS")
![Alt text](assets/screenshots/mac/main_filter_dark.png?raw=true "Screenshot of sleek's filter drawer in dark mode as seen on MacOS")
### Support sleek by
* staring, forking and watching it on Github. Once sleek reaches **30 watchers, 30 forks and 75 stars**, we can distribute it to MacOS using the <a href="https://github.com/Homebrew/brew">Homebrew Package Manager</a>
* reviewing it on <a href="https://sourceforge.net/projects/sleek/reviews">SourceForge</a> or <a href="https://www.microsoft.com/store/apps/9NWM2WXF60KR">Windows Store</a>
* contributing <a href="https://github.com/ransome1/sleek/issues">bug reports, code improvements, features or simply suggest new features</a>
* translating sleek into your own language and contributing your translations
### Get it from Microsoft Store
You can install sleek from Microsofts Windows Store
<a href='//www.microsoft.com/store/apps/9NWM2WXF60KR?cid=storebadge&ocid=badge'><img src='https://developer.microsoft.com/store/badges/images/English_get-it-from-MS.png' alt='English badge' width='180'/></a>
### Get it from Snap Store
You can install sleek from Canonicals Snap Store using: `sudo snap install sleek`
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/sleek)
### Get it from Flathub
Install sleek from <a href="https://flathub.org/apps/details/com.github.ransome1.sleek">Flathub</a> using: `flatpak install flathub com.github.ransome1.sleek`
Run it using: `flatpak run com.github.ransome1.sleek`
<a href='https://flathub.org/apps/details/com.github.ransome1.sleek'><img width='180' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a>
### Get it from Arch User Repository
Install sleek from <a href="https://aur.archlinux.org/packages/sleek/">AUR</a> using: `yay -S sleek`
### Download it for Windows, Linux or MacOS
You can download sleek for Windows, MacOS and Linux from
- <a href="https://sourceforge.net/p/sleek/">SourceForge</a>
- <a href="https://github.com/ransome1/sleek/releases/latest">Github</a>
### sleeks' Roadmap 2021
A prioritized backlog for new features and known issues can be found on <a href="https://github.com/ransome1/sleek/projects/2">sleeks' roadmap for 2021</a>.
### Features
* An existing todo.txt file can be used or a new one can be created
* Todos can be
- added
- edited
- marked as complete (and vice versa)
- deleted
* A todo can be hidden (add "h:1") but its attributes will appear in filter list and auto complete
* Dark and light mode can be toggled
* A compact view is available
* Completed todos can be bulk archived to a separate done.txt ([name of todo file]_done.txt) file
* Completed todos can be shown or hidden
* Todos can be enriched by
- contexts
- projects
- start dates
- due dates
* Multi line todos can be created
* A due date can be set using a datepicker
* Todos can repeat themselves based on a given due date. You can use a dedicated picker to add the recurrence or type it in by hand:
- "rec:d" (daily)
- "rec:w" (weekly)
- "rec:m" (monthly)
- "rec:y" (annually)
- also more specific recurrences are possible: "rec:2d" (every 2nd day)
* Available contexts and projects will be suggested according to your input
* Todos can be filtered by contexts and projects
* Todos can be sorted and grouped by
- Priorites
- Due dates
- Projects
- Contexts
* Filters are sorted alphanummerically
* Todos can be looked up using full-text search
* Hyperlinks are detected automatically and can be clicked using the icon
* Alarms will be triggered when a todo is due tomorrow or today
* Todos that include either contexts or projects can be shown or hidden entirely
* A file watcher rereads the todo.txt file if it has been changed
* Multiple todo.txt files can be managed
* Multiple languages are automatically detected or can be set by hand
- English
- German
- Italian
- Spanish
- French
* Tabindex available
* Existing todos can be used as templates for new ones
* Basic keyboard shortcuts are available:
- New todo: CMD/CTRL + n
- Find todo: CMD/CTRL + f
- Show or hide completed todos: CMD/CTRL + h
- Toggle dark mode: CMD/CTRL + d
- Open file: CMD/CTRL + o
- Open settings: CMD/CTRL + ,
- Toggle side bar: CMD/CTRL + b
- Set priorities (available when add/edit window is open): CTRL+SHIFT+[A-Z]
- Submit todo (available when add/edit window is open): CTRL + Enter
### Build sleek from source code
1. Setup <a href="https://docs.github.com/en/github/getting-started-with-github/set-up-git">Git</a> and <a href="https://nodejs.org/">node.js</a>
2. Fork sleek `git clone https://github.com/ransome1/sleek.git` and cd into sleeks directory
3. Install dependencies `npm install`
4. Build sleek `npm run dist` (Binaries for all plattforms will be put into the `dist` folder)
### Used libraries
- Electron: https://github.com/electron/electron
- Electron builder: https://github.com/electron-userland/electron-builder
- Electron packager (only for the Snap builds): https://github.com/electron/electron-packager
- electron-util: https://github.com/sindresorhus/electron-util
- Bulma CSS: https://github.com/jgthms/bulma
- Font Awesome: https://github.com/FortAwesome/Font-Awesome
- jsTodoTxt: https://github.com/jmhobbs/jsTodoTxt
- Marked: https://github.com/markedjs/marked
- vanillajs-datepicker: https://github.com/mymth/vanillajs-datepicker
- i18next: https://github.com/i18next/i18next
- Matomo: https://github.com/matomo-org/matomo
# Security Policy
## Supported Versions
The following versions of sleek are provided with security updates.
| Version | Supported |
| ------- | ------------------ |
| 0.9.x | :heavy_check_mark: |
## Reporting a Vulnerability
If you find a vulnerability in sleek, please send as much detail as possible to ransome@uber.space
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment