A Canvas Based Note Taking Application

Leon Fattakhov, Advait Maybhate, Steven Xu, Kelvin Zhang

Table of Contents


About the Project

Noteaholic is a free-form, spatial note-taking desktop application. It supports cloud-based storage of notes, with a custom user accounts system. We aim to emulate the organization of notes on a physical desk, with our unique approach of being able to move sticky notes on an infinite canvas.

Client/Server READMEs

Check out our client/server specific READMEs below:


Check out Features/Requirements for our Features/Requirements.

Quick Start Guide

Currently the application is built for macOS to install the application first download the latest distribution of our application here. Please see our Wiki Home page if you run into “client.app is damaged” issues when opening the application – this is an error caused by Apple’s security restrictions (our Wiki page outlines how to bypass it).

Additional information is included in our wiki


This project requires the following tools to be installed to compile and run the code.

  • Docker
  • Docker Compose
  • Kotlin

This project is broken into two separate portions:

Each of these have their own README.md files to help setup the development environment. However the server should be launched before the client in order to speed up development. As the client will switch to an empty state waiting until it detects that the server is running.

Both projects have been developed using JetBrains IntelliJ IDEA and as a result have configurations for this IDE in the .idea folders. However you can use any code editor or tool that you wish to use. The build system used for both these projects is Gradle with the Kotlin DSL. As a result commonly used gradle tasks are available in both projects. Some common Gradle tasks used in development are:

  • gradlew build – builds the project
  • gradlew test – runs the unit tests for the project
  • gradlew run – runs the project

The Team

Leon Fattakhov

Advait Maybhate

Steven Xu

Kelvin Zhang


This project uses the GNU General Public License v3.0. The full details can be found in our LICENSE file.

Third Party Libraries & Code




View Github