Microservices with NodeJS, React, Typescript and Kubernetes
In building large scale applications intended for growth, microservices architecture is the go-to solution. One issue for Javascript and NodeJS learners is the few courses and/or resources to teach event-driven microservices with NodeJS and Typescript. This course was designed to show you how to setup and build a large scale event-driven microservices application using React and Typescript on the client side and NodeJS and Typescript on the server side.
This course is a fullstack course that focuses on developing microservices and connecting them to a client web application and it follows a hands-on approach or 'learn-by-doing, which means the whole course is structured around building a fullstack web application and the different concepts will be explained detailedly as they are introduced.
More
What Technologies You'll Use
Because we are building a fullstack application, we will use a variety of tools and technologies. For the frontend, we'll use React, Tailwindcss and Typescript to show content to users. Each microservice will be built using NodeJS, Express and Typescript. Across the microservices, you'll use tools and technologies like Elasticsearch, Kibana, Rabbitmq, Redis, SocketIO, MySQL, PostgreSQL and MongoDB. Each microservice will be built as a Docker image and executed in a Kubernetes cluster. The Kubernetes cluster will be created locally with Minikube and on the cloud with AWS EKS. There are numerous tools, technologies and packages that will be used both locally and in our kubernetes clusters.
Not familiar with some of these? No problem! This course will guide you on how to setup and use these technologies in your apps.
Watch Online Microservices with NodeJS, React, Typescript and Kubernetes
# | Title | Duration |
---|---|---|
1 | Walkthrough of complete application | 25:48 |
2 | AWS kubernetes objects overview | 07:28 |
3 | Overview of microservices code | 04:03 |
4 | Elasticsearch and Kibana dashboard | 08:09 |
5 | Prometheus and Grafana overview | 04:37 |
6 | Monolithic Architecture | 09:26 |
7 | Microservices Architecture | 12:03 |
8 | Microservices communication types | 06:49 |
9 | Microservices communication styles | 05:33 |
10 | Project description | 07:35 |
11 | Functional requirements | 07:04 |
12 | Non-functional requirements | 07:09 |
13 | Design decisions | 09:33 |
14 | Project architecture | 08:52 |
15 | Inter-process communication | 06:17 |
16 | Local dev tools | 03:17 |
17 | Docker installation | 02:47 |
18 | Redis service | 10:11 |
19 | MongoDB service | 06:19 |
20 | MySQL and Postgres services | 07:58 |
21 | Rabbitmq service | 06:08 |
22 | Elasticsearch service | 13:38 |
23 | Kibana service | 10:08 |
24 | Start docker compose services | 06:18 |
25 | Kibana dashboard | 04:20 |
26 | Section introduction | 00:40 |
27 | Helper library description | 09:19 |
28 | Helper library folder | 10:21 |
29 | Github project | 05:20 |
30 | Node npmrc file | 08:35 |
31 | Helper interfaces | 09:30 |
32 | Cloudinary upload method | 12:07 |
33 | Error handlers | 11:46 |
34 | Gateway middleware | 13:43 |
35 | Logger | 14:11 |
36 | Helpers file | 02:43 |
37 | Github actions | 11:37 |
38 | Publish helper library | 06:06 |
39 | Update Library | 04:59 |
40 | Section introduction | 01:01 |
41 | Notification emails introduction | 05:20 |
42 | Notification service setup | 06:52 |
43 | Package json build script | 09:03 |
44 | Add src folder and files | 09:15 |
45 | Notification service config file | 09:18 |
46 | Server functions | 10:01 |
47 | Notification service health route | 06:26 |
48 | Elasticsearch connection | 12:27 |
49 | Start notification service | 10:23 |
50 | Rabbitmq connection | 10:45 |
51 | Rabbitmq introduction | 09:23 |
52 | Rabbitmq channel methods | 07:39 |
53 | Auth email consumer method | 16:43 |
54 | Use auth email consumer method | 09:54 |
55 | Order email consumer method | 07:19 |
56 | Mail transport method | 05:35 |
57 | Email templates - Part 1 | 12:38 |
58 | Email templates - Part 2 | 04:57 |
59 | Use send email method | 11:55 |
60 | Add send email to order consumer | 06:49 |
61 | Setup jest | 12:31 |
62 | Auth consumer test - Part 1 | 13:43 |
63 | Auth consumer test - Part 2 | 07:12 |
64 | Development dockerfile | 07:51 |
65 | Add notification service to docker compose | 07:32 |
66 | Production dockerfile | 10:51 |
67 | Package json scripts commands | 05:51 |
68 | Copy emails folder into build | 08:09 |
69 | Push code to github | 04:23 |
70 | API gateway architecture | 04:00 |
71 | Gateway service folder | 06:52 |
72 | Gateway server file - Part 1 | 10:13 |
73 | Gateway server file - Part 2 | 09:25 |
74 | Gateway server file - Part 3 | 07:51 |
75 | Gateway config file | 09:11 |
76 | Setup gateway service elasticsearch connection | 07:50 |
77 | Gateway health route | 09:56 |
78 | Authentication middleware | 09:33 |
79 | Axios Service | 12:41 |
80 | Add gateway service to docker compose | 03:40 |
81 | Push code to github | 04:04 |
82 | Auth service introduction | 03:36 |
83 | Auth service project setup | 08:21 |
84 | Setup database connection | 11:29 |
85 | Fix sequelize database setup | 01:33 |
86 | Check elasticsearch connection method | 04:07 |
87 | Security middleware function | 10:21 |
88 | Server methods | 09:07 |
89 | App entry file | 04:35 |
90 | Signup schema | 09:57 |
91 | Login schema | 06:55 |
92 | Sequelize model basics | 09:39 |
93 | Database table model fields | 12:52 |
94 | Database indexes | 12:42 |
95 | Connect MySQL to tableplus | 07:14 |
96 | Rabbitmq connection | 11:00 |
97 | Create user service method | 09:57 |
98 | Auth service get methods | 09:45 |
99 | Auth service update methods | 06:40 |
100 | Auth service endpoints | 06:07 |
101 | Signup controller method - Part 1 | 14:08 |
102 | Signup controller method - Part 2 | 11:21 |
103 | Auth service signup routes | 12:49 |
104 | Auth service gateway methods | 11:21 |
105 | Gateway signup route | 08:34 |
106 | Get cloudinary keys | 11:27 |
107 | Update shared library gateway method | 08:56 |
108 | Add gateway token to shared library | 08:52 |
109 | Auth signin controller | 11:29 |
110 | Verify email controller | 09:15 |
111 | Forgot password method | 10:30 |
112 | Reset password method | 08:48 |
113 | Change password method | 08:18 |
114 | Current user method | 11:49 |
115 | API gateway current user controller | 04:42 |
116 | Refresh token method | 11:44 |
117 | Auth unit test mock | 11:28 |
118 | Current user read method unit test | 14:39 |
119 | Fix jest issue | 06:11 |
120 | Resend email test | 08:15 |
121 | Push to github | 05:26 |
122 | Elasticsearch and Kibana dashboard | 11:57 |
123 | Create gigs index | 12:06 |
124 | Add test data to gigs index | 05:52 |
125 | Get gig by id | 05:52 |
126 | Upload gigs data | 06:58 |
127 | Elaasticsearch API | 10:34 |
128 | Gigs search query - Part 1 | 11:19 |
129 | Gigs search query - Part 2 | 12:26 |
130 | Search controller | 09:55 |
131 | Search routes | 02:39 |
132 | API gateway auth search controller | 12:52 |
133 | Search http test | 06:58 |
134 | Auth seed controller - Part 1 | 13:29 |
135 | Auth seed controller - Part 2 | 07:41 |
136 | Auth seed http test | 05:26 |
137 | Push to github | 01:50 |
138 | Section introduction | 05:44 |
139 | Users service setup | 04:03 |
140 | Database connection | 09:02 |
141 | Elasticsearch connection | 06:01 |
142 | Server setup | 06:59 |
143 | Buyer schema | 08:02 |
144 | Seller schema - Part 1 | 10:09 |
145 | Seller schema - Part 2 | 06:04 |
146 | Seller validation scheme | 06:32 |
147 | Buyer service get methods | 07:56 |
148 | Buyer service update methods | 05:20 |
149 | Seller service get methods | 07:44 |
150 | Seller service update methods | 15:12 |
151 | Buyer gateway service | 05:24 |
152 | Seller gateway service | 05:03 |
153 | Rabbitmq queue connection and producer methods | 08:49 |
154 | Rabbitmq buyer message consumer method | 12:48 |
155 | Rabbitmq seller message consumer method | 09:55 |
156 | Rabbitmq review message consumer method | 12:21 |
157 | Buyer controller routes | 11:55 |
158 | Seller create and update controllers | 11:26 |
159 | Router definition order | 05:05 |
160 | Seller get controller | 05:03 |
161 | Seller seed controller - Part 1 | 11:51 |
162 | Seller seed controller - Part 2 | 15:23 |
163 | Seller gateway controller | 09:37 |
164 | Seed http test | 07:01 |
165 | Buyer unit test | 13:44 |
166 | Push to github | 06:07 |
167 | Section introduction | 05:04 |
168 | Gig service setup | 06:44 |
169 | Gig service folders | 06:04 |
170 | Elasticsearch add to index method | 10:30 |
171 | Elasticsearch update and delete methods | 02:48 |
172 | Gig schema - Part 1 | 10:45 |
173 | Gig schema - Part 2 | 07:40 |
174 | Rabbitmq queue connection | 03:55 |
175 | Gig service get methods | 12:33 |
176 | Gig service create method | 10:38 |
177 | Gig service delete and update methods | 08:38 |
178 | Update gig review method | 04:53 |
179 | Gig queue consumer methods | 10:22 |
180 | Create redis connection | 07:08 |
181 | Get category from redis cache method | 07:33 |
182 | Gig create controller | 10:13 |
183 | Add sortid to create method | 04:31 |
184 | Gig update controller | 10:06 |
185 | Gig get methods | 07:00 |
186 | Gig search methods | 09:13 |
187 | Elasticsearch more like this method | 09:50 |
188 | Top gigs method | 12:56 |
189 | Test top gig method | 05:15 |
190 | Search controller | 11:51 |
191 | Seed data method | 13:37 |
192 | Move seed data consumer method to server start queues method | 01:31 |
193 | Gig seed controller | 08:00 |
194 | Gig unit test | 14:37 |
195 | Gateway gig controllers | 13:49 |
196 | Gateway gig get controller | 06:33 |
197 | Fix gig routes | 01:03 |
198 | Gateway redis connection | 04:56 |
199 | Gateway cache methods | 11:53 |
200 | SocketIO setup | 10:04 |
201 | SocketIO events | 11:18 |
202 | Update current user controller | 06:24 |
203 | Push to github | 05:01 |
204 | Section introduction | 04:30 |
205 | Chat project setup | 09:10 |
206 | Chat service socketio information | 03:41 |
207 | Chat service socket connection | 16:44 |
208 | Start chat server | 03:50 |
209 | Conversation model | 07:21 |
210 | Message database model | 08:04 |
211 | Rabbitmq connection | 04:59 |
212 | Message service add message method | 12:17 |
213 | Get chat list method | 12:12 |
214 | Get user messages method | 07:30 |
215 | Mark messages method | 06:03 |
216 | Create message controller | 12:58 |
217 | Update get health controller | 09:47 |
218 | Chat service routes | 05:42 |
219 | Set default createdAt date | 01:36 |
220 | Chat create controller unit test | 07:23 |
221 | Chat gateway service | 07:38 |
222 | Chat gateway controller | 11:40 |
223 | Push to github | 02:42 |
224 | Section introduction | 06:06 |
225 | Service setup | 05:32 |
226 | Order model | 09:14 |
227 | Notification schema | 05:27 |
228 | Fix date in schema | 00:53 |
229 | Notification service | 12:33 |
230 | Get and create order methods | 15:44 |
231 | Approve and cancel order methods | 11:27 |
232 | Deliver order mthod | 07:50 |
233 | Extension request method | 12:47 |
234 | Update order review method | 05:52 |
235 | Order consumer rabbitmq method | 07:23 |
236 | Stripe account creation | 08:28 |
237 | Create stripe intent method - Part 1 | 12:19 |
238 | Create stripe intent method - Part 2 | 11:21 |
239 | Create order controller method | 08:21 |
240 | Update order controllers | 09:56 |
241 | Update deliver order method | 05:30 |
242 | Notification controllers | 05:38 |
243 | Order routes | 07:34 |
244 | Create order unit test | 13:34 |
245 | Create controller order method unit test | 08:34 |
246 | Gateway order controller and routes | 13:14 |
247 | Fix order routes | 01:01 |
248 | Push code to github | 02:14 |
249 | Section introduction | 02:35 |
250 | Service setup | 04:35 |
251 | Postgres database connection | 12:30 |
252 | Review database table | 12:02 |
253 | Create review method | 10:50 |
254 | Rabbitmq producer | 06:36 |
255 | Get reviews methods | 05:42 |
256 | Review controller | 09:29 |
257 | Create review method unit test | 10:16 |
258 | Gateway review controller | 08:31 |
259 | Gateway current user controller unit test - Part 1 | 09:04 |
260 | Gateway current user controller unit test - Part 2 | 09:50 |
261 | Push to github | 01:31 |
262 | Metric beats docker service | 11:52 |
263 | Run metricbeat service | 10:21 |
264 | Heartbeat docker service | 14:23 |
265 | Run heartbeat service | 05:01 |
266 | Update elasticsearch and kibana in docker compose file | 14:28 |
267 | Create kibana service token | 11:09 |
268 | APM server setup | 11:12 |
269 | APM nodejs client setup | 10:52 |
270 | Run apm server | 07:12 |
271 | Kubernetes fundamentals | 09:28 |
272 | Kubernetes components | 08:00 |
273 | Kubernetes objects | 13:02 |
274 | Minikube installation | 09:46 |
275 | Lens IDE | 08:27 |
276 | Minikube vs. Cloud resources | 02:44 |
277 | Redis kubernetes objects | 13:16 |
278 | Redis statefulsets | 14:15 |
279 | Rabbitmq kubernetes object | 12:24 |
280 | Update Rabbitmq kubernetes object | 14:09 |
281 | MySQL kubernetes object - Part 1 | 12:40 |
282 | MySQL kubernetes object - Part 2 | 07:14 |
283 | Postgres kubernetes object | 06:32 |
284 | Update postgres kubernetes objects | 04:26 |
285 | Mongodb kubernetes object | 07:16 |
286 | Elasticsearch kubernetes object | 14:11 |
287 | Kibana kubernetes object | 10:22 |
288 | Apply kibana objects | 08:35 |
289 | Create secrets file | 15:25 |
290 | Use secrets | 07:28 |
291 | Import express async errors | 01:15 |
292 | Build gateway service docker image | 12:15 |
293 | Review service kubernetes objects | 12:48 |
294 | Order and chat services kubernetes objects | 04:37 |
295 | API gateway kubernetes objects | 10:03 |
296 | API gateway ingress | 12:04 |
297 | Dynamically set sameSite property to gateway microservice | 02:23 |
298 | Run api gateway ingress | 09:58 |
299 | Generate self-signed certificates | 16:42 |
300 | Create gateway tls secret | 12:07 |
301 | Remove whitespace from secrets | 04:02 |
302 | Update gateway ingress | 04:52 |
303 | Kibana ingress | 09:49 |
304 | Kibana configmap | 13:34 |
305 | Change kibana user password | 11:15 |
306 | Elasticsearch heartbeat object | 14:03 |
307 | View heartbeat on kibana dashboard | 01:48 |
308 | Elasticsearch metricbeart object | 06:04 |
309 | View metricbeat on kibana dashboard | 03:29 |
310 | Port forward to access MySQl and MongoDB | 07:09 |
311 | Jenkins docker service | 06:40 |
312 | Jenkins agent docker service | 12:15 |
313 | Add Jenkins agent as node | 08:49 |
314 | Install docker on jenkins agent | 08:12 |
315 | Install plugins | 13:20 |
316 | Create minikube kubernetes token | 13:15 |
317 | Review service jenkinsfile | 10:54 |
318 | Review service jenkins pipeline | 14:41 |
319 | Docker image pipeline build stage | 10:12 |
320 | Reusable groovy functions | 14:43 |
321 | Create slack webhook | 06:19 |
322 | Create jenkins file post actions | 10:46 |
323 | Add kubernetes stage to pipeline | 09:31 |
324 | Test kubernetes pipeline stage | 06:24 |
325 | Github webhooks | 09:49 |
326 | Setup order service pipeline | 06:53 |
327 | Microservice eks cluster architecture | 13:25 |
328 | AWS cost | 08:21 |
329 | Install aws cli | 08:22 |
330 | Create VPC and subnets | 09:28 |
331 | Tag public subnets | 05:28 |
332 | Create NAT gateway | 07:06 |
333 | Create security groups | 08:43 |
334 | Add k8s objects files | 03:45 |
335 | Create EBS CSI driver role | 13:19 |
336 | Install aws ebs-csi driver | 05:50 |
337 | Update rabbitmq storage class and persistent volume | 05:28 |
338 | Create mysql rds instance | 11:39 |
339 | Create postgres rds instance | 06:37 |
340 | Install eksctl | 07:46 |
341 | Eksctl introduction | 07:04 |
342 | Create kubernetes cluster with eksctl | 08:47 |
343 | Create kubernetes cluster nodegroup with eksctl | 13:53 |
344 | View worker nodes | 06:25 |
345 | Create elasticsearch cloud deployment | 04:18 |
346 | Add elasticsearch url to secrets | 10:06 |
347 | Create redis cluster on aws | 08:33 |
348 | Create mongodb cloud database | 06:36 |
349 | Apply API gateway kubernetes deployment | 02:28 |
350 | Fix postgres connection issue | 04:51 |
351 | Dynamically set postgres connection ssl property | 02:22 |
352 | Add new env variable to review microservice | 04:37 |
353 | AWS route53 hosted zones | 11:35 |
354 | Apply gateway objects | 05:44 |
355 | Create application load balancer controller service account | 11:18 |
356 | Install ALB controller with helm | 12:36 |
357 | Add annotations to gateway ingress | 12:42 |
358 | Create gateway application load balancer ingress | 11:32 |
359 | Create gateway external DNS service account | 12:17 |
360 | Create gateway external DNS | 11:48 |
361 | Run elasticsearch heartbeat and metricbeat | 09:25 |
362 | Test endpoints | 04:32 |
363 | Create EC2 jenkins master | 09:29 |
364 | Install jenkins on EC2 jenkins master | 13:10 |
365 | Access jenkins master dashboard | 02:27 |
366 | Setup jenkins agent | 08:11 |
367 | Setup ssh connection between jenkins master and agent | 10:00 |
368 | Install nodejs and docker | 06:28 |
369 | Jenkins aws service account token | 10:11 |
370 | Create review service pipeline | 07:10 |
371 | View review service pipeline logs | 03:24 |
372 | Create github webhook | 02:50 |
373 | Create EBS CSI driver role | 13:19 |
374 | Install aws ebs-csi driver | 05:50 |
375 | Install prometheus with helm | 08:35 |
376 | Setup prometheus ingress | 10:48 |
377 | Setup external DNS for prometheus | 08:33 |
378 | Prometheus host | 01:51 |
379 | Install grafana with helm | 07:41 |
380 | Setup grafana ingress | 06:50 |
381 | View grafana dashboard | 08:34 |
382 | Setup project with vite | 07:19 |
383 | Update vite config file | 10:06 |
384 | Add prettier and eslint | 05:29 |
385 | App folder structure | 06:05 |
386 | Install tailwindcss | 08:38 |
387 | Section introduction | 00:42 |
388 | Create index component | 06:13 |
389 | Create app router component | 08:10 |
390 | React code splitting concept | 08:02 |
391 | Button component | 08:32 |
392 | Index header component | 13:38 |
393 | Hero component | 07:47 |
394 | Hero component text animation | 09:30 |
395 | Text input component | 10:58 |
396 | Utils service file | 07:33 |
397 | Remove shared library | 08:10 |
398 | Gig tabs component | 12:10 |
399 | Gig tabs items | 10:37 |
400 | Categories components | 13:48 |
401 | Modal background component | 06:19 |
402 | Alert component | 09:44 |
403 | Dropdown component | 15:20 |
404 | Login modal component | 13:05 |
405 | Register modal component | 07:48 |
406 | Setup redux store | 10:17 |
407 | Use redux store file | 07:26 |
408 | RTK query setup | 14:19 |
409 | RTK create api method | 06:20 |
410 | Authentication service | 14:20 |
411 | Register component implementation | 13:18 |
412 | Register component country dropdown | 10:37 |
413 | Register component profile picture | 14:43 |
414 | Validate registration user data | 13:47 |
415 | Create new user method | 10:42 |
416 | Fix RTK query issues | 03:44 |
417 | Create auth reducer | 09:54 |
418 | Logout reducer | 07:57 |
419 | Login user | 09:18 |
420 | Forgot password | 10:32 |
421 | Reset password | 13:36 |
422 | Reset user password testing | 05:47 |
423 | Confirm email | 10:30 |
424 | Home header component | 11:38 |
425 | Check current user query | 11:46 |
426 | App page component conditionals | 11:53 |
427 | Logout method | 13:18 |
428 | Add gateway service logout route | 07:29 |
429 | Setup protected route component | 10:24 |
430 | Display banner component | 12:44 |
431 | Slider component - Part 1 | 12:26 |
432 | Slider component - Part 2 | 07:47 |
433 | Home gigs view component | 09:21 |
434 | Featured sellers component | 07:12 |
435 | Star rating component | 11:10 |
436 | Error component | 03:50 |
437 | Buyer dashboard route | 07:07 |
438 | Buyer dashboard component | 12:23 |
439 | Buyer table component | 14:39 |
440 | Buyer reducer | 07:12 |
441 | Settings dropdown component | 13:01 |
442 | Detect outside click hook | 12:14 |
443 | Fix settings dropdown items | 03:31 |
444 | Create breadcrumb component | 09:30 |
445 | Add new seller component | 09:52 |
446 | Personal info component | 10:35 |
447 | Get personal info data | 15:44 |
448 | Seller experience fields component | 10:55 |
449 | Seller experience fields onchange method | 12:40 |
450 | Add and remove fields | 13:03 |
451 | Handle fields change method | 05:18 |
452 | Seller education fields | 12:07 |
453 | Add other seller fields | 05:14 |
454 | Seller service methods | 11:25 |
455 | Seller validation | 11:35 |
456 | Seller onCreate method | 14:52 |
457 | Dispatch seller inside app page component | 13:52 |
458 | Fix email verification issue | 10:23 |
459 | Fix dynamic input text issue | 15:38 |
460 | Update settings dropdown | 03:22 |
461 | Add profile header component | 10:30 |
462 | Profile header gig info | 11:01 |
463 | Fullname update fields | 12:02 |
464 | Display star ratings | 10:13 |
465 | Install react fast compare package | 07:15 |
466 | Profile tabs components | 09:09 |
467 | Seller Context | 08:43 |
468 | Edit language components | 13:13 |
469 | Handle update method | 12:34 |
470 | Use language edit fields | 09:59 |
471 | About me component | 10:31 |
472 | Social links component | 13:27 |
473 | Use social links component | 09:51 |
474 | Certificates components | 10:19 |
475 | Certificate edit fields | 17:11 |
476 | Description component | 10:03 |
477 | Experience and education components | 02:06 |
478 | Show experience and education components | 08:57 |
479 | Skill fields component | 11:48 |
480 | Skills component properties | 12:06 |
481 | Create toast method | 06:03 |
482 | Seller update method | 09:05 |
483 | Import toast component styles | 01:23 |
484 | View seller profile page | 09:57 |
485 | Seller dashboard header component | 14:02 |
486 | Header reducer | 14:01 |
487 | Manage earnings component | 14:12 |
488 | Manage earnings table component | 09:48 |
489 | Manage orders component | 12:14 |
490 | Manage orders table body | 07:43 |
491 | Seller dashboard component | 14:57 |
492 | Active orders table | 08:18 |
493 | Add circular page loader to app page | 12:40 |
494 | Update featured expert component on home page | 09:05 |
495 | Add index component suspense fallback | 02:07 |
496 | Add gig component | 12:03 |
497 | Setup react quill | 15:43 |
498 | Add category dropdown | 07:40 |
499 | Tags input component - Part 1 | 14:44 |
500 | Tags input component - Part 2 | 14:38 |
501 | Search tags field | 03:19 |
502 | Characters validation | 06:30 |
503 | Cover image selection | 09:52 |
504 | Gig validation hook | 14:26 |
505 | Approval modal component | 15:11 |
506 | Gig create method | 13:20 |
507 | Gig view component | 14:07 |
508 | Gig context | 07:05 |
509 | Gig right package - Part 1 | 12:29 |
510 | Gig right package - Part 2 | 07:10 |
511 | Gig view seller component | 14:06 |
512 | Gig related tags component | 05:16 |
513 | Gig overview and about components | 10:28 |
514 | Html parser component | 10:19 |
515 | Gig view reviews | 07:58 |
516 | Gigs search result components | 09:34 |
517 | Budget dropdown component | 15:50 |
518 | Delivery time component | 12:59 |
519 | Gig card display item component | 13:16 |
520 | Search gigs query | 13:36 |
521 | Use gig display item component | 14:53 |
522 | Fix budget min and max issue | 03:47 |
523 | Gig paginate component | 15:29 |
524 | Use gig paginate component | 09:27 |
525 | Add gig card display item to seller profile | 10:22 |
526 | Top gigs view component | 14:33 |
527 | Add top gigs view component to home page | 13:13 |
528 | Top gigs slide methods | 10:27 |
529 | Gig card item component | 12:10 |
530 | Gig card item methods - Part 1 | 15:07 |
531 | Gig card item methods - Part 2 | 07:59 |
532 | Edit gig component | 16:14 |
533 | Main chat and chatbox components | 14:30 |
534 | Scroll to bottom hook | 07:09 |
535 | Message query in chatbox component | 13:36 |
536 | Use save chat message in chatbox component | 13:09 |
537 | Chatbox form | 08:07 |
538 | Message dropdown component | 15:20 |
539 | Add message dropdown to home header | 07:48 |
540 | Fix chat conversation bug | 05:20 |
541 | Setup socketio client | 14:47 |
542 | Emit socket events in components | 10:36 |
543 | Chat list component | 15:27 |
544 | Chat list select user method | 15:23 |
545 | Chat utils - Part 1 | 14:10 |
546 | Chat utils - Part 2 | 07:53 |
547 | Chat window component | 11:35 |
548 | Display receiver username in chat window | 12:38 |
549 | Chat image preview component | 10:47 |
550 | Use chat image preview component | 14:24 |
551 | Offer modal component | 15:35 |
552 | Use offer modal component | 07:57 |
553 | Chat offer component | 12:39 |
554 | Use chat offer component | 06:21 |
555 | Chat file component | 12:46 |
556 | Add download file method to chat file component | 03:22 |
557 | Send message method in chat window component | 13:10 |
558 | Notification reducer | 14:52 |
559 | Mobile header components | 06:19 |
560 | Index header sidebar | 13:23 |
561 | Checkout form Component | 16:08 |
562 | Checkout form handle submit method | 15:05 |
563 | Checkout component | 14:09 |
564 | Payment intent method and requirements component | 11:59 |
565 | Download order invoice | 15:18 |
566 | Start order method | 11:06 |
567 | Order component | 14:37 |
568 | Count down timer hook | 17:08 |
569 | Extend delivery modal | 16:00 |
570 | Delivery work modal | 15:37 |
571 | Order details table component | 14:20 |
572 | Order activities component | 14:04 |
573 | Order placed component | 08:37 |
574 | Order extension component | 15:13 |
575 | Order delivered component | 07:58 |
576 | Order review component | 08:54 |
577 | Fix review microservice bug | 03:12 |
578 | Update buyer and seller order tables | 12:09 |
579 | Get seller reviews | 16:27 |
580 | Gig reviews issue | 10:48 |
581 | Remapped review response in review microservice | 03:29 |
582 | Order dropdown component | 15:30 |
583 | Notifications dropdown | 20:56 |
584 | Before window unload hook | 08:46 |
585 | Settings and change password components | 15:22 |
586 | Settings service | 08:22 |
587 | Fix change password bug | 09:59 |
588 | Fetch base query error method | 07:41 |
589 | Gig index item component | 11:07 |
590 | Gig index display | 17:20 |
591 | Gig index info display | 07:04 |
592 | NPM run build command | 07:48 |
593 | NGINX config - Part 1 | 14:12 |
594 | NGINX config - Part 2 | 07:19 |
595 | Setup dockerfile | 11:10 |
596 | Docker build and push image | 02:39 |
597 | Create frontend kubernetes objects on minikube | 08:33 |
598 | Create self-signed certificates for frontend ingress | 12:59 |
599 | Frontend minikube ingress | 06:34 |
600 | View frontend application on browser | 02:14 |
601 | Push code to github | 07:21 |
602 | Add stripe api key to jenkins | 04:07 |
603 | Create frontend jenkins pipeline | 16:29 |
604 | Install APM RUM package in React | 03:17 |
605 | Make changes to frontend ENV file | 05:16 |
606 | Install elastic apm node package | 02:47 |
607 | Add APM server url to ENV file | 04:11 |
608 | Create frontend kubernetes objects on AWS EKS cluster | 10:18 |
609 | Create frontend deployment and ingress | 03:47 |
610 | Move require to index html file in react | 15:00 |
611 | Fix api gateway client url | 10:32 |
612 | Update frontend ingress host | 01:25 |