Skip to content

Secure Notes

Published: at 12:00 AM

Your ideas matter. Manage notes, lock, and share them with other users in your organization.

YouTube link

This was a final year project for my university degree. The main concept of the project was security

Security

It utilizes a concept called envelope encryption which in simpler terms means encrypting an encryption key with another encryption key. AWS KMS was used in this project for this purpose. The keys can be rotated manually or automatically on a schedule.

There is two-factor authentication (2FA) for the logins. This utlizes Time-based One-Time Password (TOTP) which can be added via apps like Authy, Google Authenticator, etc. Just like any other apps with TOTP 2FA, you can scan a QR code to quickly add it to your authenticator app. This 2FA login step can be removed or updated via the settings page in the app.

Passwords are hashed with the bcrypt algorithm and are not stored in plain text in the database.

Notes can be “locked” which applies an encryption on the notes contents. Downside of this is that the notes’ contents will no longer be searchable.

Other features:

Notes can be assigned with tags to organize similar notes together. These tags are also searchable.

There is also a real-time collaboration feature which allows users to share and edit notes together with other users on the same organization. Unlike Figma, Excalidraw, or other apps of a similar caliber which uses Conflict-Free Replicated Data Type (CRDT), the real time interactivity of this app is extremely basic. It utilizes Pusher for realtime messages. Users on the same organization and note will subscribe to updates from all users and when it does happen, a good old AJAX request is made to get the latest notes

Screenshots