Java Full Stack - TOC
Java Full Stack - TOC
WebUI
WebUI
WebUI
WebUI
Programming Language
Programming Language
Database
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Testing and Logging
Testing and Logging
Testing and Logging
Testing and Logging
Presentation layer
Presentation layer
Cloud
Cloud
Cloud
Design principles
Data structures and Algorithms
Engineering concepts
Skill Proficiency level
HTML5 Working
CSS3 Working
Javascript Working
Jquery Working
Java 8, JDBC Working
JSON, YAML & Shell scripting basics Working
ANSI SQL, PL/SQL Working
Maven Working
GIT Working
JSP & JSTL Working
Spring Core Working
Spring data JPA with Hibernate Working
Spring MVC Working
Spring Boot Working
Spring REST Working
Spring Security with JWT Working
Microservices Working
Spring Cloud Working
Junit with Mockito Working
Code quality Working
Lombok logging, sl4j Working
SonarQube Working
Bootstrap 4 Working
Angular 6 or 7 Working
AWS Working
CI/CD, Docker, Kubernetes Working
Microservice deployment on cloud using ECS/EKS Working
Principles and Patterns Working
Basic data structures and few important algorithms Working
Please refer to the worksheet "FSE Engineering Concepts scope" Knowledge
Newly added skill
Skill Topic
HTLM5 HTML5 - Introduction
Lambda Expressions
Dependency Injection
Spring Core
Spring AOP
Reading values from Property F
Spring JDBC and Transactions
Maven Basics
Plugins
Run Maven Builds
Bootstrap Fundamentals
Grid System
NAV Bar
Demonstrate troubleshooting
UI issues using Chrome
Developer Tools
Bootstrap
Bootstrap Components
Bootstrap Styles
ORM Basics
ORM Basics
Hibernate Basics
ORM implementation with
Hibernate XML Configuration
and Annotation Configuration
Criteria
SLF4J, Lombok
Sorting
Hashing
Divide and Conquer
Solid Principles
Design Patterns Introduction
Microservices Basics,
Monolithic to Microservices
Spring Cloud
Introduction to Kubernetes
Kubernetes - Container
Orchestration
Kubernetes Demonstration
Introduction to cloud
computing
Containers
Fundamentals of AWS
CI/CD in AWS
Deploying an application on
AWS
Introduction to Devops --
CI/CD on cloud on AWS
AWS, CI/CD CI/CD hands on lab
CI/CD with microservices
deployed on ECS/EKS
Jquery Jquery
Visual Studio Code features, Google Chrome Developer tools, Inspect document
Formatting Tags, List, Table, Form & Input Tags, Images, Styles, placeholder, inline and block elements, id vs class attributes
Overloading, Overriding, Abstract Classes, Implementing Interfaces, Access Protection, Using this, super and final, Object Class, Inner Class
Anonymous Inner Classes, Method-Local Inner Classes, Static Nested Classes
Handling Exceptions, Propagating and Catching Exceptions, Uncaught Exceptions, Subclassing Exceptions, try, catch, throw, throws, finally
String, StringBuilder, StringBuffer, StringTokenizer, File Navigation and I/O (java.io), Numbers, Calendar, Locale, Scanner, ResourceBundle
Currency, Parsing, Tokenizing, Formatting, Collection Interfaces, Collection Classes, Iterators, Comparators, Generic and Non-Generic
Collections, Primitive Wrappers, Comparable Interface, Math, ClassLoader, System, Process, Runtime,
LocalDate, LocalTime,LocalDateTime, Instant, Duration, Period, TemporalAdjusters
Creating a Thread, Suspending, Resuming and Stopping Threads, Serial and Parallel Sorts in Java
Create Connection, Query, Update
Lambda expressions (with Single parameter, multiple parameters, return type, collections, forEach, Multiple statements, without return ty
Reference to a static method, Reference to an instance method, Reference to a constructor, Usage of Functional interfaces and default
methods
Java Stream vs. Collection, Different ways to create streams(Stream.of(), List.stream(), Stream.generate() or Stream.iterate(),String chars o
String tokens),Convert streams to collections,
Intermediate Operations (filter(),map(),flatMap(),distinct(),sorted(),peek(),limit(),skip())
Terminal Operations
(forEach(),forEachOrdered(),toArray(),reduce(),collect(),min(),max(),count(),anyMatch(),allMatch(),noneMatch(),findFirst(),findAny()),
Parallelism in Java Stream
Optional.empty(), Optional.of(), Optional.ofNullable(), ifPresent(), isPresent(), orElse(), orElseThrow(), filter()
Setter Injection
Constructor Injection
Autowiring
Injecting Collections
Inner Beans
Inheritance, Interfaces, Scope
Aspect Oriented Programming (AOP) using Spring AOP and AspectJ
PropertyPlaceholderConfigurer , ResourceBundleMessageSource
Executing Queries, Transaction Management
Evolution of ORM solutions, Hibernate XML Configuration, Hibernate Annotation Configuration, Spring Data JPA, Hibernate benefits, open
source, light weight, database independent query
Session Factory, Session, Transaction Factory, Transaction, Connection Provider
XML Configuration - persistence class, mapping xml, configuration xml, loading hibernate configuration xml file
Annotation Configuration - persistence class, @Entity, @Table, @Id, @Column, hibernate configuration xml file
Loading hibernate configuration and interacting with database
get the session factory, open session, begin transaction, commit transaction, close session
JPA (Java Persistence API), JPA is a specification (JSR 338), JPA does not have implementation, Hibernate is one of the implementation for
Hibernate is a ORM tool, Spring Data JPA is an abstraction above Hibernate to remove boiler plate code when persisting data using Hibern
Hibernate log configuration and ddl-auto configuration, JpaRepsitory.findById(), defining Query Methods, JpaRespository.save(),
JpaRepository.deleteById()
Query Methods - Search by containing text, sorting, filter with starting text, fetch between dates, greater than or lesser than, top
@ManyToOne, @JoinColumn, @OneToMany, FetchType.EAGER, FetchType.LAZY, @ManyToMany, @JoinTable, mappedBy
HQL stands for Hibernate Query Language, JPQL stands for Java Persistence Query Language, Compare HQL and JPQL, @Query annotation
fetch keyword, aggregate functions in HQL, Native Query, nativeQuery attribute
Scenarios where Criteria Query helps, CriteriaBuilder, Criteria Query, Root, TypedQuery
SLF4J vs. Log4J vs. Lombok
SLF4J - Env Setup, Sample Logging
SLF4j - error messages, warning levels, parameterized logging, different appenders
Lombok - Configuring Project using Lombok
Logging using Lombok annotations
Clean as you code - SONAR Intro, benefits
Using SonarQube with Maven - Update connect URLs, Proxies in POM
Sonar architecture - how it works? SonarQube client and Server, Sonar Database
Running Maven Sonar Goals for Static Code Analysis
Use SonarQube to find the following:
Finding Duplicate Code, Cyclomatic Complexity, Sphagetti Design, Lack of Unit Tests, Improper Coding Standards, Potential Bugs, Insufficie
Comments
Interpreting Sonar Logs
Introduction, Why DS& Algorithm, Types of DS, Notations, Time and Space Complexity, Start using frameworks for describing and analyzin
algorithms.
Begin using asymptotic notation to express running-time analysis.
Asymptotic notations for run-time analysis of algorithms
Best Case, Average Case, Worst case analysis of an algorithm
Finding Time Complexity of few iterative and recursive algorithms
application.properties, logging.level, logging.pattern, server.port, LoggerFactory, Logger, log levels (trace, debug, info, warn, error)
HTTP Request and Response, HTTP Request Format, HTTP Response Format, Request URL, Request Method, Content-Type, User-Agent
The need to transfer data between heterogenous systems, disadvantages of SOAP, REST stands for REpresentational State Transfer,
lightweight, maintainable, scalable, underlying protocol is HTTP; composed of resources, verbs, header, body, response status code, client
server technology
DispatcherServlet, @RestController, @GetMapping, invoking get request from browser, invoking get request from postman, bean
transformation to JSON, APIs for bean to JSON and vice versa, Jersey, Jackson, get method with parameter, return array, @PathVariable
HTTP method types (GET, POST, PUT, DELETE), REST service URL naming guidelines, @RequestMapping, @GetMapping, @PostMapping,
@PutMapping, @DeleteMapping, setting POST request payload and invoking the REST service in Postman and curl, JSON to bean mapping
@RequestBody, validating input request using javax.validation and hibernate validators, @Size, @NotNull, @NotBlank, @Min, @Max,
@JsonFormat, @Valid, global exception handling, handle number formatting errors, HTTP Caching,
Retrieving LIST in REST, Writing a RESTful Web Services with JSON
Distributed/versioned configuration
Service registration and discovery
Routing
Service-to-service calls
Load balancing
Circuit Breakers
Distributed messaging
Using the above concepts:
1. Decompose the monolith application built earlier into micrroservices 2. Write th
microservices using Spring Boot. Expose each as a REST service
3. Demonstrate features of spring cloud like API Gateway, Load balancer, Circuit breaker, Service discovery for microservices used to addre
the challenges of a distributed architecture
4. Securing Microservices with Security
Container Introduction, Container architecture, Overview of Docker, Docker architecture
Docker file
Working with containers
Container Communication
Docker Compose
open source; create, deploy and run applications in containers;
package application; virtual machine; image; container
nginx, pull, run, listing images, container name, detaching the process, port number, volumes, listing containers, listing non running conta
starting and stoping a container, Dockerfile, FROM, COPY, ENTRYPOINT, build, remove images and containers
docker-compose.yml, docker-compose up command, mapping MySQL data file to local folder, schema creation script execution definition
defining port, password definition, docker compose up, executing mysql client on the mysql server container
Defining Dockerfile for REST API, building Dockerfile from docker-compose.yml, using depends_on in docker compose to define dependen
using links to establish connectivity between REST API service and MySQL server, modify connection properties in REST API to connect to t
docker instance
What, Why and Features of Kubernetes, Kubernetes Architecture
Kubernetes Cluster, Master, Node
Kubernetes Architecture
Kubernetes Basics Modules ( Create a Kubernetes Cluster, Deploy an App, Explore your App, Expose your app publicly, Scale up your App,
Update your app)
Deploy the container image created earlier on A Kubernetes cluster. Use an open source framework like Minikube for a standalone deploy
SPA basics
Works inside a browser, no page reload, example multi page application (MPA) sites, example SPA sites, technologies to develop SPA (HTM
CSS, JavaScript, jQuery, ajax, AngularJS, Angular, ReactJS, Ember.js)
Traditional page life cycle in Servlet/ASP.NET/ASP.Net MVC, initial request, single time loading of HTML resources, AJAX, JSON
Limitations of implementing SPA using JavaScript, Limitations of implementing SPA using jQuery, how to implement using angular, better
performance since UI resources loads only once, gives better user experience, clear separation of view, action and web service call, compa
with all major browsers
Angular introduction
Angular JS is version 1, called as Angular from version 2, how Angular JS works, key differences between Angular JS and Angular, Angular J
uses JavaScript, Angular uses TypeScript, Angular is command line based, Angular has a compilation step
ECMAScript 6
European Computer Manufacturers Association (ECMA) standards organization, ECMAScript, scripting language specification, let, const, ar
functions, classes, TypeScript ES6 is related to TypeScript and Angular
Typescript
static typing, superset of JavaScript, typescript code compiles to JavaScript, browser compatible, open source, primary language of angula
Install typescript npm package, write typescript program, compile and run
Data Types (boolean, number, string, array, tuple, enum, any, void) interfaces, class and modules
Defining functions with parameters' data type and return data type defined, using for .. of to iterate through arrays
Angular
Create new angular application in command line (ng new), execute the application (ng serve), understanding app component and app
component html, importance of app module
Interpolation, ng directives(ngIf, ngFor), pipes - builtin for date, Upper and lower case, currency
Component
ng generate Component, component.ts, component.html, @component decorator, selector, templateUrl, style, two way binding using
[(ngModel)], click event and event handling, difference between normal and square brackets, Routing: router-outlet, routerLink,
routerLinkActive
Basics of Karma testing
ng test, TestBed, fixture, component, debugElement, nativeElement, detectChanges(), it(), expect(), toEqual(), toBe()
Software
Architecture
Styles
UI Markup,
Styling, RWD
Mobile,
Pervasive
Computing
Security
Principles
Database and
Storage
Compute and
Integrate
Compute and
Integrate
Security and
Identity
Security and
Identity
Governance and
Tooling
Governance and
Tooling
Governance and
Tooling
Network and
Content Delivery
NOTE
Topics
Software Engineering Concepts (3 hours):
Software Characteristics, Software Process Models (Incremental/Iterative/Waterfall), People (Team Players/Team Leaders/Coordination/C
Significance of Software Quality Assurance, Quality Control, Significance of finding issues early in the cycle, Fail Fast approaches
Introduction of Software Scoping and Estimates, Introduction to Software Risks and mitigation approaches
Software Configuration Management (SCM), Change Control, Version Control, etc.
Importance of Unit and Integration testing strategies (Test Case, Test Suite, Test Data, Test Results, Test Evidence etc.)
OOP (2 hours):
Classes and Objects, Encapsulation, Abstraction and Information Hiding, Polymorphism, Inheritance
OOA (1 hour):
Requirements Elicitation, Usecases, Impact Analysis, Software Prototyping approaches, Interpreting Functional and Non-Functional Requir
OOD: (2 hours)
Modularity, Functional Independence, Cohesion, Coupling, Entity and Relationships, Cardinality
Types of Software Architectures (Client-Server, Peer-Peer, Layered, SOA, MSA, Hybrid, ESB)
Principles of User Interface Design (User in control, reduce memory load, consistency etc.), Know the users (Novices, Intermittent, Frequen
UI Design Process (User Analysis, Environment Analysis, etc., UI Design, Prototypes, Evaluate with users), Defining Interface objects and ac
Introduction to HTML5, CSS3, Various design elements
Importance of RWD, Browsers and Devices, Theming, Layouts, Components, Accessibility
Mobile Computing:
Mobile Computing Models, Supporting Programming Languages, Implementation Tools, Do's and Dont's
Pervasive Computing and IoT:
Introduction to Context-Aware Computing
RFID-Based System, technology and standards
Sensing Technologies, programming models for sensors, uses and applications;
Smart Spaces Concept
Security principles:
Transport layer Security, TCP/IP, UDP/IP, Sockets, Ports, Authentication, Authorization, Encryption, public/private keys, SSL certificates, TL
Database Concepts
Data Models, Schemas and Instances
Database Languages
Classification of DBMS (RDBMS, Object/Block/Storage etc.)
Entity Types, Entity Sets, Attributes, Keys, Relationships, Structural Constraints, Normalization
ER Diagrams
ACID and BASE Properties
Transactions and Locks (Isolation levels)
Query Processing and Optimization (Joins, Plan Table, Index Statistics, Query Cost etc.)
Storage
Physical Storage, File Storage, Table spaces
Concurrency and Deadlock
Security Services
- Authentication (Peer Entity, Data Origin), Access Control, Data Confidentiality, Integrity, Non-repudiation (origin, destination), Availabilit
Key Terms
Security Threat, Security Attack (Passive, Active), Modification of messages
Security Mechanisms
Encipherment, Digital Signature, Access Control, Trusted Source etc.
RBAC
creating role based access control, permission matrix, session keys, time-to-live etc.
IAM
Introduction to IAM, User Groups, Security Policies, Monitoring etc.
Unit Testing
Test Driven Development and Unit test cases
Unit vs. Integration Testing
Source Control
- Checkin/Checkout, Merge, Resolve Conflicts, Branches, Pull requests and Code Reviews etc.
Integration Tools
- Jenkins, AWS/Azure Code Pipelines
Virtual Network, VPCs, DNS, IP addresses, Subnets, Inbound / Outbound Routes, Gateways, NACL, Security Groups,
API gateway on cloud - Functionality of API gateway, routing request to resource
Web Server, App Server, Load Balancers