Home / GitHub Page

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 https://github.com/RedDocMD/ScrabbleOnline). 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).

2 Likes

@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?