week_1
week_1
Development
(CSE-214)
week-1 : Introduction
1
Course Schedule
◼ Introduction (February 11)
◼ Angular – Typescript (February 18)
◼ Angular Application Architecture(February 25)
◼ Data binding, Routing(March 4)
◼ Angular forms, RxJS (March 11)
◼ Introduction to SpringBoot (March 18)
◼ Spring Core (March 25)
◼ Hibernate / JPA (April 1)
◼ Midterm (April 8)
◼ Rest / CRUD (April 15)
◼ Spring MVC (April 22)
◼ JPA / Hibernate Advanced Mappings (April 29)
◼ Project Presentations (Due on May 6)
◼ Project Presentations (Due on May 13)
◼ Final examination review (May 20)
2
Grading
◼ Midterm (15%)
◼ Lab (20 %) (Coding will be held on lab)
◼ Project (25%) – Angular + SpringBoot
◼ Proposal, final report, github repo
◼ Each project team should consist of 2 students
◼ Final (40%)
3
Prerequisites
◼ Background in
◼ Programming
◼ Programming:
◼ Angular - Typescript
◼ SpringBoot - Java
◼ VsCode , IntelliJ
4
Text Books - Angular
5
Text Books - SpringBoot
6
What’s this course about
◼ Front-End (Angular)
◼ Data Binding: Effective data exchange between templates and
components.
◼ Component Lifecycle Hooks: Lifecycle management for
Angular components.
◼ Routing: Efficient navigation between application views.
7
What’s this course about
◼ Back-End (Spring Boot)
◼ Hibernate/JPA: Data persistence and ORM (Object-Relational
Mapping).
◼ REST API Development: Secure and scalable APIs for CRUD
operations.
◼ Spring MVC: Clear separation of concerns using Model-View-
Controller architecture.
◼ Advanced JPA Mappings: Efficient representation of complex
data relationships.
◼ Security: Authentication and authorization using Spring Boot
8
Project
9
Project
10
Software Development Life Cycle
11
Artificial intelligence tools in the software
development life cycle
12
How Will AI Affect the Work of Developers?
13
How Will AI Affect the Work of Developers?
14
AI (LLM) based code generation (napkins)
https://www.napkins.dev/
15
AI (LLM) based code generation (bolt)
https://bolt.new/ 16
HTML, CSS, JS
HTML (Hypertext Markup Language) is
an essential building block of any
webpage. It describes the structure and
semantics (meaning) of content rather
than its appearance.
https://html-css-js.com/ 17
HTML, CSS, JS
Cascading Style Sheets which is known
as CSS is a style sheet language that
used to handle the presentation of the
web page containing HTML. It makes
our websites beautiful and modern
looking.
https://html-css-js.com/ 18
HTML, CSS, JS
JavaScript which is often known as JS,
is a high-level dynamic interpreted
programming language that allows
client-side scripting to create completely
dynamic web applications and websites.
https://html-css-js.com/ 19
Bootstrap
20
Responsive Design
Responsive Web
Design is about using
HTML and CSS to
automatically resize,
hide, shrink, or enlarge,
a website, to make it
look good on all
devices (desktops,
tablets, and phones)
21
What is a Single Page Application (SPA)?
A Single Page Application (SPA) dynamically updates the
content of the page as users interact with it, instead of
loading new pages from the server. This results in faster load
times and a more responsive, app-like user experience.
22
What is a Single Page Application (SPA)?
In single page web apps, once the page gets loaded, the server
does not send any more HTML or CSS. Whereas for the
traditional one, every time when new data is requested, the
whole page gets reloaded.
23
Advantages of Single Page Application
24
Model-View-Controller (MVC) Design
Pattern
Model: Manages the data, logic, and rules of the application.
View: Represents the user interface (UI) and displays data from the model.
Controller: Acts as a mediator between the Model and View, Handles user
interactions and updates the model or view
25
What is Angular?
26
Structure of Angular Components
Components are the building blocks of an Angular application. Each component
manages a specific part of the UI
•TypeScript class (.ts): Contains logic and data for the component.
•HTML template (.html): Defines the structure and layout of the view.
•CSS or SCSS (.css or .scss): Styles for the view.
•Metadata (@Component decorator): Provides component configuration
27
Angular application architecture
28
angular.json
The angular.json file is the main configuration file for an Angular project. It defines
various settings and configurations that are used by the Angular CLI (Command
Line Interface) to build, serve, and test the application.
Central configuration: The angular.json file configures how the Angular CLI
should behave (build, serve, test, etc.) for the entire project.
29
Bootstrapping the AppModule (main.ts)
• Acts as the starting point (entry point) for the application lifecycle.
• This file is the bootstrap file of the Angular application. Angular uses main.ts to
load the Angular module and start the app.
30
index.html
• When the app starts, the browser loads index.html. It contains the root
<app-root></app-root> element, AppComponent is rendered in the index.html file's
<app-root></app-root> element
• it includes references to the stylesheets and JavaScript files, including the bundled
Angular code. 31
Main Module (AppModule), app.module.ts
This file defines the root NgModule (Angular Module) of the application. It
tells Angular which components, directives, and services are part of the
app.
32
AppComponent (app.component.ts)
• The AppComponent acts as the main component that interacts with other
components, binds data, and defines the application's structure.
34
Execution Flow
index.html is loaded first when the browser requests
the app. It includes a reference to the Angular
application and the root component (<app-root></app-
root>).
main.ts is executed next. It bootstraps the Angular
application by calling
platformBrowserDynamic().bootstrapModule(AppModul
e) to initialize the Angular module (AppModule).
app.module.ts is processed, and Angular sets up the
application module, registers components, imports
other necessary modules, and prepares the app for
rendering.
AppComponent is the root component declared in
app.module.ts, and Angular renders this component
inside the <app-root></app-root> element in index.html.
35
Relationships
36
What is Spring Boot?
Spring Boot is a robust, production-ready Java-based back-
end framework that simplifies application development by
providing built-in configurations and features like REST APIs,
database integration with JPA/Hibernate, and security
services.
37
Technical Design (Spring Boot)
38
Technical Design (Spring Boot)
39
Why Full-Stack Development?
40
Full-Stack Development
41
VScode
42
Installing Java
43
Installing Java
44
Installing Java
45
Installing Maven
46
Installing Maven
C:\Program Files\apache-maven-3.9.6-bin
47
Installing Maven
48
Installing Maven
49
Installing Maven
50
Installing IntelliJ
51
Installing IntelliJ
52
Installing IntelliJ
53
Installing IntelliJ
54
Spring Initializer
55
Spring Initializer
56