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.
-
Main class is NotesApplication
-
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
-
Pick a profile to run: -Dspring.profiles.active=windows or -Dspring.profiles.active=linux
-
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.
Index page shows paginated list of notes:
Adding a new note:
Viewing a note:
Editing a note:
Search notes form:
Search results shown below, paginated:
Export multiple notes to PDF:
This is what an exported note looks like in PDF viewer:







