
BACK END COURSE DETAILS

INTRODUCTION TO JAVA
What is Java?
History and version overview.
Installation of JDK (Java Development Kit) and IDE (Integrated Development Environment).
JAVA BASICS
Syntax and structure of Java programs.
Data types (primitive and reference types).
Variables and constants.
Operators and expressions.
CONTROL FLOW
Conditional statements (if, else-if, switch).
Looping statements (for, while, do-while).
Break and continue statements.
METHODS AND FUNCTIONS
Declaring and invoking methods.
Method parameters and return types.
Method overloading.
OBJECT-ORIENTED PROGRAMMING (OOP) CONCEPTS
Classes and objects.
Constructors
Inheritance
Polymorphism
Encapsulation
Abstraction
Arrays and Collections
Declaring and initializing arrays.
Array manipulation (sorting, searching).
Introduction to Java Collections Framework.
Lists (ArrayList, LinkedList).
Sets (HashSet, TreeSet).
Maps (HashMap, TreeMap).
EXCEPTION HANDLING
Understanding exceptions and errors.
try-catch-finally blocks.
Checked vs. unchecked exceptions.
Exception hierarchy.
FILE HANDLING
Reading and writing files.
File input/output operations.
Working with directories.
Java NIO (New I/O) for advanced file operations.
CONCURRENCY
Introduction to multi-threading.
Creating and managing threads.
Synchronization
Thread safety and deadlock avoidance.
JAVA DATABASE CONNECTIVITY (JDBC)
Connecting to databases.
Executing SQL queries.
Handling result sets.
Transaction management.
JAVA EE (ENTERPRISE EDITION)
Servlets and JSP (JavaServer Pages).
Java Persistence API (JPA) for database access.
Enterprise JavaBeans (EJB).

INTRODUCTION TO SPRING BOOT
What is Spring Boot?
Benefits and features.
Setting up a Spring Boot project.

SPRING BOOT BASICS
Understanding Spring Boot starters.
Application properties and YAML configuration.
SpringApplication class and its features.
BUILDING RESTFUL APIS
Creating REST controllers.
Handling HTTP requests (GET, POST, PUT, DELETE).
Request mapping annotations.
ResponseEntity for customizing HTTP responses.
WORKING WITH DATA
Introduction to Spring Data.
Configuring data sources.
CRUD operations with JpaRepository.
Using Query Methods and JPQL (Java Persistence Query Language).
SPRING BOOT AND HIBERNATE
Integrating Spring Boot with Hibernate ORM.
Entity mappings (one-to-one, one-to-many, many-to-many).
Cascading operations and lazy loading.
SECURITY WITH SPRING BOOT
Authentication (Basic, Form-based, JWT).
Authorization using roles and permissions.
Spring Security configuration.
LOGGING AND ERROR HANDLING
Configuring logging with SLF4J and Logback.
Handling exceptions globally.
Custom error responses.
TESTING IN SPRING BOOT
Unit testing with JUnit and Mockito.
Integration testing with SpringBootTest.
Test slices for testing specific components.
SPRING BOOT ACTUATOR
Monitoring and managing Spring Boot applications.
Health checks.
Metrics and custom endpoints.

INTRODUCTION TO DATABASES
Understanding what a database is.
Different types of databases (relational, NoSQL, etc.).
Introduction to SQL (Structured Query Language).
SETTING UP MYSQL
Installation of MySQL Server.
Configuring MySQL Server.
Installation of MySQL Workbench (or any other client tool).
BASIC SQL SYNTAX
SQL statements (SELECT, INSERT, UPDATE, DELETE).
Creating and dropping databases.
Creating and dropping tables.
Understanding data types.
QUERYING DATA
Retrieving data with SELECT statements.
Filtering data with WHERE clause.
Sorting data with ORDER BY clause.
Limiting rows with LIMIT clause.
Using aliases.
FILTERING AND SORTING DATA
Advanced filtering with operators (LIKE, IN, BETWEEN, etc.).
Sorting data with ORDER BY clause.
Combining multiple conditions with AND, OR, and NOT operators.
JOINS AND RELATIONSHIPS
Understanding database relationships (one-to-one, one-to-many, many-to-many).
Using INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN.
Self-joins.
AGGREGATE FUNCTIONS
Performing calculations on grouped data with functions like SUM, AVG, MIN, MAX, COUNT.
Using GROUP BY clause.
Filtering grouped data with HAVING clause.
SUBQUERIES:
Writing subqueries in SELECT, FROM, WHERE, and HAVING clauses.
Understanding correlated subqueries.
Using subqueries for data manipulation and retrieval.
INDEXES AND PERFORMANCE OPTIMIZATION
Understanding indexes and their types (B-tree, Hash, etc.).
Creating and managing indexes.
Analyzing query performance and optimizing slow queries.
DATA MODIFICATION
Inserting data into tables.
Updating existing data.
Deleting data from tables.
Truncating tables.
Transactions and Concurrency Control
Understanding ACID properties (Atomicity, Consistency, Isolation, Durability).
Starting and committing transactions.
Using savepoints.
Managing transaction isolation levels.
STORED PROCEDURES AND FUNCTIONS
Creating and executing stored procedures.
Passing parameters to stored procedures.
Creating and executing stored functions.
Using stored procedures and functions for complex operations.
TRIGGERS
Creating triggers for automatic actions in response to data modifications.
Understanding trigger timing (BEFORE, AFTER) and events (INSERT, UPDATE, DELETE).
Writing trigger procedures.
VIEWS
Creating and managing views.
Understanding the benefits of using views.
Updating and deleting views.
DATA INTEGRITY AND CONSTRAINTS
Understanding data integrity constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY).
Enforcing data integrity with constraints.
Defining and managing constraints.
ADVANCED QUERYING TECHNIQUES
Recursive queries with Common Table Expressions (CTEs).
Using window functions for advanced analytical queries.
Pivot and unpivot operations.
BACKUP AND RECOVERY
Performing backups and restores.
Creating database backups.
Recovering from backups.
GIT
What is Git?
Basic Git Commands.
How to manage conflicts.
Manage repos and Branches.