Home

Awesome

Mavinote

Simple, secure and open source note-taking application. You can take notes that reside only in your device or use a Mavinote account to synchronize your notes across your devices. All notes belonging to Mavinote account are stored as encrypted on the servers and can only be decrypted by your devices starting from the version 0.2.0.

Contents of this Readme

  1. Availability
  2. Project Goals
  3. Project Structure
  4. Running Mavinote Application

Availability

Anyone can build the project by himself/herself and start using the application. The app is also released on F-Droid.

<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="80"/>

Since releasing applications on Google Play and App Store requires paid developer accounts, I am not planning to release on these stores until users request it.

Project Goals

The idea that drives the development of Mavinote is to develop a reactive, cross-platform library which contains the common business logic required by frontends.

Gathering common parts of frontend logic into one shared library and using this library in multiple frontends makes the development of native applications easy. It also enables you to use native APIs and adapt to changes in them more easily.

To give an example, consider the gathering geolocation of the user on any kind of platform. You need to use different APIs for each platform you target, like iOS, Android and Windows. Although the method of gathering geolocation varies, most of the time, the logic you want to apply to the gathered geolocation is same across different platforms. This same logic can be implemented in one shared library and be used across different plaforms.

With these in mind, this project aims to implement an application to showcase the idea described in this repo. This project also aims to develop a fully functional note-taking application. In order to achieve that, the project needs to complete

Project Structure

Mavinote contains multiple projects seperated by being a library, backend and frontend implementations. Build instructions can be found in the projects' folders.

Running Mavinote application

### Builds of the some applications on the main branch might become broken due to continous development. If you want to obtain a successfull build, please checkout the latest corresponding tag for the application you want to build.

This project contains more than one application like android and ios. To run one of them, you can refer to frontend applications' README files. For example, if you want to run android application, you can checkout android/README.md file.

If you want to synchronize your notes across multiple devices, you need to run the backend project.