This program allows you to manage notes with the ability to change localization. You can easily view, create, update, and delete notes.
-
Clone the repository:
git clone https://github.com/vadymhrnk/notes-management-app.git
-
Download JDK, Apache Maven and Docker
-
Go to this folder:
cd notes-management-app/backend
-
Build *.jar file for the Docker:
mvn package
-
Build and then run the project using Docker:
docker compose build docker compose up
-
Download Node.js
-
Create new Terminal in the
notes-management-app/frontend
folder. -
Install all dependencies:
npm install
-
Run the project using this command:
npm start
-
(Optional) To run end-to-end test use following command (frontend server should be running):
npx cypress run
- Java 17: The primary programming language for backend development.
- Spring Boot: A framework for building and deploying Java-based applications with ease.
- Spring Boot Starter Data JPA: Starter for using Spring Data JPA with Hibernate.
- Spring Boot Starter Web: Starter for building web applications, including RESTful APIs.
- Spring Boot Starter Validation: Starter for validation support.
- Spring Boot Starter Test: Starter for testing Spring Boot applications.
- MySQL Connector/J: JDBC driver for MySQL integration.
- H2 Database: An in-memory database for testing purposes.
- Liquibase Core: A database-independent library for tracking, managing, and applying database schema changes.
- MapStruct: Simplifies the implementation of bean mappings, reducing manual coding effort.
- Lombok: A tool to reduce boilerplate code, enhancing code readability and conciseness.
- Springdoc OpenAPI UI: An OpenAPI for generating documentation with a UI interface.
- React: A JavaScript library for building user interfaces.
- Typescript: A strongly typed programming language that builds on JavaScript.
- Sass: A preprocessor scripting language that is interpreted or compiled into CSS.
- Recoil: A state management library for React.
- i18next: An internationalization framework for JavaScript.
- Jest: A delightful JavaScript testing framework with a focus on simplicity.
- Cypress: A next-generation front-end testing tool built for the modern web.
- Web Vitals: A set of metrics to measure the performance of your website.
POST: /notes
-> Create a new note.GET: /notes
-> Get a list of all existing notes.GET: /notes/{id}
-> Get note by specific ID.PUT: /notes/{id}
-> Update existing note.DELETE: /notes/{id}
-> Delete note by ID.