Simple and experimental note-taking app with built-in password-based encryption.
Find a file
Sofía Aritz c97700b29a Add structs DecryptedNote, EncryptedNote and HiddenNote
This makes some invalid states unrepresentable, which is something that is desired in this application to reduce mental complexity and to reduce the risk of undesired behaviour of aplying functions like `encrypt` on already encrypted notes.

`Note` is now an enum that holds the structs. This approach is similar to the one used in some parts of `std`, though in this case other approaches could be used, but they would be way too much verbose for this use case.

This change was done because having functions like `hide` on already hidden functions is not a good idea (even if was they do is "just" cloning the structure...).

There are some rough edges, but I'll improve them in another moment.
2023-03-16 22:28:17 +01:00
docs/migrations Add a migration system for the new password system 2023-03-06 18:23:37 +01:00
src Add structs DecryptedNote, EncryptedNote and HiddenNote 2023-03-16 22:28:17 +01:00
.gitignore Initial release 2023-02-27 15:22:30 +01:00
Cargo.toml Start implementing settings page 2023-03-11 21:17:14 +01:00
README.md Add link to article 2023-03-12 15:30:58 +01:00

Notes

This is a simple and experimental password-based note-taking app with built-in password-based encryption.

To-Do list

  • Improve password checking
  • Allow the addition of arbitrary metadata when creating a note
  • Add basic settings (export and import notes, change data directory, etc)
  • Add basic markdown support (bold, italics, underline)
  • Improve performance (duplicate decryption operations, tons of copying/cloning, etc)

Expectations

This project was done in just a day. Code quality isn't the best. I will slowly improve this project according to my needs, some things like the ones on the To-Do list will probably be done at some point in time.

However, with that being said, if you'd like to contribute or fix something, feel free to create an account and go for it! :)

More info