
Build and deploy a full stack task management app with Spring Boot backend and React frontend, featuring login, authentication, authorization, CRUD, priorities, and AWS production deployment.
Explore the architectural design of a Spring Boot task app, detailing the front-end, back-end layers (controller, service, repository), and a Spring Security authentication module guarding user and task resources.
Generate a Spring Boot Java project from start.spring.io with spring web, JPA, Lombok, mysql driver, validations, and security; configure mysql or postgres, create the task database, and enable auto ddl.
Validate the app connects to the database, outline spring boot packages (controller, dto, entity, repo, security, service), and add jwt and jackson dependencies to pom.xml to enable authentication and authorization.
Design and implement user and task entities with jpa annotations, enums for role and priority, and a one-to-many user-to-task relationship, including created_at and updated_at timestamps and lazy fetch.
Define and validate data transfer objects for user authentication and tasks. Create user and task request DTOs with username, password, title, description, due date, plus a generic response wrapper.
Configure JPA repositories for user and task entities, and define methods like find by user name, find by role, and find by completed status, with JPA auto-generating queries.
Define and throw custom exceptions like not found and bad request, implement a controller advice and exception handler to return structured responses with appropriate http status codes.
Create an auth user by implementing Spring Security's user details, mapping your domain user to authorities, and exposing password and username to Spring Security.
Implement a custom user details service that loads a user by username. Retrieve the user from the repository, throw not found if missing, and build the auth user details.
Build a JWT util service to generate and validate tokens using a secret string, a 30-day expiry, and hmac sha-256 signing; extract usernames from tokens and verify validity.
Implement an auth filter that intercepts requests, extracts a bearer token from the authorization header, validates the JWT, loads user details, and sets the security context before proceeding.
Configure a security filter in Spring Boot to intercept requests, authorize /api/auth while requiring authentication for other endpoints, implement a stateless JWT-based filter chain with a custom username/password authentication filter.
Build a user service in Spring Boot that enables signup, login, and retrieving the current user using password encoding and JWT tokens, wired through the service and repository layers.
Create a Spring Boot user controller with rest controller and post mappings for sign up and login, wiring a user service and validating input while testing with Postman.
Develops the tasks service in Spring Boot, enabling create, read, update, delete operations. It filters by completed status and priority, links tasks to the current user, and uses transactional annotation.
Build a task controller for a REST API that enables creating, updating, retrieving, and deleting tasks, with endpoints for id lookup and filtering by status and priority.
Learn to test a task API end-to-end using Postman, including creating tasks with JSON payloads, authenticating with a token, and performing CRUD operations and filters by status and priority.
Create a React app for the task front end, install react-router-dom, react-date-picker, and Axios, then run npm start and organize files into API, guard, common, and pages.
Develop an api service class to handle http requests, token-based authentication, and task management calls in a React app, including register, login, and protected routes.
Build a navbar and footer for task app, adapting to authentication by showing login and register or my tasks and logout, with terms of service, privacy policy, and contact us.
Learn to build a registration page with a React Register component, manage form state with useState, validate inputs, submit to an API, and navigate to login on success.
Design and test a login page that authenticates a user, navigates to the task page on success, and saves a JWT token to local storage for session persistence.
Build a React tasks page that displays all user tasks, fetches them via an API service, and supports filtering by priority and completion.
Create and manage tasks with an add/edit task form, handling ids, editing mode, and updating or creating tasks, plus routing fallbacks and user authentication.
Publish the service to AWS by creating a MySQL database on Aurora, configuring credentials and public access, and deploying the back end to EC2 alongside the React front end.
Configure and test a cloud database by adjusting AWS security group inbound rules, connecting via MySQL workbench using the remote endpoint on port 3306, and validating a production connection.
Launch an EC2 instance on AWS to host your backend by creating a new key pair, selecting Amazon Linux, and using the free tier for deployment.
Configure AWS EC2 security and connectivity by editing inbound rules, connecting via SSH with a PEM file on port 3030, then install Java 21 and package with Maven for deployment.
Package the generated jar and deploy it to the cloud server using scp with a pem key, creating a projects directory to host the file.
Run and test the task app by deploying the Spring Boot backend to a server, validating with Postman, securing production endpoints, and deploying the front end to an S3 bucket.
Deploy your React frontend by building a production bundle with npm run build, linking the API to production, configuring an S3 bucket for static hosting, and uploading the build files.
Install the angular CLI via npm, ensure Node.js is installed, then create a new angular project with ng new, select css, and skip server side rendering.
Register and configure an angular http client, create api and guard services, manage token-based authentication via local storage, and secure api calls with authorization headers for task endpoints.
Build a modular Angular 19 app with a navbar, footer, login, register, and task components, set up routing, and implement authentication with an API service.
Create Angular registration and login pages using reactive forms and form builder, with validation, API service calls, router navigation, and local storage token management for sessions.
View all your tasks on the tasks page when authenticated, filter by status or priority, and add, edit, or complete tasks via a token-authenticated API.
Create and edit tasks using a task form component driven by the route id. Implement routing, form builder validation, due date handling, and actions to add, update, or delete tasks.
Fix routing by adding a fallback url that redirects unknown paths to the tasks page and corrects the navigation bar router link, improving navigation and user experience.
Create a cloud database in AWS, connect it to your service, deploy the backend to cloud, and deploy the frontend to S3, using MySQL with public access and task DB.
Configure the VPC security group to allow inbound custom TCP access to cloud database, then test the MySQL connection on 3306, and link production DB to the Spring Boot service.
Launch a cloud server with AWS EC2 by creating an instance and selecting Amazon Linux. Generate and download a new RSA keypair (PEM) to securely log in.
Configure an AWS EC2 instance, open SSH on port 2222 and custom TCP 3030, connect with a PEM file, update the server, and install OpenJDK 21 for Java deployment.
Package the backend with Maven to produce a jar in the target folder, then transfer it to a cloud production server via SCP using a PEM file on EC2.
Deploy a spring boot task service to an AWS server by moving the jar, running java -jar on port 3030, and using screen to keep it alive with log redirection.
Deploy the angular frontend to an s3 bucket as a static website, build for production with ng build, configure the production url, upload files, and verify login and task creation.
Master Full-Stack Development & Cloud Deployment by Building a Task Manager! Dive deep into Spring Boot for a robust backend and React for a dynamic frontend in this comprehensive, project-based course. You'll gain practical, hands-on experience as you build a fully functional task management application from the ground up, learning industry-standard best practices along the way.
In this course, you will:
Develop a robust Spring Boot backend.
Build a responsive React frontend.
Build a responsive Angular frontend.
Implement secure Authentication and Authorization.
Utilize JWT (JSON Web Tokens) for secure communication.
Manage user roles with Spring Security.
Gain hands-on experience with MySQL and PostgreSQL (deployed to AWS RDS).
Learn to deploy your React Frontend to AWS S3.
Learn to deploy your Angular Frontend to AWS S3.
Learn to deploy your Spring Boot backend toAWS EC2.
Learn and understand Spring Boot architecture.
Learn entity design and relationships.
Gain practical deployment experience on AWS
This comprehensive course goes beyond just theory, providing you with the practical skills and confidence to build, secure, and deploy modern full-stack web applications on the powerful AWS cloud platform. By the end of this course, you'll have a tangible project to showcase your abilities and a solid understanding of the entire development lifecycle. Start your journey to becoming a proficient full-stack developer today.