Note-taking application made with:
- Ability to group notes by sections, books, and tags.
- Full-text search with SQLite FTS4.
- Ability to add sources to notes.
- Dark theme support.
- Ability to add code snippets to notes.
- Application state is synchronized with the URL.
- Clone or download the repository.
- Open the
client
folder in the terminal. - Run
npm install
to install dependencies. - Run
npm run prod
to generate JavaScript files for the interface. - Open the
server
folder in the terminal. - Run
cp .env.example .env
to create a new.env
file. - Run
npm install
to install dependencies. - Run
npm run update-db-schema
to generate the SQLite database. - Run
node ace add:fts
to add the FTS4 full-text search index to the SQLite database. - Run
node ace add:user
to add a new user to the database.
- Run
npm run dev
to run the development version of the server.
- Run
npm run build
to build the production version of the server. - Run
cp .env.example ./build/.env
to copy the.env
file. - Run
mkdir ./build/database
to create the database folder. - Run
cp ./database/notes.db ./build/database/notes.db
to copy the database. - Run
cd build
to change the current folder tobuild
. - Run
npm ci --production
to install production dependencies. - Change
NODE_ENV=development
toNODE_ENV=production
inside the.env
file. - Run
node server.js
to run the production version.
Before you can add new notes, you must create at least one section.
To add a new section:
-
Click on the three vertical dots icon in the header.
-
Select
Sections
in the dropdown menu. -
A modal window with sections CRUD interface will open.
Here you can add new sections for your notes and specify the color, title, and section name for the database.
When you first open the application, it will show all your notes from all sections.
You cannot add new notes in this view.
To add a new note, switch to one of your sections.
To do this:
-
Click on the
Notes
dropdown in the sidebar. -
Click on one of your sections.
-
Click on
Add
. -
The new note modal will open.
Here you can write the note's content and specify the note's title.
Notes can be grouped by books.
Each note may have only one book.
To add a book to the note:
-
Click on the book icon.
-
The book administration modal will open.
At the top of this modal, there is an input field.
This input field contains the current note's book.
When you type any string in this input, books with a similar name will appear in the list below.
To add a book with the name you typed, click theApply
button.
You can also add an existing book to your note by clicking on the book name in the list.
To remove the book from the current note, clear the input field and clickApply
.
When you add a book to a note, the book's name will appear near the book icon.
You can click on this book's name to filter all notes with this name.
To remove the filter, click on the cross icon or the red rectangle with the book's name.
You can also see a list of your books with the number of notes for each book by clicking on Book
in the sidebar.
Click on a book in the list to see all notes with this book.
Notes can be grouped by tags.
Each note may have multiple tags.
To add tags to the note:
-
Click on the tag icon.
-
The tags administration modal will open.
At the top of this modal, there is a list of the current note's tags.
To add a new tag, type its name and press enter.
Or select a tag from the list and click it.
Or select a tag name from the autocomplete list while you type.
To save the tags, clickApply
.
The note's tags appear at the bottom of the note.
You can click on a tag to filter all notes with this tag.
To remove the filter, click on the cross icon or the green rectangle with the tag's name.
You can also see a list of your tags with the number of notes for each tag by clicking on Tags
in the sidebar.
Select tags and click Apply
to filter notes with these tags.
You can add sources to your notes.
To add a source to your note:
-
Click on the three dots icon on top of the note.
-
Select
Sources
in the dropdown menu. -
The sources administration modal will open.
Notes with sources will have a globe icon with a number next to it.
The number represents the number of sources the note has.
Click on this number to see the list of the note's sources.
Click on the source in the sources modal to open it in a new tab.
You can add code snippets to your notes.
To add a code snippet to your note:
-
Click here and select the language of the code snippet.
-
Then enter your code snippet inside the gray box.
If you want to add text after the code snippet, then click Enter
three times inside the gray box.
When you type text in the search input field in the header, it acts as autocomplete.
It will show a list of notes for which the title matches the entered text.
You can click on a note title to open this note.
If a book or tag name matches the entered text, it will also appear in the autocomplete dropdown.
You can click on a book or tag name to filter notes by this book or tag.
To perform a full-text search, enter search keywords in the search input field and press enter.
Notes that have matching titles or content will appear in the notes list.
Matching titles and content keywords will be highlighted.
In the sidebar, there are special filters.
Random
allows you to sort notes in random order.Calendar
allows you to view notes that were added on a specific date.Without book
allows you to view notes that do not have a book.Without tags
allows you to view notes that do not have tags.
Click on this icon in the header to toggle between the light and dark themes.
Dark theme interface.
If you want to open the application in a separate popup window, click on this icon in the header.
This project is licensed under the MIT license.