Skip to main content

Advanced Application Development (5 cr)

Code: TE00BR90-3005

General information


Enrollment

26.07.2023 - 14.09.2023

Timing

04.09.2023 - 15.12.2023

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

Engineering and Business

Campus

Kupittaa Campus

Teaching languages

  • English

Seats

20 - 70

Teachers

  • Ali Khan

Scheduling groups

  • Group 1 (Size: 25. Open UAS: 0.)
  • Group 2 (Size: 25. Open UAS: 0.)

Groups

  • ICT_MOD_UPV_23
    ICT_MOD_UPV_23
  • PTIVIS20O
    Software engineering and Project Management

Small groups

  • Group 1
  • Group 2
  • 07.09.2023 10:00 - 12:00, Theory Advanced Application Development TE00BR90-3005
  • 08.09.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 08.09.2023 12:00 - 14:00, Group 1, Advanced Application Development TE00BR90-3005
  • 14.09.2023 10:00 - 12:00, Theory, Advanced Application Development TE00BR90-3005
  • 15.09.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 15.09.2023 12:00 - 14:00, Group 1, Advanced Application Development TE00BR90-3005
  • 20.09.2023 12:00 - 14:00, Advanced Application Development
  • 21.09.2023 10:00 - 12:00, Group 1, Advanced Application Development TE00BR90-3005
  • 22.09.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 28.09.2023 09:00 - 11:00, Theory Advanced Application Development TE00BR90-3005
  • 29.09.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 29.09.2023 11:00 - 13:00, Group 1, Advanced Application Development TE00BR90-3005
  • 05.10.2023 10:00 - 12:00, Theory Advanced Application Development TE00BR90-3005
  • 06.10.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 06.10.2023 11:00 - 13:00, Group 1, Advanced Application Development TE00BR90-3005
  • 09.10.2023 10:00 - 12:00, Theory, Advanced Application Development TE00BR90-3005
  • 13.10.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 13.10.2023 12:00 - 14:00, Group 1, Advanced Application Development TE00BR90-3005
  • 23.10.2023 12:00 - 14:00, Theory Advanced Application Development TE00BR90-3005
  • 25.10.2023 11:00 - 13:00, Group 2, Advanced Application Development TE00BR90-3005
  • 26.10.2023 10:00 - 12:00, Group 1, Advanced Application Development TE00BR90-3005
  • 01.11.2023 12:00 - 14:00, Theory Advanced Application Development
  • 02.11.2023 10:00 - 12:00, Group 1, Advanced Application Development TE00BR90-3005
  • 03.11.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 08.11.2023 12:00 - 14:00, Theory, Advanced Application Development TE00BR90-3005
  • 09.11.2023 10:00 - 12:00, Group 1, Advanced Application Development TE00BR90-3005
  • 10.11.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 15.11.2023 12:30 - 14:30, Theory Advanced Application Development TE00BR90-3005
  • 16.11.2023 10:00 - 12:00, Group 1, Advanced Application Development TE00BR90-3005
  • 17.11.2023 09:00 - 11:00, Group 2, Advanced Application Development TE00BR90-3005
  • 22.11.2023 12:00 - 14:00, Project Demonstrations, Advanced Application Development TE00BR90-3005
  • 30.11.2023 09:00 - 12:00, Project Demonstrations Advanced Application Development TE00BR90-3005

Objective

After completing the course the student can:
Implement a desktop or a web application for an assigned task.
Program efficiently in a team using professional tools.
Reuse code, utilize libraries, and/or application platforms and application frameworks.
Write code from UML diagrams or implement user stories.
Understand some common design patterns.

Content

An assignment for a desktop or a web application.
Elaborating on programming language and features suitable for the application.
Learning and utilising one or more design patterns.
Using professional coding and version control tools.
Re-using code and utilising libraries, frameworks and/or platforms.
Developing a desktop or a web application as a team work.

Materials

Text books: Course is based on:

"Spring Boot in Action" by Craig Walls:
This book provides a comprehensive guide to building web applications, including RESTful web services, using Spring Boot. It covers the fundamentals of Spring Boot and how to create RESTful APIs with it.

