Image of PrivaNote

Written by Jason Xie on June 12, 2022.

PrivaNote

A note-taking app which prioritizes your security first.

This project was completed as my school’s capstone project during two semesters of my Computer Programming and Analysis program at Seneca College from May 2021 to December 2021.

The first semester consisted of project planning and management which resulted in building a Software Requirements Specification (SRS) document that can be found here. The second semester consisted of implementing the project and the end-result can be found on the project’sGitHub repo where you can also download and try the app in the GitHub releases.

PrivaNote UI

Contents


What is PrivaNote?


PrivaNote is a cross-platform desktop note-taking app that provides its end-users with full security and privacy through end-to-end encryption.

PrivaNote’s UI consists of a file-explorer to see all your notes, a text-editor to edit your notes in Markdown, and a preview window to see your Markdown notes live.

Users have the option to synchronize their notes to Google Drive or to PrivaNote’s own cloud storage service that utilizes end-to-end encryption.

My Role/Contribution


In the first semester of developing this project, my role was the team lead. I handled communications with the professor who acted as our client and ensured that all weekly deliverables were delivered by scheduling meetings with the group and monitoring our performance. I lead in writing the project proposals, building the data flow diagrams(DFD) and entity relationship diagrams(ERD), wrote the functional requirements, database scripts, and acceptance criteria.

In the second semester, every team member played the role of a developer to implement the project. I was in charge with mostly handling the back-end server which consisted of data synchronization, end-to-end encryption, and deploying the server to Heroku to act as an API for our front-end client.

PrivaNote Contributions Screenshot of GitHub releases.

Main Tech Used


A full breakdown of all the technologies used can be found in the package.json file for the Server and Client.

ElectronJS

To enable PrivaNote to be used on Mac, Windows, and Linux, ElectronJS was used to make PrivaNote cross-platform. ElectronJS is essentially wraps around a web app and makes it suitable for desktop.

Language (Typescript)

To ease the collaboration process, Typescript was used to help build and manage PrivaNote.

Front-end (ReactJS + TailwindCSS)

ReactJS was used to develop PrivaNote’s client along with TailwindCSS for styling.

Back-end (Node + Express)

The back-end server was built with Node and Express to keep it consistent with the front-end client language. This was also what the team was most familiar with.

Data Storage (PostgreSQL + Prisma + Google Drive API)

User’s account and notes data are stored in PostreSQL using Prisma. Notes are encrypted using Node’s cryptography library to provide end-to-end encryption. Google Drive API was used to allow users to store/sync their notes with their Google Drive account.

Team