Code Monkey home page Code Monkey logo

capture-it's People

Contributors

mlewand avatar

Watchers

 avatar  avatar

capture-it's Issues

Remember and reuse login token

Currently the app is asking to log in for adding each and every workspace.

That's a bit frustrating so it should ask only once.

It's important that the sign in button is still there in case user wants to share new dbs or add dbs from a different account/user.

Remind field

It would be beneficial to add a quick way to set a remind date (&time) for added note.

It could be implemented that alt (option + R) would show additional dropdown field with date (that if clicked shows handy calendar).

Based on notion: this would add a @remind <date> "paragraph" into created note.

Nice to have

Would be great if date could be clumsy typed, some example resolutions I'd expect:

  • "17:00" -> "today 5pm"
  • "2am" -> "today 2am" (or maybe tomorrow 2am if it already passed?)
  • tomorrow -> "tomorrow 9am"
  • "3d" -> would resolve to in 3 days at 9am
  • "1w" -> would resolve to 1 week at 9am
  • "1y 2w" -> 1 year and 1 week at 9am
  • date formats should be supported too

Default hour (9am set when you do just "tomorrow") could be customizable in the configuration file.

Predefined tags associated with a given workspace

I want to add a workspace that will add entries to my common todo-list but with a predefined tag. This will make item to appear in proper views.

My example is adding standup todo note. Example config could look like this:

{
    "workspaces": [
        {
            "name": "๐ŸŽ™๏ธ Standup",
            "dataBaseId": "abcdef",
            "notionToken": "token_abcdef",
            "default": {
                "tags": [ "standup" ]
            },
            "tags": {
                "@captureit": "project:capture-it"
            }
        }
    ],
    "tags": {
    }
}

UI feedback upon saving

There should be success / progress / error notification for dispatched queries.

At first it's ok for it to be basic.

Add unit test/e2e coverage

OK, I'm slowly getting out of the PoC stage - it's about time to start adding test coverage so that there are no bugs creeping like crash when the config is missing.

Mac improvements

  • Currently no tray icon is present there.
  • As the last window gets closed, the dock icon doesn't go away.

Prevent running two application instances

Currently it's possible to run more than 1 instance of an app (at least on Windows).

Let's be gentle with notifying the fact that the app is already running. Rather than showing an error and screaming at the user it should simply bring up the main Capture It window.

Implement a custom protocol handler for better interoperability?

Wonder how should external apps do an intent of triggering note quick add? Thinking about some use cases:

Sharing data from browser

It would be nice to share URL visited in the browser with a single click.

I could make an extension that would add a button that would automatically get a link based on browser's active tab URL.

Assuming you want to save https://reddit.com, it could request note-quick-add://new-todo?input=https%3A%2F%2Freddit.com.

This in turn would bring up adder, with the text prefilled.

In future it could take more parameters.

List tags for active workspace in the main view

This could be done cheaply, the idea is to show tags somewhere on the bottom of screen as a reminder what are the valid tags for current input.

I often use shortcut tags and tend to forget them. Seeing them in background that would be nice.

Run app on startup

Add a feature that will allow running app on system startup/user login.

Adding to database that doesn't have "Tags" field crashes

AFAIR adding to db that doesn't have fields for tags will crash.

Surely "Tags" field must not be present if there are no tags at all added.

If tags are given and there's no "Tags" field let's do whatever is the simplest for now.

Warn when adding a tag that is not existing in current workspace but exists in other workspace

Say I have a tag @home defined in my private workspace. However, I'm adding a note to the "work" workspace.

Currently what happens I'll get an entry with unprocessed tag, like Buy some groceries @home which is not what I want.

I can see two solutions:

  • Nice: it should show a dialog like "Detected X tag that is not present in Y workspace but it's found in Z.", there shuold be options:
    • Add to Y anyway.
    • Add to Z workspace instead (this should by active by default).
    • Cancel (prevents note from being sent, but also it must not erase it, so that the author can correct it).
  • Cheap: It could simply show a confirm window - "Using xyz tag of xyz workspace, proceed?" with ok / cancel button.

Note it's important that if adding something that looks like a tag, but is not registered anywhere else, should proceed as it is today.

Automatically propose a page icon with the help of AI

Notion is bad in picking an icon for an article.

Often times it's possible to pick pretty decent icon based on:

  • Entered page title
  • Name of the parent page
  • Available database/list of notion emojis

There are some drawbacks though:

  • It's pretty easy for Notion devs to improve it and given how annoying it is, I'd expect it being fixed soon.
  • Requires OpenAI configuration.
  • Requires extra UI if the Icon was to be accepted out of a pool of suggested.

Thus the ROI is meh.

Support for mobile

Would be nice to bring it for mobile.

Ideally I'd like to have

  • a widget on home screen allowing me to input data quickly
  • handling for sharing into the app (someone could select in the net and share it into Notion)

