Working with Spring Framework (HSF302)
Vietnamese title: Làm việc với Spring Framework
Credits: 3
Prerequisites: PRJ301

Description:
Upon completion of this course students shoud:
1. Understand the followings:
• Basic concepts of Java FX to build Desktop Application
• Basics of Object-Relational Mapping (ORM) with JPA and how it simplifies database interactions.
• Spring Framework, Spring Boot, which provides a comprehensive ecosystem for building enterprise-level applications.
• Spring Framework's dependency injection, and web frameworks to build robust and scalable applications

2. Be able to:
• Use JPA ORM tool to map Java objects to database tables.
• Use Spring Framework's dependency injection, and web frameworks to build robust and scalable applications.
• Develop Cross-platform Desktop applications and support for user experience (UI & UX)

3. Be able to work in team and present group's results

Learning outcomes:
Describe the basics of Object-Relational Mapping (ORM) and how it simplifies database interactions.
Describe the concepts of Spring Framework and Spring Boot
Describe how Spring Data working with various data sources
Undersatnd Spring MVC provides a comprehensive programming and configuration model for modern Java-based enterprise applications.
Create Cross-Platform applications using JavaFX. JavaFX is platform-independent, which means that JavaFX applications (CRUD) can run on different operating systems such as Windows, macOS, and Linux
Develop teamwork skills, communication skills (including presentation skills)

Student tasks:
- Students must attend at least 80% of contact sessions in order to be accepted to the final examination.
- Student is responsible to do all assigned exercises given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Promptly access to the FU CMS at http://flm.fpt.edu.vn for up-to-date course information

Tools:
- Internet
- IntelliJ IDEA
- Platform : Java Development Kit 21
- Scene Builder 23

Materials:
description: JPA
note: https://docs.spring.io/spring-data/jpa/reference/jpa.html
description: Spring Framework Essentials
publisher: Spring Academy
note: https://spring.academy/courses/spring-framework-essentials
description: Spring Framework - Core Technologies
publisher: Spring Academy
note: https://docs.spring.io/spring-framework/reference/core.html
description: Spring Framework Specialization
publisher: Coursera
note: https://www.coursera.org/specializations/spring-framework
description: Java FX
publisher: Java FX
note: https://openjfx.io/openjfx-docs/
description: Spring 6 & Spring Boot 3 for Beginners
publisher: Udemy
note: https://www.udemy.com/course/learn-spring-boot/
description: Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3
author: Andres Sacco
publisher: Apress
published_date: 29/12/2022
edition: 1st
isbn: 1484287630

Assessments:
category: Assignment
type: on-going
weight: 10.0
duration: 12 slots
question_type: CLO2, CLO3, CLO4
grading_guide: Subjects in syllabus
category: Group Project
type: on-going
weight: 25.0
duration: 20 slots
question_type: CLO2, CLO3, CLO4, CLO5
grading_guide: Subjects in syllabus
category: Progress test
type: on-going
weight: 10.0
duration: 30'
question_type: CLO1, CLO2, CLO3, CLO4
no_question: Multiple choices
Marked by Computer or a suitable format
knowledge_and_skill: 20/each
category: Final exam
type: Final exam
weight: 55.0
duration: 145 minutes
question_type: CLO1, CLO2, CLO3, CLO4, CLO5
grading_guide: All subjects in syllabus
note: By exam board
Manual evaluating
category: Practical Exam
type: Final exam
weight: 25.0
duration: 85'
question_type: CLO2, CLO3, CLO4
grading_guide: Subjects in syllabus
note: By exam board
Manual evaluating
category: Theory Exam
type: Final exam
weight: 30.0
duration: 60'
question_type: CLO1, CLO2, CLO3, CLO4, CLO5
knowledge_and_skill: 50
grading_guide: All subjects in syllabus
note: By exam board

Schedule:
session: Course Introduction
learning_outcomes: IT
materials: HSF302
session: Working Environment
learning_outcomes: TU
session: Project Introduction
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping (contd.)
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping (contd.)
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping (contd.)
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping (contd.)
learning_outcomes: TU
session: Chapter 01: JPA, JPA Mapping (contd.)
learning_outcomes: TU
session: Chapter 02: Introduction to Spring Framework
learning_outcomes: TU
session: Chapter 02: Introduction to Spring Framework (contd.)
learning_outcomes: TU
session: Chapter 05: Introduction to Spring Framework (contd.)
learning_outcomes: TU
session: Chapter 03: Spring Boot Concepts
learning_outcomes: ITU
session: Chapter 03: Spring Boot Concepts (contd.)
learning_outcomes: ITU
session: Chapter 03: Spring Boot Concepts (contd.)
learning_outcomes: ITU
session: Chapter 03: Spring Boot Concepts (contd.)
learning_outcomes: ITU
session: Chapter 03: Spring Boot Concepts (contd.)
learning_outcomes: ITU
session: Chapter 03: Spring Boot Concepts (contd.)
learning_outcomes: ITU
session: Chapter 04. Spring Data JPA
learning_outcomes: IT
session: Chapter 04. Spring Data JPA (contd.)
learning_outcomes: TU
session: Chapter 04. Spring Data JPA (contd.)
learning_outcomes: TU
session: Chapter 04. Spring Data JPA (contd.)
learning_outcomes: TU
session: Chapter 04. Spring Data JPA (contd.)
learning_outcomes: TU
session: Chapter 04. Spring Data JPA (contd.)
learning_outcomes: TU
session: Guiding Assignment 01
learning_outcomes: TU
session: Progress Test 01
learning_outcomes: TU
session: Project Assistant - 01
learning_outcomes: TU
session: Chapter 05: Spring MVC
learning_outcomes: TU
session: Chapter 05: Spring MVC (contd.)
learning_outcomes: TU
session: Chapter 05: Spring MVC (contd.)
learning_outcomes: TU
session: Guiding Assignment 02
learning_outcomes: TU
session: Progress Test 02
learning_outcomes: TU
session: Project Assistant - 02
learning_outcomes: TU
session: Chapter 05: Spring MVC (contd.)
learning_outcomes: TU
session: Chapter 05: Spring MVC (contd.)
learning_outcomes: TU
session: Chapter 05: Spring MVC (contd.)
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf (contd.)
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf (contd.)
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf (contd.)
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf (contd.)
learning_outcomes: TU
session: Chapter 06: Spring Web Development with Thymeleaf (contd.)
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
learning_outcomes: TU
session: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX (contd.)
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX (contd.)
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX (contd.)
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX (contd.)
learning_outcomes: TU
session: Chapter 08: Introduction to JavaFX (contd.)
learning_outcomes: TU
session: Chapter 09: Build application with JavaFX
learning_outcomes: TU
session: Chapter 09: Build application with JavaFX (contd.)
learning_outcomes: TU
session: Chapter 09: Build application with JavaFX (contd.)
learning_outcomes: TU
session: Project Evaluation
learning_outcomes: TU
session: Project Evaluation
learning_outcomes: TU
session: Project Evaluation
learning_outcomes: TU