A note application written using React.js and Tailwind.css for the UI and the Spring framework for the server.
- Auth components
- Login components
Login
is the form responsible for collecting login datauseLogin
is the hook responsible for fetching login data
- Register components
Register
is the component responsible for collecting register datauseRegister
is the hook responsible for fetching register data
AuthContext
is the context storing auth dataAuthOnly
tracks auth state and only renders its children if the user is authenticated.useEmailValidation
is the hook checking for the existence of an email
- Login components
- Text Block components
- Block Edit
BlockEdit
is the component responsible for editing a specific blockBlockTypePicker
edits the block typeuseBlockEditor
is the hook responsible for tracking changes in blocks
- Block view
Block
is the non-editable block view
BlockList
displays a list of editable and non-editable blocks
- Block Edit
- Note components
- Note Creating
CreateNote
is the note creation UI.useCreateNote
fetches the new note route.
- Note Editing
NoteEditorContext
holds the edited note dataNoteTitleEdit
edits the title of the noteuseDeleteNote
fetches the note removal routeuseSaveNote
fetches the update note route
- Note Viewing
NoteTitle
displays the titleNoteView
displays the note title and the list of its blocks
useNote
fetches the note data
- Note Creating
- Shared components
- http
useFetch
fetches the data on a given route
- Navigation
Navbar
displays a list of linksNavigationWrapper
sets theNavbar
position on the screenNavItem
is the individual link component.SignedInLinks
is the list of links for signed-in usersSignedOutLinks
is the list of links for unauthenticated users.useLogout
fetches logout data.
- NoteList
NoteItem
is a summary of the note dataNoteList
is a list ofNoteItem
s.
FormInput
is a simple text form.Home
is the main route component that displays a list of notes for signed-in users.Welcome
is the main route for unauthenticated users
- http
App
is the main router.
- Authentication
JWTFilter
is a spring filter for getting JWTs from cookies
- Block
Block
is the block modelBlockType
is an enum for types of blocks
- Note
Note
is the note model containing a list of blocksNoteController
is responsible for handling note-related requestsNoteRepository
is the JPA repo for querying notesNoteService
handles authentication contexts and queries notesSecureNote
is the note returned to the userUpdateableNote
is a note received by the user.
- User
SecureUser
s the user sent to the front inside aSecureNote
, not containing the passwordUser
is the user entity.UserController
handles user-related requests.UserProfile
is the user returned to the front when asking for the profile.UserRepository
queries user-related queriesUserService
handles queries and business logic.
SecurityConfig
is responsible for the security configurations.