This is a full-stack Notes application, it allows users to create, edit, delete, and archive notes. The application also supports categorization and filtering notes by category.
- Java 17
- Spring Boot 3.4.2
- Spring Data JPA (for database interactions)
- Spring Security (for authentication)
- MySQL (as the relational database)
- Lombok (to reduce boilerplate code)
- Maven (build automation tool)
- npm 10.9.2
- Node.js v22.13.1
- Vite (for fast build and development)
- React.js
- React Router (for navigation)
- Axios (for API calls)
- CSS (for styling)
- Linux/macOS (Required for script compatibility)
- Java 17
- Node.js 18.17+
- MySQL
- Maven 3.8+
To automatically set up everything, run the following command in a Linux/macOS terminal:
bash setup.shThis script will:
- ✅ Install Java, Maven, Node.js, and MySQL
- ✅ Set up the MySQL database with required configurations
- ✅ Populate the database with 10 dummy notes
- ✅ Build and start the backend (Spring Boot)
- ✅ Build and start the frontend (React + Vite)
Once complete:
- Backend will be running at 👉 http://localhost:8080
- Frontend will be running at 👉 http://localhost:5173
In the frontend page you will see a login page in order to use the app, the credentials to login are the following:
- Username:
defaultuser - Password:
password
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/notes |
Get all notes |
GET |
/api/notes/{id} |
Get note by ID |
GET |
/api/notes/active |
Get active notes |
GET |
/api/notes/archived |
Get archived notes |
POST |
/api/notes |
Create a new note |
PUT |
/api/notes/{id} |
Update an existing note |
PUT |
/api/notes/{id}/archive |
Toggle archive status |
DELETE |
/api/notes/{id} |
Delete a note |
GET |
/api/notes/category/{category} |
Get notes by category |
PUT |
/api/notes/{id}/categories |
Update note categories |
- For any queries, reach out to Santiago Albarracín or my personal email [email protected].