15
15
actions :
16
16
- text : Getting Started
17
17
link : en/getting-started/introduction
18
- icon : right-arrow
19
18
- text : Discover official tutorials
20
19
link : https://angular.dev/tutorials
21
- icon : external
22
20
variant : minimal
23
21
---
24
22
@@ -33,3 +31,355 @@ hero:
33
31
This tutorial is part of the ** Angular Courses Lab** initiative - a community-driven effort to create comprehensive, hands-on learning experiences for Angular developers of all skill levels. Our mission is to provide practical, real-world tutorials that bridge the gap between Angular concepts and actual application development.
34
32
35
33
Through this initiative, we're building a collection of interactive tutorials that cover everything from basic Angular concepts to advanced patterns, helping developers master Angular through guided, project-based learning.
34
+
35
+ <div class = " space-y-12" >
36
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-8 rounded-2xl text-center border border-[var(--sl-color-gray-6)]" >
37
+ <h2 class = " text-4xl font-bold text-[var(--sl-color-white)] mb-4" >
38
+ What Makes This Tutorial Special
39
+ </h2 >
40
+ <p class = " text-lg text-[var(--sl-color-white)] opacity-80" >
41
+ Transform from Angular beginner to confident developer through hands-on project building
42
+ </p >
43
+ </div >
44
+
45
+ { " " }
46
+
47
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl border border-[var(--sl-color-gray-6)]" >
48
+ <h3 class = " text-2xl font-bold text-[var(--sl-color-white)] mb-4" >
49
+ Complete Project-Based Learning
50
+ </h3 >
51
+ <p class = " text-[var(--sl-color-white)] text-lg leading-relaxed opacity-80" >
52
+ Build a real{ " " }
53
+ <strong class = " text-[var(--sl-color-white)]" >
54
+ Wedding Planner Task Manager
55
+ </strong >{ " " }
56
+ application from scratch! This isn't just theory - you'll create a fully
57
+ functional web application that demonstrates real-world Angular development
58
+ patterns.
59
+ </p >
60
+ </div >
61
+
62
+ <div class = " space-y-6" >
63
+ <h3 class = " text-3xl font-bold text-[var(--sl-color-white)] text-center" >
64
+ Progressive Learning Path
65
+ </h3 >
66
+ <p class = " text-center text-[var(--sl-color-white)] text-lg mb-8 opacity-80" >
67
+ Our carefully structured curriculum takes you from Angular basics to advanced concepts through 7 comprehensive sections
68
+ </p >
69
+
70
+ <div class = " grid md:grid-cols-2 lg:grid-cols-3 gap-6" >
71
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
72
+ <div class = " mb-4" >
73
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Getting Started</h4 >
74
+ </div >
75
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
76
+ <li class = " flex items-start" >
77
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
78
+ <span class = " opacity-80" ><strong >Prerequisites & Setup</strong >: Everything you need to begin your Angular journey</span >
79
+ </li >
80
+ <li class = " flex items-start" >
81
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
82
+ <span class = " opacity-80" ><strong >TypeScript Introduction</strong >: Master the language that powers Angular</span >
83
+ </li >
84
+ <li class = " flex items-start" >
85
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
86
+ <span class = " opacity-80" ><strong >Learning Process</strong >: Understand how to learn Angular effectively</span >
87
+ </li >
88
+ <li class = " flex items-start" >
89
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
90
+ <span class = " opacity-80" ><strong >Project Overview</strong >: Discover what you'll build and why it matters</span >
91
+ </li >
92
+ </ul >
93
+ </div >
94
+
95
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
96
+ <div class = " mb-4" >
97
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Task Listing</h4 >
98
+ </div >
99
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
100
+ <li class = " flex items-start" >
101
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
102
+ <span class = " opacity-80" ><strong >Components Introduction</strong >: Learn the building blocks of Angular applications</span >
103
+ </li >
104
+ <li class = " flex items-start" >
105
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
106
+ <span class = " opacity-80" ><strong >Create Your First Component</strong >: Hands-on component creation</span >
107
+ </li >
108
+ <li class = " flex items-start" >
109
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
110
+ <span class = " opacity-80" ><strong >Display Dynamic Content</strong >: Master interpolation and data binding</span >
111
+ </li >
112
+ <li class = " flex items-start" >
113
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
114
+ <span class = " opacity-80" ><strong >Pipes & Data Formatting</strong >: Transform data for better user experience</span >
115
+ </li >
116
+ </ul >
117
+ </div >
118
+
119
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
120
+ <div class = " mb-4" >
121
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Create Task</h4 >
122
+ </div >
123
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
124
+ <li class = " flex items-start" >
125
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
126
+ <span class = " opacity-80" ><strong >Form Components</strong >: Build interactive forms for user input</span >
127
+ </li >
128
+ <li class = " flex items-start" >
129
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
130
+ <span class = " opacity-80" ><strong >Event Binding</strong >: Capture user interactions and form submissions</span >
131
+ </li >
132
+ <li class = " flex items-start" >
133
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
134
+ <span class = " opacity-80" ><strong >Dependency Injection</strong >: Master Angular's powerful DI system</span >
135
+ </li >
136
+ <li class = " flex items-start" >
137
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
138
+ <span class = " opacity-80" ><strong >Routing Introduction</strong >: Navigate between different views</span >
139
+ </li >
140
+ </ul >
141
+ </div >
142
+
143
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
144
+ <div class = " mb-4" >
145
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Reusable Components</h4 >
146
+ </div >
147
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
148
+ <li class = " flex items-start" >
149
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
150
+ <span class = " opacity-80" ><strong >Component Reusability</strong >: Create flexible, adaptable components</span >
151
+ </li >
152
+ <li class = " flex items-start" >
153
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
154
+ <span class = " opacity-80" ><strong >Input/Output Properties</strong >: Pass data between components</span >
155
+ </li >
156
+ <li class = " flex items-start" >
157
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
158
+ <span class = " opacity-80" ><strong >Component Communication</strong >: Master parent-child component interaction</span >
159
+ </li >
160
+ <li class = " flex items-start" >
161
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
162
+ <span class = " opacity-80" ><strong >Advanced Component Patterns</strong >: Build sophisticated UI components</span >
163
+ </li >
164
+ </ul >
165
+ </div >
166
+
167
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
168
+ <div class = " mb-4" >
169
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Update Task</h4 >
170
+ </div >
171
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
172
+ <li class = " flex items-start" >
173
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
174
+ <span class = " opacity-80" ><strong >Form Prefilling</strong >: Populate forms with existing data</span >
175
+ </li >
176
+ <li class = " flex items-start" >
177
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
178
+ <span class = " opacity-80" ><strong >Update Operations</strong >: Modify existing records</span >
179
+ </li >
180
+ <li class = " flex items-start" >
181
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
182
+ <span class = " opacity-80" ><strong >Route Parameters</strong >: Handle dynamic routing scenarios</span >
183
+ </li >
184
+ <li class = " flex items-start" >
185
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
186
+ <span class = " opacity-80" ><strong >Form Validation</strong >: Ensure data integrity</span >
187
+ </li >
188
+ </ul >
189
+ </div >
190
+
191
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)]" >
192
+ <div class = " mb-4" >
193
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >Delete Task</h4 >
194
+ </div >
195
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
196
+ <li class = " flex items-start" >
197
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
198
+ <span class = " opacity-80" ><strong >Delete Operations</strong >: Remove records safely</span >
199
+ </li >
200
+ <li class = " flex items-start" >
201
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
202
+ <span class = " opacity-80" ><strong >User Confirmation</strong >: Implement proper UX patterns</span >
203
+ </li >
204
+ <li class = " flex items-start" >
205
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
206
+ <span class = " opacity-80" ><strong >Empty State Handling</strong >: Manage application states gracefully</span >
207
+ </li >
208
+ </ul >
209
+ </div >
210
+
211
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl hover:shadow-lg transition-all duration-300 border border-[var(--sl-color-gray-6)] md:col-span-2 lg:col-span-1" >
212
+ <div class = " mb-4" >
213
+ <h4 class = " text-xl font-bold text-[var(--sl-color-white)]" >API Server</h4 >
214
+ </div >
215
+ <ul class = " space-y-2 text-[var(--sl-color-white)] pl-0" >
216
+ <li class = " flex items-start" >
217
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
218
+ <span class = " opacity-80" ><strong >JSON Server Setup</strong >: Create a mock API for development</span >
219
+ </li >
220
+ <li class = " flex items-start" >
221
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
222
+ <span class = " opacity-80" ><strong >HTTP Client</strong >: Communicate with backend services</span >
223
+ </li >
224
+ <li class = " flex items-start" >
225
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
226
+ <span class = " opacity-80" ><strong >CRUD Operations</strong >: Complete Create, Read, Update, Delete functionality</span >
227
+ </li >
228
+ <li class = " flex items-start" >
229
+ <span class = " text-[var(--sl-color-white)] mr-2 opacity-60" >•</span >
230
+ <span class = " opacity-80" ><strong >Error Handling</strong >: Manage API responses and errors</span >
231
+ </li >
232
+ </ul >
233
+ </div >
234
+ </div >
235
+
236
+ </div >
237
+
238
+ { " " }
239
+
240
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-8 rounded-2xl border border-[var(--sl-color-gray-6)]" >
241
+ <h3 class = " text-3xl font-bold text-[var(--sl-color-white)] mb-6 text-center" >
242
+ Why Choose This Tutorial?
243
+ </h3 >
244
+ <div class = " grid md:grid-cols-2 gap-6" >
245
+ <div class = " space-y-4" >
246
+ <div class = " flex items-center space-x-3" >
247
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
248
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
249
+ Real-World Application
250
+ </span >
251
+ </div >
252
+ <div class = " flex items-center space-x-3" >
253
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
254
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
255
+ Modern Angular
256
+ </span >
257
+ </div >
258
+ <div class = " flex items-center space-x-3" >
259
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
260
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
261
+ Hands-On Learning
262
+ </span >
263
+ </div >
264
+ <div class = " flex items-center space-x-3" >
265
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
266
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
267
+ Progressive Difficulty
268
+ </span >
269
+ </div >
270
+ </div >
271
+ <div class = " space-y-4" >
272
+ <div class = " flex items-center space-x-3" >
273
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
274
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
275
+ Complete CRUD
276
+ </span >
277
+ </div >
278
+ <div class = " flex items-center space-x-3" >
279
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
280
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
281
+ Professional Patterns
282
+ </span >
283
+ </div >
284
+ <div class = " flex items-center space-x-3" >
285
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full opacity-60" ></span >
286
+ <span class = " text-[var(--sl-color-white)] font-semibold" >
287
+ Community Support
288
+ </span >
289
+ </div >
290
+ </div >
291
+ </div >
292
+ </div >
293
+
294
+ <div class = " grid md:grid-cols-2 gap-8" >
295
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl border border-[var(--sl-color-gray-6)]" >
296
+ <h3 class = " text-2xl font-bold text-[var(--sl-color-white)] mb-4" >
297
+ Perfect For:
298
+ </h3 >
299
+ <ul class = " space-y-3 text-[var(--sl-color-white)] pl-0" >
300
+ <li class = " flex items-start" >
301
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mt-2 mr-3 flex-shrink-0 opacity-60" ></span >
302
+ <div class = " opacity-80" >
303
+ <strong class = " text-[var(--sl-color-white)]" >Beginners</strong > with HTML, CSS, and JavaScript knowledge
304
+ </div >
305
+ </li >
306
+ <li class = " flex items-start" >
307
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mt-2 mr-3 flex-shrink-0 opacity-60" ></span >
308
+ <div class = " opacity-80" >
309
+ <strong class = " text-[var(--sl-color-white)]" >Developers</strong > transitioning from other frameworks
310
+ </div >
311
+ </li >
312
+ <li class = " flex items-start" >
313
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mt-2 mr-3 flex-shrink-0 opacity-60" ></span >
314
+ <div class = " opacity-80" >
315
+ <strong class = " text-[var(--sl-color-white)]" >Students</strong > looking for practical Angular experience
316
+ </div >
317
+ </li >
318
+ <li class = " flex items-start" >
319
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mt-2 mr-3 flex-shrink-0 opacity-60" ></span >
320
+ <div class = " opacity-80" >
321
+ <strong class = " text-[var(--sl-color-white)]" >Professionals</strong > wanting to refresh their Angular skills
322
+ </div >
323
+ </li >
324
+ </ul >
325
+ </div >
326
+
327
+ <div class = " bg-[var(--sl-color-bg-sidebar)] p-6 rounded-xl border border-[var(--sl-color-gray-6)]" >
328
+ <h3 class = " text-2xl font-bold text-[var(--sl-color-white)] mb-4" >
329
+ What You'll Master:
330
+ </h3 >
331
+ <div class = " grid grid-cols-1 gap-2 text-[var(--sl-color-white)] pl-0" >
332
+ <div class = " flex items-center" >
333
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
334
+ <span class = " opacity-80" >Component-based architecture</span >
335
+ </div >
336
+ <div class = " flex items-center" >
337
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
338
+ <span class = " opacity-80" >TypeScript integration</span >
339
+ </div >
340
+ <div class = " flex items-center" >
341
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
342
+ <span class = " opacity-80" >Routing and navigation</span >
343
+ </div >
344
+ <div class = " flex items-center" >
345
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
346
+ <span class = " opacity-80" >Form handling and validation</span >
347
+ </div >
348
+ <div class = " flex items-center" >
349
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
350
+ <span class = " opacity-80" >HTTP communication</span >
351
+ </div >
352
+ <div class = " flex items-center" >
353
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
354
+ <span class = " opacity-80" >Service architecture</span >
355
+ </div >
356
+ <div class = " flex items-center" >
357
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
358
+ <span class = " opacity-80" >Reusable component design</span >
359
+ </div >
360
+ <div class = " flex items-center" >
361
+ <span class = " w-2 h-2 bg-[var(--sl-color-white)] rounded-full mr-3 opacity-60" ></span >
362
+ <span class = " opacity-80" >Modern Angular patterns</span >
363
+ </div >
364
+ </div >
365
+ </div >
366
+
367
+ </div >
368
+
369
+ <div class = " text-center bg-[var(--sl-color-bg-sidebar)] p-8 rounded-2xl border border-[var(--sl-color-gray-6)]" >
370
+ <h3 class = " text-3xl font-bold text-[var(--sl-color-white)] mb-4" >
371
+ Ready to Transform Your Web Development Skills?
372
+ </h3 >
373
+ <p class = " text-xl text-[var(--sl-color-white)] mb-6" >
374
+ Let's build something amazing together!
375
+ </p >
376
+ <div class = " flex justify-center space-x-4" >
377
+ <a href = " en/getting-started/introduction" class = " bg-[var(--sl-color-white)] text-[var(--sl-color-bg-sidebar)] px-8 py-3 rounded-lg font-bold hover:bg-opacity-90 transition-all duration-300" >
378
+ Start Learning Now
379
+ </a >
380
+ <a href = " https://angular.dev/tutorials" class = " border-2 border-[var(--sl-color-white)] text-[var(--sl-color-white)] px-8 py-3 rounded-lg font-bold hover:bg-[var(--sl-color-white)] hover:text-[var(--sl-color-bg-sidebar)] transition-all duration-300" >
381
+ Explore Official Tutorials
382
+ </a >
383
+ </div >
384
+ </div >
385
+ </div >
0 commit comments