├── .github └── FUNDING.yml ├── .gitignore ├── README.md ├── book-api ├── .mvn │ └── wrapper │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ivanfranchin │ │ │ │ └── bookapi │ │ │ │ ├── BookApiApplication.java │ │ │ │ ├── book │ │ │ │ ├── Book.java │ │ │ │ ├── BookNotFoundException.java │ │ │ │ ├── BookRepository.java │ │ │ │ ├── BookService.java │ │ │ │ └── BookServiceImpl.java │ │ │ │ ├── config │ │ │ │ ├── ErrorAttributesConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── rest │ │ │ │ ├── AuthController.java │ │ │ │ ├── BookController.java │ │ │ │ ├── PublicController.java │ │ │ │ ├── UserController.java │ │ │ │ └── dto │ │ │ │ │ ├── AuthResponse.java │ │ │ │ │ ├── BookDto.java │ │ │ │ │ ├── CreateBookRequest.java │ │ │ │ │ ├── LoginRequest.java │ │ │ │ │ ├── SignUpRequest.java │ │ │ │ │ └── UserDto.java │ │ │ │ ├── runner │ │ │ │ └── DatabaseInitializer.java │ │ │ │ ├── security │ │ │ │ ├── CorsConfig.java │ │ │ │ ├── CustomUserDetails.java │ │ │ │ ├── CustomUserDetailsService.java │ │ │ │ └── SecurityConfig.java │ │ │ │ └── user │ │ │ │ ├── DuplicatedUserInfoException.java │ │ │ │ ├── User.java │ │ │ │ ├── UserNotFoundException.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── banner.txt │ └── test │ │ └── java │ │ └── com │ │ └── ivanfranchin │ │ └── bookapi │ │ └── BookApiApplicationTests.java └── test-endpoints.sh ├── book-ui ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── manifest.json │ └── robots.txt └── src │ ├── App.js │ ├── Constants.js │ ├── components │ ├── admin │ │ ├── AdminPage.js │ │ ├── AdminTab.js │ │ ├── BookForm.js │ │ ├── BookTable.js │ │ └── UserTable.js │ ├── context │ │ └── AuthContext.js │ ├── home │ │ ├── Home.js │ │ ├── Login.js │ │ └── Signup.js │ ├── misc │ │ ├── BookApi.js │ │ ├── Helpers.js │ │ ├── Navbar.js │ │ └── PrivateRoute.js │ └── user │ │ ├── BookList.js │ │ └── UserPage.js │ ├── index.css │ ├── index.js │ ├── reportWebVitals.js │ └── setupTests.js ├── docker-compose.yml └── documentation ├── admin-login.gif ├── project-diagram.excalidraw ├── project-diagram.jpeg └── user-login.gif /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: ivangfr 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/README.md -------------------------------------------------------------------------------- /book-api/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /book-api/mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/mvnw -------------------------------------------------------------------------------- /book-api/mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/mvnw.cmd -------------------------------------------------------------------------------- /book-api/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/pom.xml -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/BookApiApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/BookApiApplication.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/book/Book.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/book/Book.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/book/BookNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/book/BookNotFoundException.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/book/BookRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/book/BookRepository.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/book/BookService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/book/BookService.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/book/BookServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/book/BookServiceImpl.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/config/ErrorAttributesConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/config/ErrorAttributesConfig.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/config/SwaggerConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/config/SwaggerConfig.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/AuthController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/AuthController.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/BookController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/BookController.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/PublicController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/PublicController.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/UserController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/UserController.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/AuthResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/AuthResponse.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/BookDto.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/BookDto.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/CreateBookRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/CreateBookRequest.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/LoginRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/LoginRequest.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/SignUpRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/SignUpRequest.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/UserDto.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/rest/dto/UserDto.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/runner/DatabaseInitializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/runner/DatabaseInitializer.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/security/CorsConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/security/CorsConfig.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/security/CustomUserDetails.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/security/CustomUserDetails.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/security/CustomUserDetailsService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/security/CustomUserDetailsService.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/security/SecurityConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/security/SecurityConfig.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/DuplicatedUserInfoException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/DuplicatedUserInfoException.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/User.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/UserNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/UserNotFoundException.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/UserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/UserRepository.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/UserService.java -------------------------------------------------------------------------------- /book-api/src/main/java/com/ivanfranchin/bookapi/user/UserServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/java/com/ivanfranchin/bookapi/user/UserServiceImpl.java -------------------------------------------------------------------------------- /book-api/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/resources/application.yml -------------------------------------------------------------------------------- /book-api/src/main/resources/banner.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/main/resources/banner.txt -------------------------------------------------------------------------------- /book-api/src/test/java/com/ivanfranchin/bookapi/BookApiApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/src/test/java/com/ivanfranchin/bookapi/BookApiApplicationTests.java -------------------------------------------------------------------------------- /book-api/test-endpoints.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-api/test-endpoints.sh -------------------------------------------------------------------------------- /book-ui/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/package-lock.json -------------------------------------------------------------------------------- /book-ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/package.json -------------------------------------------------------------------------------- /book-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/public/favicon.ico -------------------------------------------------------------------------------- /book-ui/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/public/index.html -------------------------------------------------------------------------------- /book-ui/public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/public/manifest.json -------------------------------------------------------------------------------- /book-ui/public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/public/robots.txt -------------------------------------------------------------------------------- /book-ui/src/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/App.js -------------------------------------------------------------------------------- /book-ui/src/Constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/Constants.js -------------------------------------------------------------------------------- /book-ui/src/components/admin/AdminPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/admin/AdminPage.js -------------------------------------------------------------------------------- /book-ui/src/components/admin/AdminTab.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/admin/AdminTab.js -------------------------------------------------------------------------------- /book-ui/src/components/admin/BookForm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/admin/BookForm.js -------------------------------------------------------------------------------- /book-ui/src/components/admin/BookTable.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/admin/BookTable.js -------------------------------------------------------------------------------- /book-ui/src/components/admin/UserTable.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/admin/UserTable.js -------------------------------------------------------------------------------- /book-ui/src/components/context/AuthContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/context/AuthContext.js -------------------------------------------------------------------------------- /book-ui/src/components/home/Home.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/home/Home.js -------------------------------------------------------------------------------- /book-ui/src/components/home/Login.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/home/Login.js -------------------------------------------------------------------------------- /book-ui/src/components/home/Signup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/home/Signup.js -------------------------------------------------------------------------------- /book-ui/src/components/misc/BookApi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/misc/BookApi.js -------------------------------------------------------------------------------- /book-ui/src/components/misc/Helpers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/misc/Helpers.js -------------------------------------------------------------------------------- /book-ui/src/components/misc/Navbar.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/misc/Navbar.js -------------------------------------------------------------------------------- /book-ui/src/components/misc/PrivateRoute.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/misc/PrivateRoute.js -------------------------------------------------------------------------------- /book-ui/src/components/user/BookList.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/user/BookList.js -------------------------------------------------------------------------------- /book-ui/src/components/user/UserPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/components/user/UserPage.js -------------------------------------------------------------------------------- /book-ui/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/index.css -------------------------------------------------------------------------------- /book-ui/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/index.js -------------------------------------------------------------------------------- /book-ui/src/reportWebVitals.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/reportWebVitals.js -------------------------------------------------------------------------------- /book-ui/src/setupTests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/book-ui/src/setupTests.js -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /documentation/admin-login.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/documentation/admin-login.gif -------------------------------------------------------------------------------- /documentation/project-diagram.excalidraw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/documentation/project-diagram.excalidraw -------------------------------------------------------------------------------- /documentation/project-diagram.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/documentation/project-diagram.jpeg -------------------------------------------------------------------------------- /documentation/user-login.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivangfr/springboot-react-basic-auth/HEAD/documentation/user-login.gif --------------------------------------------------------------------------------