I believe widget is not doable with Electron-based app. If that's really the case maybe it's possible to display some sort of a popup window that would render electron content inside?

It would be also great to have text-to-speech implemented (#12).

Allow customizing tags property

By default Capture it assumes that tags are stored in Tags field.

However, it's likely that end user may customize it. It should be possible to customize this name. For example:

{
	"workspaces": [
		{
			"name": "Private",
			"tagFieldName": "alt tagzzz",
			"dataBaseId": "...",
			"notionToken": "secret_...",
			"tags": {
				"@test": [ "foo", "bar" ]
			}
		},
		...

Add a hotkey for configuration

It would be a good idea to add a hotkey for configruation.

On mac that could be: cmd + ,.

I suppose a ctrl equivalent could be used for win/linux.

Global cmd+q listener on mac causes other app to lose cmd+q binding

The cmd+q hotkey is vital on mac.

Recently to fix a case that it wasn't handled properly on mac I moved cmd+q listener from renderer process (was listening to keyup event on document) to main process (hooked as a global hotkey).

It turns out that because of that other apps can't use cmd+q hotkey.

GitHub support

This task could be understood as a part of #14:

The app could be used to facilitate adding issues to GH:

  1. you open the main view
  2. somehow make it to target GH*
  3. type title "My new issue"
  4. press enter

As a result it would open you a page with the issue title prefilled, say https://github.com/mlewand/note-quick-add/issues/new?title=My%20new%20issue

*by making a target to GH I mean that it could be determined by some dropdown value, workspace etc. The target repo should also be somehow adjustable (maybe by a tag?).

Spinner in main view no longer working

The spinner that is visible next to processed todo note (while sending it to backend) is no longer visible.

I it could have something to do with the spinner I added in the view of authentication.

Should be a very simple fix.

Speech to text input

It would be nice to be able to dictate the task to be inserted.

I'm unsure about the UX part of it though for now.

Definitely this would be very helpful for mobile.

Support multiple workspaces

Similar to Notion, there should be handling for multiple workspaces for quick add.

It's best fitting to also use alt+shift+[number] hotkey to match Notion's keys.

Nicer UI for adding new workspace

Few ideas:

  • Styling is not looking as good on mac vs windows.
  • A hotkey could be added, some ideas:
    • ctrl+n
    • ctrl+t
  • During OAuth spinner should engage more quickly than it does now.
    • From the top of my head there are 2 requests now, first to Notion and second to proxy for getting JWT. The spinner is only visible for JWT (AFAIR).

Ability to paste media when creating an entry

It would be great to support adding media (most importantly images).

E.g. I'm making a database entry and I paste several images while composing entry title.

Once first media gets pasted it should add a thumbnail row below the title input field. Each thumbnail should have a cross allowing to cancel it.

Naturally the (up)loading should happen only after the operation is committed.

UI styling upgrade

The styling is still a bit rough. The layout is good in most cases, but styling itself is lacking.

Some ideas to be considered:

  • Bootstrap
  • MUI

Dark mode

Implement dark mode.

It should be enabled if system has dark mode too.

Custom tag support

There should be an option to add special tags that would be translated to tags in Notion.

e.g. I have field "tags" that is multi dropdown and can get values such as "car", "ecommerce", "learning", "family" etc.

Would be nice to be able to type anywhere in the text

@car

and have corresponding option added to the created page (but removed from the content).

Show failure/success though icon if minimized?

Sometimes you just want to enter task and minimize to go back what you were doing without waiting for item to be captured.

What if error happens? User might not notice. It would be nice to show that though the application icon.

It could just show a cross if operation fails. It would be nice to show a bubble with some text saying what task failed to add.

This is especially useful when on mobile internet.

Create a Notion integration

The feature comes to a place where it makes sense to publish it. First I need to register Notion integration so that anyone can use it.

Simplify the initial configuration

Currently the handling of a missing file is rather harsh:

image

Instead it could be improved with a rather low cost:

If config file is missing, the error message (in main app window) should feature a link/button that if clicked:

  1. Creates a config.json file based on the template.
  2. Opens created file in the default editor so that it can be modified.

As an extra point I could add a tray option to edit the config file.

Feature ideas

  • Provide feedback whether the item was added or error message in case of an error.
  • There should be an option to open created page in a new tab (alt key suits it well).
  • During submit there should be some loading animation and the fields should be briefly turned into readonly.

  • Allow to provide multiple pages / databases. In this case there should be a selectbox allowing to select where the item should be added to.
  • Allow adding multiple items at once. Each separate line = separate items.
  • Allow for adding tags - it would detect first tag field in a given db and allow to type tag(s) after e.g. @ character.
  • Voice recognition - would be nice to be able to dictate (#12).

Simpler installation

  • Add installation/build steps to the README.md.
  • Add easy to install bin distributions.
    • Windows
    • Mac
    • Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.