Test Driven Web Development with Spring Boot & React

Test Driven Web Development with Spring Boot & React

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 19 Hours | 9.87 GB

Full Stack TDD Web App Development – Test Driven Development with Spring & React – (JUnit, Jest, React Testing Library)

This course is purely built on practice. Each code piece we write, will be for our actual application implementation.

In each section we will gradually build our application. We will not jump ahead and add functionality not needed for that moment. We will implement one requirement at a time. Each implementation will bring the next requirement to us. And following this path will help us to feel and understand what are the frameworks doing and how they are easing application development.

In the end, we will be building a simple social sharing platform. We will call it Hoaxify.

We will see various practices about

How Test Driven Development (TDD) works

How can we build a rest backend server application with Spring Boot

and how we can build a web client with reusable components with React. And we will also learn how we can implement components with hooks.

The course is up to date with the latest Spring Boot version 2.3 and React 16.13

What you’ll learn

  • Test Driven Development
  • Spring Boot
  • Spring Security
  • Spring Data
  • React
  • Hooks
  • Redux
  • React Testing Library
  • Clean Coding
  • Refactoring
  • Web Development
Table of Contents

Introduction
1 Introduction
2 Technology
3 Methodology

Creating Projects
4 Backend
5 Backend Project Creation Warning
6 Frontend
7 Frontend Test Dependencies Reminder
8 Frontend Test Configuration
9 Project Source Code

User Signup
10 User Signup Page
11 Post User (Backend)
12 Saving User to Database (Backend)
13 Response Body (Backend)
14 Password Hashing (Backend)
15 User Signup Page (Frontend)
16 Form Layout (Frontend)
17 Handling Input Change (Frontend)
18 Click Handling (Frontend)
19 Styling (Frontend)
20 Sending Requests to Backend (Frontend)
21 Progress Indicator (Frontend)

Validation
22 Validation
23 User Validation (Backend)
24 Error Modelling (Backend)
25 Error Messages Internationalization (Backend)
26 Custom Constraint (Backend)
27 Displaying Validation Errors (Frontend)
28 Form Input Component (Frontend)
29 Clientside Validation (Frontend)

Login
30 Login
31 Login (Backend)
32 Login Errors (Backend)
33 Authentication (Backend)
34 Authenticated User (Backend)
35 User View Model (Backend)
36 Login Page (Frontend)
37 Handling Input Change (Frontend)
38 Click Handling (Frontend)
39 Sending Request to Backend (Frontend)
40 Progress Indicator (Frontend)

Client Internal Routing
41 Client Internal Routing
42 New Pages (Frontend)
43 React Router (Frontend)
44 Login Success Routing (Frontend)
45 Signup Success Routing (Frontend)
46 TopBar (Frontend)

Client State Management
47 Client State Management
48 Redux (Frontend)
49 Redux Initial Configuration (Frontend)
50 Connecting to Redux (Frontend)
51 Dispatching Action (Frontend)
52 Connecting LoginPage to Redux (Frontend)
53 Connecting UserSignupPage to Redux (Frontend)
54 Redux Middleware (Frontend)
55 Combining Signup And Login Actions (Frontend)
56 Storing State in LocalStorage (Frontend)
57 Axios Authorization Configuration (Frontend)

Listing Users
58 Listing Users
59 Get Users (Backend)
60 User Modelling JsonView (Backend)
61 User Modelling Projection (Backend)
62 User Modelling UserVM (Backend)
63 Pagination (Backend)
64 Excluding Logged in User (Backend)
65 Creating Random Users (Backend)
66 User List Api (Frontend)
67 User List (Frontend)
68 User List Item (Frontend)
69 User List Page (Frontend)
70 Load Errors (Frontend)
71 Navigation (Frontend)

User Profile
72 User Profile
73 Get User By Name (Backend)
74 User Get Api (Frontend)
75 Load User Success (Frontend)
76 Load User Failure (Frontend)
77 Navigating From User To My Profile (Frontend)
78 Profile Card (Frontend)
79 Profile Image With Default (Frontend)
80 Profile Loading (Frontend)

User Update
81 User Update
82 Security (Backend)
83 Update Model (Backend)
84 User Update Api (Frontend)
85 Edit Button (Frontend)
86 User Edit Layout (Frontend)
87 User Interactions (Frontend)
88 Sending Update Request (Frontend)
89 Cancelling Update (Frontend)
90 Progress Indicator (Frontend)

