Giter Club home page Giter Club logo

notes's Introduction

Notes

Note-taking application made with:

Table of Contents

Features

  • 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.

Installation

  1. Clone or download the repository.
  2. Open the client folder in the terminal.
  3. Run npm install to install dependencies.
  4. Run npm run prod to generate JavaScript files for the interface.
  5. Open the server folder in the terminal.
  6. Run cp .env.example .env to create a new .env file.
  7. Run npm install to install dependencies.
  8. Run npm run update-db-schema to generate the SQLite database.
  9. Run node ace add:fts to add the FTS4 full-text search index to the SQLite database.
  10. Run node ace add:user to add a new user to the database.

Run the development version

  1. Run npm run dev to run the development version of the server.

Run the production version

  1. Run npm run build to build the production version of the server.
  2. Run cp .env.example ./build/.env to copy the .env file.
  3. Run mkdir ./build/database to create the database folder.
  4. Run cp ./database/notes.db ./build/database/notes.db to copy the database.
  5. Run cd build to change the current folder to build.
  6. Run npm ci --production to install production dependencies.
  7. Change NODE_ENV=development to NODE_ENV=production inside the .env file.
  8. Run node server.js to run the production version.

Usage

Sections

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.

    Adding a new note

  • Select Sections in the dropdown menu.

  • A modal window with sections CRUD interface will open.
    Sections CRUD

    Here you can add new sections for your notes and specify the color, title, and section name for the database.

    Section update form

Notes

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.

    Notes dropdown

  • Click on one of your sections.

    Selecting a section

  • Click on Add.

    Add new note button

  • The new note modal will open.
    Here you can write the note's content and specify the note's title.

    New note modal

Books

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.

    Adding a new book

  • The book administration modal will open.

    Book administration modal

    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 the Apply 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 click Apply.

When you add a book to a note, the book's name will appear near the book icon.

Note with book

You can click on this book's name to filter all notes with this name.

Notes with the same book

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.

Books in the sidebar

Click on a book in the list to see all notes with this book.

List of books

Tags

Notes can be grouped by tags.
Each note may have multiple tags.
To add tags to the note:

  • Click on the tag icon.

    Adding new tags

  • The tags administration modal will open.

    Tags administration modal

    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, click Apply.

The note's tags appear at the bottom of the note.

Note with tags

You can click on a tag to filter all notes with this tag.

Notes with the same book

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.

Tags in the sidebar

Select tags and click Apply to filter notes with these tags.

List of tags

Sources

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.

    Adding a new source

  • Select Sources in the dropdown menu.

  • The sources administration modal will open.

    Sources administration

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.

Note with a source

Click on the source in the sources modal to open it in a new tab.

Sources modal

Code snippets

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.

    Adding code snippets

  • 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.

Search

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.

Search autocomplete

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.

Full-text search

Special filters

In the sidebar, there are special filters.

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.

Dark theme

Click on this icon in the header to toggle between the light and dark themes.

Dark and light theme toggle

Dark theme interface.

Dark theme interface

Open as a popup

If you want to open the application in a separate popup window, click on this icon in the header.

Open as popup

License

This project is licensed under the MIT license.

notes's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.