"Spring Microservices in Action" by John Carnell:
While this book focuses on microservices architecture, it extensively covers creating RESTful APIs with Spring Boot as a fundamental part of building microservices. It's a great choice if you're interested in microservices-based RESTful services.

"Mastering Spring Boot 2.0" by Dinesh Rajput:
This book covers advanced topics related to Spring Boot, including RESTful web services. It's suitable for those who have a basic understanding of Spring Boot and want to dive deeper into building RESTful APIs.

"Spring REST" by Balaji Varanasi and Sudha Belida:
This book, mentioned earlier in the context of RESTful web services in general, is also a good resource if you're specifically interested in using Spring for building RESTful APIs.

"Building RESTful Web Services with Spring 5" by Ludovic Dewailly and Alexandre Chapellon:
This book focuses on Spring 5 and covers building RESTful web services using the latest features of the Spring framework, making it a valuable resource for staying up-to-date with Spring technology.

"Spring Boot 2.0 Cookbook" by Alex Antonov:
This book provides practical recipes for building various types of applications with Spring Boot, including RESTful web services. It's a hands-on guide with real-world examples.

More course material and assignments implementation instructions will be provided during learning period.

Teaching methods

- Weekly face-to-face meetings with lectures and small group work
- Learning by doing and experimenting (Implementation assignments, project work)
- Small group work and peer learning
- Self-study material and FLIP classroom

International connections

Learning by doing and FLIP classrooms

Completion alternatives

Ask the teacher about possible alternative methods of completion

Student workload

135h

Content scheduling

The course content is divided into four learning objectives(CLOs):

CLO1 Develop applications interacting with cloud-based/regular SQL databases using the latest ORM frameworks:
Database Connectivity using JDBC
1.1 Create a database connection
1.2 Create Statement Objects
1.3 Perform SQL Commands
1.4 Manipulate databases

Database Connectivity using Spring Boot Data JPA
1.5 Implement Database connectivity using Spring Boot Data JPA
1.6 Manipulate persistent data using Spring Boot Data JPA

NoSQL Database Connectivity using ORM
1.7 Compare JSON with XML
1.8 Implement a NoSQL Database connectivity using Spring Boot Data JPA

CLO2 Apply services architecture to implement REST based web services and micro services:
Web services and SOA (Service Oriented Architecture) (optional)
2.1 Explain SOA advantages and Principles
2.2 Explain the limitations of software capabilities
2.3 Implement SOAP Web services

Backend web development RESTful web services
2.4 Introduce the Representational State Transfer (REST)
2.5 Use HTTP Methods for CRUD operations
2.6 Analyze HTTP Status Codes

RESTful web services
2.7 Configure Spring Boot Application
2.8 Create RESTful web services using Spring Boot Framework
2.9 Connect RESTful web services using Spring Boot Framework with a database
2.10 Implement entities, JPA Repository, and controllers
2.11 Build a Restful API
2.12 Test Restful API

CLO3 Analyze responsive web apps using latest UI frameworks to interact with web services:
Angular as Front-End framework
3.1 Introduce Angular Components
3.2 Implement Angular Services
3.3 Analyze an application that consumes the REST API Web service

CLO4 Deploy micro services using Dockers:
Service Virtualization Tools
4.1 Explain Service Virtualization
4.2 Introduce Docker
4.3 Create Docker Container
4.4 Deploy Application in Docker



We will use the following languages, protocols and tools:
Eclipse
MySQL
NodeJS
Spring boot
JPA
JSON
XML
REST
Angular (HTML, CSS, TS)
Docker

Further information

Course material and assignments during learning period.

Evaluation scale

H-5

Assessment methods and criteria

Personal assignments:
6 personal assignments: 70 points
The group project work: 30 points.

The assignments must be returned by the deadline to get the points. The assignments returned after the deadline will give you only half of the points.

Assessment criteria, fail (0)

0-49 (0)

Assessment criteria, satisfactory (1-2)

50-59 (1)
60-69 (2)

Assessment criteria, good (3-4)

70-79 (3)
80-89 (4)

Assessment criteria, excellent (5)

90-100 (5)