A full-stack notes project with a Spring Boot backend and a Next.js frontend. The repo includes backend APIs for users and notes, plus a separate UI app in notes-frontend/.
This is a full-stack Notes App repo. The backend is built with Spring Boot and PostgreSQL, and the frontend is built with Next.js, React, TypeScript, and Tailwind CSS. The project is in progress, with the next focus on frontend-backend integration.
- User register/login APIs
- Create, read, update, delete notes
- User-note relationship using JPA
- Layered architecture: Controller / Service / Repository / Entity
- Login and register pages UI
- Dashboard page UI
- Notes listing UI
- Create Note page UI
- Favorites, categories, trash, settings/profile UI
- Light/dark theme support
- Reusable components and context-based note state
Notes/
pom.xml
mvnw
mvnw.cmd
src/
main/
java/com/example/Notes/
controller/
service/
repository/
entity/
resources/
application.properties
notes-frontend/
app/
components/
context/
public/
package.json
- Clone the repo:
git clone https://github.com/veyra34/notes-app.git- Update
src/main/resources/application.propertieswith PostgreSQL settings:
spring.datasource.url=jdbc:postgresql://localhost:5432/notesdb
spring.datasource.username=postgres
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update- Run the backend:
./mvnw.cmd clean package
./mvnw.cmd spring-boot:run- Go to frontend folder:
cd notes-frontend- Install dependencies and start dev server:
npm install
npm run dev- Open the app at
http://localhost:3000
| Method | Endpoint | Description |
|---|---|---|
| POST | /users/register |
Register a new user |
| POST | /users/login |
Authenticate a user |
| Method | Endpoint | Description |
|---|---|---|
| POST | /notes/create/{userId} |
Create a note for the specified user |
| GET | /notes/all/{userId} |
List all notes for the specified user |
| GET | /notes/{id}/{userId} |
Get a note by id for the specified user |
| PUT | /notes/update/{id}/{userId} |
Update a note for the specified user |
| PUT | /notes/delete/{id}/{userId} |
Delete a note for the specified user |
- Controller layer handles HTTP requests
- Service layer contains business logic
- Repository layer handles database access
- Entity layer maps PostgreSQL tables
- App Router pages are in
notes-frontend/app/ - Reusable UI is in
notes-frontend/components/ - App-level state is in
notes-frontend/context/NotesContext.tsx - Frontend currently uses local state/context and is meant to connect to backend APIs later
- Frontend-backend integration
- JWT authentication and authorization
- DTOs and request validation
- Centralized exception handling
- Persistent auth flow
- Notes sync with backend
- Loading and error states