Introducing RedDocMD

Hello everyone,
I am Deep Majumder, a UG student from Indian Institute of Technology(IIT) Kharagpur. I am interested in developing any one of the following ideas:

  1. Support for multiple profiles
  2. Hierarchical tags
  3. Passwrod protected notes

I have a modest working knowledge of Javascript and React. (I am currently working on building a Scrabble app with React, repo at I am also working on learning React Native.

I will shortly start working on issues. What else should I do?

1 Like

Welcome to the forums. If you haven’t read the Live Blog at the top of the forums, please do. Most of your beginning questions should be answered there. If you have any others, feel free to ask here and I’ll see what i can do.

I’m one of the mentors for this project and am here to assist you in doing your best. I’m also a huge Scrabble fiend, so I’ll have to check that out when i get home from work.

1 Like

I don’t have a Dropbox account. So how do I work on this project?

Dropbox isn’t required but it’s highly recommended to have some kind of cloud service account to save your notes to and sync between your devices if you plan on using Joplin as a daily driver. If you’re looking to just contribute, there is a File System sync option in synchronization settings that’s not quite saving to your local hard drive like a normal app. I’ve heard multiple different descriptions of what that is, so I won’t even attempt to fully explain it.

What is the data structure used for representing the Notebook hierarchy and which files are they stored in?

Joplin uses a singular Sqlite database to store its configuration and data. A large chunk of how that works is explained in detail and shown in action in ReactNativeClient/lib/joplin-database.js. If you decide to test that out or even make changes to it for bug fixing or any other types of PRs, you’ll need to be super careful. That lib directory is shared across all supported platforms.

1 Like

No, I mean what is the in-memory representation? I saw file in lib/models called Note.js. Does that store a note in memory?

I’m not a programmer and know the bare minimum needed to read the code and find info when needed, but i honestly can’t answer this question. I’m sorry. I would do some testing and try to get a feel for the code.

Simple answer is yes, but I’d argue that it’s not a great way of looking at it.

As bedwardly-down said, notes are actually stored in the sqlite database, and only pulled into memory as needed. So the model Note.js does store some parts of a note, it mostly provides abstract “note” functionality. If you’re looking to operate on a currently open note, then you should use the NoteText.jsx or note.js for the electron client and the app respectively (I’m not sure which to use for the cli client).


@RedDocMD your merged PR was quite good but don’t get too confident.
Your PR records is still quite thin, there has to be more as you submitted two proposals of which one has quite a complex background.
We would like to see you get involved in the corresponding topic to ensure that you fully understand the complexity of Joplin, what calms us down too.

1 Like

Sure! :grinning:

are we going to see any additional action of you on GitHub?

@RedDocMD you haven’t answered my question yet?
Would you mind continue contributing otherwise you risk to be moved in the OUT list

O I have submitted a PR today. Interesting timing though…

1 Like

as you are interested in profiles, I would love to see a PR what somehow covers this area. Thus, you show us that you understand how all the apps work with each other

I am trying to find one. If you have anything specific in mind then you can tell me.

I have just scanned the bug reports as we don’t accept features PRs for the time being to avoid overload ourselves

The following could be checked but some might be outdated / fixed in newest release


I get your point. You want to me to work on a cross platform bug. I am going to try to fix the ones in the list you have sent me that involves the Android and Windows/Linux platforms because I have access to these platforms. I dont have a Macbook/iMac so I can’t test for iOS. I can only check the bug in my base model iPad. Btw, @PackElend, @bedwardly-down can you suggest any way of working on iOS bugs without having a Mac?

nope, I don’t have a Mac, you may ask in #development

You can use virtual box and can test iOS and mac apps on that, while staying on windows. Using virtual box, you will have access to all the platforms, mac, ios, linux, and everything else. And use Xbox for ios.