
Explore the five pillars of full-stack development, from front-end JavaScript to Java back end, with ORM and CRUD on databases, and see how Spring Boot speeds Java web apps.
Explore what an API is and how it enables programs to communicate via RESTful JSON, using NASA's Mars rover data for a Java Spring Boot web app.
Learn to query the NASA Mars Rover photos API, understand authentication with API keys (demo key or personal NASA key), explore JSON responses, and use Postman to fetch data.
Explore how Postman streamlines API requests, test GET calls with query parameters and API keys, and translate JSON responses into Java objects for a Spring Boot web app.
Build a spring boot project with Spring Tool Suite, add maven dependencies like Spring Data JPA and Thymeleaf, and package as war or jar for the Mars Rover API.
configure a data source in spring boot by populating application.properties with the datasource url, username, password, and ddl auto, using Mars rover db as the example.
Learn to render a home page with spring mvc by creating a controller with a get mapping to the root url returning an index view.
Explore how Spring MVC models pass dynamic key-value data from the Java backend to Thymeleaf templates, using Model or ModelMap to populate per-session front-end views.
Create a unit test using JUnit to call a Mars rover API with Spring rest template, demonstrating arrange-act-assert and returning a string response before mapping to Java objects.
Map a JSON response to Java objects by modeling a Mars Rover API response with a photos list, Mars photo, and Mars camera, and implement getters, setters, and toString.
Debug a json response mapping issue in a Spring Boot app by identifying a missing getter and setter for photos, then refactor packages and apply Jackson property mappings.
Explore organizing a Spring Boot app with web controllers, a dedicated Mars Rover API service, and a repository, wiring data from NASA Mars rover endpoints and displaying rover photos.
Display mars rover images in a responsive bootstrap grid using a container, row, and columns to create a clean gallery with fluid images from the rover data.
Thymeleaf forEach with numbers.sequence dynamically renders Mars rover photos by index, replacing hard-coded loops and ensuring safe, bounded data display from an API.
Add dynamic rover selection to the spring boot app by wiring frontend rover buttons to a backend service that calls the NASA Mars Rover API, enabling different rover types.
Debug a frontend JavaScript issue by guarding image access with index bounds, then attach click events to Mars API rover buttons curiosity, opportunity, spirit using querySelectorAll and forEach.
Post data from an HTML form to a Spring Boot app by wrapping buttons and using a hidden Mars rover input. Handle it with a post mapping.
Learn to fetch Mars rover data with a Spring Boot get mapping, using a NASA API key, handle rate limits, and provide defaults for reading data.
Learn to dynamically highlight Mars rover buttons in a Spring Boot app by reading URL query parameters with native JavaScript. Default to Opportunity and refactor logic into a reusable function.
Add a Mars sol filter to the Spring Boot web app by building a Bootstrap form with a labeled number input and a submit button for the rover data API.
Explore how to query the Mars cameras API from a Spring Boot app, implement camera filtering with checkboxes, test requests, and plan to refactor into a single Java object.
Learn data binding with Thymeleaf in a Spring MVC app by encapsulating request parameters in a data transfer object and binding them to inputs with th:field.
Enhance a Java Spring Boot web app by adding nine Mars camera checkboxes with booleans, wiring labels for click-to-toggle, and exploring Bootstrap layout for mobile and desktop views.
Shows building a responsive bootstrap grid for checkboxes, three columns on larger screens and one on small devices, plus a bug fix and prep for API calls in next lesson.
Refactor the spring boot back end to pass a single home dco, build valid Mars Rover API endpoints for selected cameras, fetch and aggregate photos, and test calls.
Refactor repetitive code using arrays and Java reflection to dynamically discover rover cameras, build valid camera mappings, and generate API calls for the Mars Rover API.
Refine the front end to disable non-valid rover cameras by using the valid cameras hash map, exposing getters, and integrating with time leaf logic to conditionally disable checkboxes.
Learn to fix checkbox disabling by removing erroneous disabled attributes and using Thymeleaf th:attr or th:attrappend to conditionally render the disabled state for multiple camera options.
Add a remember preferences checkbox to the home page, wire a remember preferences boolean in the Spring Boot model, and style with bootstrap for responsive layout.
Implement remember preferences using local storage to assign a per-device user id, store it on the front end, and pass it with submissions to the Spring Boot back end.
Learn to implement a Spring Boot post mapping, bind form data to a home DTL object, and redirect to the root, preparing for repository persistence.
Define a JPA entity for the Mars API preferences table using @Entity and @Table. Mark the primary key with @Id and @GeneratedValue(strategy = GenerationType.IDENTITY) for auto-increment.
Create a spring data jpa repository to perform CRUD on the Mars API preferences entity, wire it via a service, and connect through a controller in a spring boot app.
Redesign the data model to use user id as the primary key. Implement get mapping with find by user id and handle missing data.
Fix bugs by switching eurail params from get to post, access model data in JavaScript with Thymeleaf, and keep rover state and remember preferences in sync.
Resolve final bugs in a Java Spring Boot web app by aligning local storage user IDs with URL parameters, and reinforce fetch usage, GET vs POST, and REST controller practices.
In this course you'll learn how to use Spring Boot to create a web application that pulls data from NASA's Mars Rover API.
This interactive application will allow users to choose from three of the Mars Rover landers and pull images from another planet!
It's super fun while also being educational. A win-win for any aspiring Java coder that has a soft-spot for space exploration.