Skip to content

Notes-taking app with rich-text editor using SpringBoot, Thymeleaf, JPA, RDBMS, Quilljs and Export to PDF

License

Notifications You must be signed in to change notification settings

Kartaverya/java-notes-app

 
 

Repository files navigation

Memo notes to organize your thoughts and todo items

With rich-text editor using SpringBoot, Thymeleaf, JPA, RDBMS, Quilljs and Export to PDF


Building and running:

mvn clean package

java -jar target/notes-0.0.1-SNAPSHOT.jar

The app can be accessed at localhost:8081, with the default user id "user" and password "pass". The app creates SQLite db notesdb.sqlite in user's home directory if it doesn't exists there.

  1. Main class is NotesApplication

  2. Spring security is set up to use in-memory authentication for simplicity since this is a demo only. User id is user, password is pass

  3. Pick a profile to run: -Dspring.profiles.active=windows or -Dspring.profiles.active=linux

  4. You can set a session timeout by passing a VM argument: e.g. -Dserver.servlet.session.timeout=30m


Features:

  • Notes can be created, edited, deleted, exported to PDF
  • Notes persisted to the DB, in particular to a SQLite db specified in the corresponding profile. Switching to another RDBMS is easy, Postgres example is included in the properties
  • Notes belong to a single user, and the other users cannot see or edit other users' notes, unless the owner marks their note as 'shared'
  • Notes are listed with a short preview on the home page
  • Notes can be assigned to a category. Category name can be chosen via auto-completion based on the existing notes' categories
  • UI is implemented with pagination
  • Search function is performed based on the note content and/or category
  • Notes can be edited by clicking on the "Last edited" link or by viewing the note and clicking Edit. Saving via Ctrl-S is enabled.
  • Notes can be deleted by choosing to edit them and then clicking the Delete button. User will be prompted with a Confirmation dialog to complete this action.

Screenshots are below

Index page shows paginated list of notes:

Alt text

Adding a new note:

Alt text

Viewing a note:

Alt text

Editing a note:

Alt text

Search notes form:

Alt text

Search results shown below, paginated:

Alt text

Export multiple notes to PDF:

Alt text

This is what an exported note looks like in PDF viewer:

Alt text

About

Notes-taking app with rich-text editor using SpringBoot, Thymeleaf, JPA, RDBMS, Quilljs and Export to PDF

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 49.7%
  • Java 48.0%
  • JavaScript 2.2%
  • CSS 0.1%