User Update Profile Image
91 User Update with Profile Image
92 Update User Image (Backend)
93 File Storage (Backend)
94 External Configuration (Backend)
95 Spring Profiles (Backend)
96 Spring Test Profile Bug
97 Static Resource Checks (Backend)
98 Static Resource Caching (Backend)
99 File Upload Implementation (Backend)
100 File Upload Layout (Frontend)
101 File Selection Interactions (Frontend)
102 Sending Update Request (Frontend)

User Update Validation
103 User Update Validation
104 User DisplayName Update Validation (Backend)
105 File Type Check (Backend)
106 Profile Image Constraint (Backend)
107 Removing Old Image (Backend)
108 Displayname Validation (Frontend)
109 File Validation (Frontend)
110 Clearing Validation Errors (Frontend)

User Info on TopBar
111 User Info on TopBar
112 TopBar with User Info (Frontend)
113 User Actions Menu Layout (Frontend)
114 Menu Interactions (Frontend)
115 Updating Redux with User Changes (Frontend)

Hoax Submit
116 Hoax Submit
117 Hoax Post (Backend)
118 Saving Hoax to Database (Backend)
119 Validation (Backend)
120 Hoax User Relationship (Backend)
121 Failures When Running All Tests
122 Lazy Initialization Exception (Backend)
123 Hoax Submit Api (Frontend)
124 Hoax Submit View (Frontend)
125 Connecting Hoax Submit View to Redux (Frontend)
126 User Interactions (Frontend)
127 Sending Request to Backend (Frontend)
128 Progress Indicator (Frontend)
129 Displaying Validation Errors (Frontend)
130 Hoax Submit Conditional Visibility (Frontend)

Hoax Feed
131 Hoax Feed
132 Get All Hoaxes (Backend)
133 Hoax View Model (Backend)
134 Get Hoaxes of User (Backend)
135 Hoax Get Api (Frontend)
136 HoaxFeed (Frontend)
137 Hoaxes in HoaxFeed (Frontend)
138 HoaxView (Frontend)
139 Link to User (Frontend)
140 Hoax Pagination (Frontend)

Hoax Feed Pagination
141 Hoax Feed Pagination
142 Old Hoaxes (Backend)
143 Old Hoaxes of User (Backend)
144 New Hoaxes (Backend)
145 New Hoaxes of User (Backend)
146 New Hoaxes Count (Backend)
147 Refactoring (Backend)
148 Relative Hoax Feed Api (Frontend)
149 Old Hoaxes (Frontend)
150 New Hoaxes Count (Frontend)
151 Time in Tests (Frontend)
152 New Hoaxes (Frontend)
153 Progress Indicator (Frontend)

Hoax Attachment
154 Hoax Attachment
155 File Upload Controller Security (Backend)
156 File Data Model (Backend)
157 Storage Check (Backend)
158 Storing File Info in DB (Backend)
159 Hoax File Relation (Backend)
160 Stale File Query (Backend)
161 Scheduled Service for Cleanup (Backend)
162 File Upload Api (Frontend)
163 Hoax Submit UI For File (Frontend)
164 Hoax File Submit Api Interactions (Frontend)
165 HoaxView With Attachment (Frontend)

Deleting Hoaxes
166 Deleting Hoaxes
167 Hoax Delete Controller (Backend)
168 Method Level Security (Backend)
169 Removing Attachments (Backend)
170 Hoax Delete Api (Frontend)
171 Delete in HoaxView (Frontend)
172 Delete Confirm Dialog (Frontend)
173 Hoax Delete Modal Interactions (Frontend)
174 Hoax Delete Api Interactions (Frontend)

Upgrade
175 Upgrading Spring Boot
176 Migrating to JUnit 5
177 Upgrading Frontend Dependencies

Hooks
178 Hooks
179 useState in LoginPage
180 useEffect in LoginPage
181 UserSignupPage with Hooks
182 UserList with Hooks
183 UserPage with Hooks
184 useReducer
185 HoaxFeed with Hooks
186 TopBar with Hooks
187 useClickTracker
188 DropDown on HoaxView

Outro
189 Outro