https://github.com/souzafcharles/java-spring-react-fullstack
β Project developed based on tutorials by Fernanda Kipper: Building a Full-Stack Application with Java Spring and React
https://github.com/souzafcharles/java-spring-react-fullstack
intellij-idea java javaspring javaspringboot lombok maven postgresql postman react reactjs spring spring-boot springdata-jpa springweb typescript
Last synced: about 1 month ago
JSON representation
β Project developed based on tutorials by Fernanda Kipper: Building a Full-Stack Application with Java Spring and React
- Host: GitHub
- URL: https://github.com/souzafcharles/java-spring-react-fullstack
- Owner: souzafcharles
- License: mit
- Created: 2025-01-30T17:28:07.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-07T02:25:46.000Z (3 months ago)
- Last Synced: 2025-02-07T03:23:55.752Z (3 months ago)
- Topics: intellij-idea, java, javaspring, javaspringboot, lombok, maven, postgresql, postman, react, reactjs, spring, spring-boot, springdata-jpa, springweb, typescript
- Language: Java
- Homepage:
- Size: 11.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README



# π» Building a Full-Stack Application with Java Spring and React
:triangular_flag_on_post: Project developed based on tutorials by **Fernanda Kipper** - [kipperDev](https://www.youtube.com/@kipperdev).
***
## Instructions:
This guide provides a structured approach to developing a full-stack application usingJava Spring
,React
, andPostgreSQL
. The process is divided into two key phases: backend development and frontend development.### Part 1 - [Backend Development with Java Spring and PostgreSQL](https://github.com/souzafcharles/Java-Spring-React-Fullstack/tree/main/Backend/digitalMenu):
This section details the construction of the application's backend using theJava Spring
framework. It begins with the creation of aSpring Boot
project, configuring bothH2
for testing andPostgreSQL
for development, and implementing database migrations usingLiquibase
. The guide then covers the creation of data models andRESTful
controllers to manageCRUD
operations within the application. The utilisation of essential libraries, such asSpring Data JPA
, will be explored to streamline data access and manipulation. Environment-specific configurations and the use of environment variables are also covered.## Backend Project Stack:
| Technology | Version | Description |
|-------------------|-----------|---------------------------------------------|
| π IntelliJ IDEA | `2024.3` | Integrated Development Environment (IDE) |
| β Java | `21` | Backend programming language |
| π± Spring Boot | `3.4.2` | Framework for creating Spring applications |
| π¦ Maven | `3.9.9` | Build automation and dependency management |
| π PostgreSQL | `17` | Relational database management system |
| ποΈ H2 Database | `2.3.232` | In-memory relational database for testing |
| π’οΈ Liquibase | `4.22.0` | Database migration management tool |
| π©βπ Postman | `11.19` | API testing and development tool |***
## Backend Dependencies:
| Dependency | Category | Description |
|-------------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| π οΈ Spring Boot DevTools | Developer Tools | Provides fast application restarts, LiveReload, and configurations for enhanced development experience |
| π Spring Web | Web | Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container |
| πΎ Spring Data JPA | SQL | Persist data in SQL stores with Java Persistence API using Spring Data and Hibernate |
| ποΈ H2 Database Engine | SQL | Provides a fast in-memory database that supports JDBC API and R2DBC access, with a small (2mb) footprint |
| π PostgreSQL Driver | SQL | A JDBC and R2DBC driver that allows Java programs to connect to a PostgreSQL database using standard, database-independent Java code |
| π’οΈ Liquibase Core | SQL | Manages database schema migrations, providing version control and seamless updates to the database schema |
| ποΈ dotenv-java | Configuration | Loads environment variables from a `.env` file into the application, aiding in secure configuration management |***
### Part 2 - [Frontend Development with React and TypeScript](https://github.com/souzafcharles/Java-Spring-React-Fullstack/tree/main/Frontend/digitalMenu):
This section focuses on developing the application's frontend using theReact
library andTypeScript
. The process includes creatingReact
components and leveragingReact Hooks
to implement the application's functionalities. The guide also explores the use ofTypeScript
to enhance code maintainability. Furthermore, it details the connection of the frontend to the backend (developed in Part 1) usingAxios
forHTTP
requests andReact Query
for fetching, caching, synchronising, and updating server state within the application.## Frontend Project Stack:
| Technology | Version | Description |
|-----------------------|------------|-------------------------------------------------|
| βοΈVisual Studio Code | `1.96` | Code editor for modern web and cloud projects |
| β‘ Vite | `6.0.11` | Next Generation Frontend Tooling |
| βοΈ React | `18.3.1` | Framework for building user interfaces |
| π TypeScript | `5.6.2` | Strongly typed programming language |
| π¦ Node.js | `18.x` | JavaScript runtime environment |***
## Frontend Dependencies:
| Dependency | Category | Description |
|--------------------------|------------------|----------------------------------------------------------|
| βοΈ React | Core | Library for building user interfaces |
| βοΈ React DOM | Core | Renders React components in the browser |
| π TypeScript | Core | Enables type-checking and development with TypeScript |
| βοΈ Vite Plugin React | Build Tools | Plugin to support React in Vite projects |
| β ESLint | Development | Linter tool to ensure code quality |
| π― TypeScript ESLint | Development | Integrates TypeScript with ESLint |
| π @types/react | Type Definitions | Provides TypeScript definitions for React |
| π @types/react-dom | Type Definitions | Provides TypeScript definitions for React DOM |
| π Globals | Development | Provides global variables and functions for ESLint rules |
| βοΈ React Hooks ESLint | Development | Ensures proper usage of React Hooks |
| π§ React Refresh ESLint | Development | Provides linting for Viteβs fast-refresh mechanism |
| π @tanstack/react-query | API Management | Data fetching and caching for React applications |
| π Axios | API Management | Promise-based HTTP client for making API requests |***
βΆοΈ **Tutorial Video kipperDev**:
- [Part 1](https://www.youtube.com/watch?v=lUVureR5GqI&ab_channel=FernandaKipper%7CDev): Backend Development with Java Spring and PostgreSQL;
- [Part 2](https://www.youtube.com/watch?v=WHruc3_2z68&ab_channel=FernandaKipper%7CDev): Frontend Development with React and TypeScript.***
## Home Screen with Displayed Items:
