This 12-week course introduces students to Java for backend development, emphasizing essential language concepts, database access with JPA, and building RESTful APIs using Spring Boot. By the end, students will be able to design, implement, and deploy a basic, full-featured backend service.
For the final project, students will integrate all their learnings to build a Book Management System with authentication, database integration, and deployment on a cloud platform.
- Java Overview and Setup (JDK, IDE)
- Basic Syntax (Variables, Data Types, Operators)
- Control Structures (If-else, Switch, Loops)
- Object-Oriented Programming (Classes, Objects, Methods)
- Core OOP Principles: Encapsulation, Inheritance, Polymorphism, Abstraction
Create a simple Java program that demonstrates basic OOP principles (e.g., a small library system with books and authors).
- Arrays and Strings
- Java Collections (List, Set, Map)
- Common Implementations (ArrayList, LinkedList, HashMap, HashSet)
- Iterating over Collections (For, For-each)
Develop a program to manage a list of students using Java Collections, allowing basic CRUD operations.
- Exception Handling (try-catch, throw, throws)
- Writing Custom Exceptions
- File Handling Basics (Reading/Writing Files)
- Intro to Serialization & Deserialization
Create a program that reads student data from a file, processes it (e.g., adds grades), and writes the output to another file.
- Overview of Relational Databases
- Introduction to JPA (Java Persistence API)
- Entity-Relationship Mapping
- Setting up Database Connections and Basic Entity Classes
Build a simple Java console app to map entities to a database table using JPA (e.g., a Student
entity stored in a database).
- Defining JPA Entities (@Entity, @Table, @Id)
- CRUD Operations (Create, Read, Update, Delete)
- Mapping Relationships (One-to-Many, Many-to-One)
Expand the previous app to include CRUD operations for managing database entities (e.g., adding, updating, or removing students).
- Maven Basics (POM, Dependencies)
- Building and Packaging Projects with Maven
- Setting up a Basic Spring Boot Project with Maven
Set up a Maven-based Spring Boot project, adding dependencies for JPA and testing its functionality.
- Overview of Spring Framework and Spring Boot
- Spring Boot Basics (@SpringBootApplication)
- Understanding Dependency Injection
- Creating a Simple Spring Boot Application
Build a Spring Boot app with basic dependency injection and a simple REST controller.
- RESTful Web Services Overview
- Building REST Controllers (@RestController, @RequestMapping)
- Handling HTTP Methods (GET, POST, PUT, DELETE)
- Validating Requests with @Valid
Create a REST API for managing a simple resource like "Products" or "Books."
- Connecting Spring Boot with Databases
- Spring Data JPA Overview (Repositories)
- Query Methods and Custom Queries
- Implementing Database CRUD via REST
Integrate a database with the REST API and add CRUD functionality for the resource managed in Week 8.
- Spring Security Overview (Authentication & Authorization)
- Securing APIs with JWT (JSON Web Tokens)
- Testing REST APIs (JUnit, MockMvc)
- Deploying Spring Boot Applications (e.g., Heroku, AWS)
Secure the REST API with Spring Security and JWT, then deploy it to a cloud platform.
Students will develop a Book Management System with the following features:
- User Authentication:
- User registration and login using Spring Security and JWT.
- API endpoints secured for authenticated users.
- Book Management API:
- CRUD endpoints for managing books (
title
,author
,isbn
,publishedDate
,genre
). - Features like pagination and filtering.
- CRUD endpoints for managing books (
- Database Integration:
- Use Spring Data JPA for database operations.
- Establish user-to-book relationships.
- Validation:
- Validate input (e.g., required fields, valid ISBN).
- Testing:
- Unit and integration tests for endpoints.
- Deployment:
- Deploy the app on a cloud platform with production settings.