Spring Boot CC
Spring Boot CC
Delivery Agency
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<groupId>com.example</groupId>
<artifactId>DeliveryAgency</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>DeliveryAgency</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Spring test dependencies -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
</dependency>-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.w3c.css</groupId>
<artifactId>sac</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.7.RELEASE</version> <!-- 4.0.5 -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Agency Controller.java
package com.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.exception.NoOrdersFoundException;
import com.model.Order;
import com.service.AgencyService;
@Controller
@Autowired
return “searchPage”;
if (result.hasErrors()) {
return “searchPage”;
} else {
if(ordersFound.isEmpty()) {
} else {
model.addAttribute(“orders”, ordersFound);
return “deliveryListPage”;
@ExceptionHandler(NoOrdersFoundException.class)
mav.addObject(“exception”, e);
mav.setViewName(“exceptionPage”);
return mav;
}
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan({"com.*"})
SpringApplication.run(DeliveryAgencyApplication.class, args);
package com.exception;
super(msg);
}
}
Order.java
package com.model;
import javax.validation.constraints.NotEmpty;
import org.springframework.stereotype.Component;
@Component
return orderId;
this.orderId = orderId;
return orderFrom;
}
public void setOrderFrom(String orderFrom) {
this.orderFrom = orderFrom;
return deliveryTo;
this.deliveryTo = deliveryTo;
return deliveryDate;
this.deliveryDate = deliveryDate;
return deliveryStatus;
this.deliveryStatus = deliveryStatus;
public Order(String orderId, String orderFrom, String deliveryTo, String deliveryDate, String
deliveryStatus) {
super();
this.orderId = orderId;
this.orderFrom = orderFrom;
this.deliveryTo = deliveryTo;
this.deliveryDate = deliveryDate;
this.deliveryStatus = deliveryStatus;
}
public Order() {}
Agency Service.java
package com.service;
import java.util.ArrayList;
import org.springframework.stereotype.Service;
import com.model.Order;
@Service
if(order.getDeliveryDate().equals(orderBean.getDeliveryDate()) &&
order.getDeliveryStatus().equals(orderBean.getDeliveryStatus())) {
foundOrders.add(order);
return foundOrders;
}
public AgencyService() {
addOrders();
}
Delivery List Page.jsp
<%@page isELIgnored="false"%>
<html>
<body bgcolor="lavender">
<h1>
<center>Delivery Agency</center>
</h1>
<table>
<tr>
<td>OrderId</td>
<td>Order From</td>
<td>Delivery To</td>
<td>Delivery Date</td>
<td>Status</td>
</tr>
<tr>
<td>${order.orderId}</td>
<td>${order.orderFrom}</td>
<td>${order.deliveryTo}</td>
<td>${order.deliveryDate}</td>
<td>${order.deliveryStatus}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
Exception Page.jsp
<%@page isELIgnored="false"%>
<html>
<body bgcolor="lavender">
<h1>
<center>Delivery Agency</center>
</h1>
<center>
<h3>${exception.message}</h3>
<a href="/searchPage">
<button>Go to Search</button>
</a>
</center>
</body>
</html>
Search Page.jsp
pageEncoding="ISO-8859-1" isELIgnored="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<h1>
<center>Delivery Agency</center>
</h1>
<center>
method="POST">
<fieldset>
placeholder="dd/mm/yyyy" />
<br />
</sf:select>
</fieldset>
</sf:form>
</center>
</body>
</html>
--------------------------------------------------
Digital Home Broker
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<groupId>com.example</groupId>
<artifactId>DigitalHomeBroker</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>DigitalHomeBroker</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
</dependency>-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.w3c.css</groupId>
<artifactId>sac</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Broker Controller.java
package com.controller;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.model.Home;
import com.service.BrokerService;
@Controller
@Autowired
return "searchPage";
ModelMap model) {
if (result.hasErrors()) {
return "searchPage";
model.addAttribute("homes", service.searchHome(homeBean));
return "homeListPage";
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan({"com.*"})
SpringApplication.run(DigitalHomeBrokerApplication.class, args);
Home.java
package com.model;
import javax.validation.constraints.Min;
import org.springframework.stereotype.Component;
@Component
return rent;
this.rent = rent;
return location;
this.location = location;
this.address = address;
return contactNumber;
this.contactNumber = contactNumber;
return bhkType;
this.bhkType = bhkType;
return contactPerson;
this.contactPerson = contactPerson;
public Home(String location, String address, String contactNumber, String bhkType, String
contactPerson,double rent) {
super();
this.location = location;
this.address = address;
this.contactNumber = contactNumber;
this.bhkType = bhkType;
this.contactPerson = contactPerson;
this.rent=rent;
public Home()
{}
Broker Service.java
package com.service;
import java.util.ArrayList;
import org.springframework.stereotype.Service;
import com.model.Home;
@Service
if (home.getLocation().equalsIgnoreCase(homeBean.getLocation())
&&
home.getBhkType().equalsIgnoreCase(homeBean.getBhkType())
&& home.getRent() == homeBean.getRent()) {
resultList.add(home);
return resultList;
public BrokerService() {
addHomes();
"Malavika", 8000));
12000));
12000));
"Sowparnika", 17000));
"Mukunthan", 6000));
14000));
list.add(
list.add(
17000));
return list;
<%@page isELIgnored="false"%>
<html>
<body bgcolor="lavender">
<h1>
<h2>
</h2>
<h2>
</h2>
</c:if>
<table>
<thead>
<tr>
<td>Location</td>
<td>BhkType</td>
<td>Address</td>
<td>ContactPerson</td>
<td>ContactNumber</td>
</tr>
</thead>
<tbody>
<tr>
<td>${home.location}</td>
<td>${home.bhkType}</td>
<td>${home.address}</td>
<td>${home.contactPerson}</td>
<td>${home.contactNumber}</td>
</tr>
</c:forEach>
</tbody>
</table>
</c:if>
</body>
</html>
Search Page.jsp
pageEncoding="ISO-8859-1" isELIgnored="false"%>
<html>
<h1>
</h1>
<h2>
</h2>
<center>
<table>
<tr>
<td><form:label path="location">Search
location</form:label></td>
<td><form:input path="location" id="location"
name="location" />
</td>
</tr>
<tr>
</td>
</tr>
<tr>
<td><form:label path="rent">Preferred
Rent</form:label></td>
</td>
</tr>
<tr>
</tr>
</form:form>
</table>
</center>
</body>
</html>
--------------------------------------------------
Farm Fresh Online store - V1
FarmFresh
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<groupId>com.example</groupId>
<artifactId>FarmFresh</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>FarmFresh</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Spring test dependencies -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
</dependency>-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.w3c.css</groupId>
<artifactId>sac</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.7.RELEASE</version> <!-- 4.0.5 -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Shopping Controller.java
package com.controller;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import com.exception.NoStockException;
import com.model.Product;
import com.service.ShoppingService;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@Autowired
@ModelAttribute("productNames")
productNames.add("Apple");
productNames.add("Orange");
productNames.add("Grapes");
productNames.add("Mango");
productNames.add("JackFruit");
return productNames;
if(result.hasErrors()){
return ("showPage");
else{
double cost=shoppingService.calculateCost(product);
model.addAttribute("cost",cost);
model.addAttribute("costPerKg",product.getCostPerKg());
model.addAttribute("name",product.getProductName());
model.addAttribute("quantity",product.getQuantity());
}
return ("billDesk");
@ExceptionHandler(NoStockException. class)
mav.addObject("message", e.getMessage());
mav.setViewName("exceptionPage");
return mav;
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan({"com.*"})
SpringApplication.run(FarmFreshApplication.class, args);
}
No Stock Exception.java
package com.exception;
super(msg);
Product.java
package com.model;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import org.springframework.stereotype.Component;
@Component
return productName;
this.productName = productName;
return quantity;
this.quantity = quantity;
return costPerKg;
this.costPerKg = costPerKg;
}
public Product() {}
Shopping Service.java
package com.service;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.springframework.stereotype.Service;
import com.exception.NoStockException;
import com.model.Product;
@Service
double totalCost=0.0;
Map<String,Integer> stock=getProductStock();
if(product.getProductName().equalsIgnoreCase(entry.getKey())) {
if(product.getQuantity()>entry.getValue()) {
}
}
if(product.getProductName().equals("Apple")) {
product.setCostPerKg(250);
else if(product.getProductName().equals("JackFruit")) {
product.setCostPerKg(75);
else if(product.getProductName().equals("Orange")) {
product.setCostPerKg(90);
else if(product.getProductName().equals("Mango")) {
product.setCostPerKg(60);
else if(product.getProductName().equals("Grapes")) {
product.setCostPerKg(150);
totalCost=product.getQuantity()*product.getCostPerKg();
return totalCost;
stock.put("Apple",50);
stock.put("Grapes",10);
stock.put("Orange",30);
stock.put("Mango",75);
stock.put("JackFruit",25);
return stock;
}
Bill Desk.jsp
<html>
<table >
<tr>
</tr>
<tr>
<td>Quantity <td>${quantity}</td>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
</center>
</body>
</html>
Exception Page.jsp
<%@page isELIgnored="false" %>
<html>
<body bgcolor="lavender">
<h3>
<%
if (request.getAttribute("message") != null) {
%>
<%=request.getAttribute("message")%>
<%
%>
</h3>
<div>
</div>
</center>
</body>
</html>
Show Page.jsp
pageEncoding="ISO-8859-1" isELIgnored="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body style="background-color:lavender">
<tr>
<td>Select product</td>
<td>
<form:options items="${productNames}"/>
</form:select>
</td>
</tr>
<tr>
<td>Quantity</td>
<td><form:errors path="quantity"/></td>
</tr>
</table>
</form:form>
</body>
</html>
--------------------------------------------------
Flawless Academy - V1
FlawlessAcademy
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<groupId>com.example</groupId>
<artifactId>FlawlessAcademy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>FlawlessAcademy</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
</dependency>-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>org.w3c.css</groupId>
<artifactId>sac</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Academy Controller.java
package com.controller;
import java.util.HashMap;
import java.util.Map;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.model.Academy;
import com.service.AcademyService;
@Controller
@Autowired
private AcademyService service;
System.out.println("in controller");
return "enrollmentPage";
@ModelAttribute("programList")
progMap.put("ClassicalDance", "ClassicalDance");
progMap.put("KarnaticVocals", "KarnaticVocals");
progMap.put("WesternDance","WesternDance");
progMap.put("Drawing", "Drawing");
progMap.put("Instruments","Instruments");
return progMap;
ModelMap model) {
if (result.hasErrors()) {
return "enrollmentPage";
double cost=service.calculateProgramCost(academyBean);
model.addAttribute("cost", cost);
return "estimationPage";
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan({"com.*"})
SpringApplication.run(FlawlessAcademyApplication.class, args);
Academy.java
package com.model;
import javax.validation.constraints.Min;
import javax.validation.constraints.Max;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
return sessionsPerWeek;
this.sessionsPerWeek = sessionsPerWeek;
public Academy()
return weeksPerMonth;
this.weeksPerMonth = weeksPerMonth;
this.costPerSession = costPerSession;
return program;
this.program = program;
Academy Service.java
package com.service;
import org.springframework.stereotype.Service;
import com.model.Academy;
@Service
double cost=0.0;
academyBean.setWeeksPerMonth(4);
System.out.println(academyBean.getSessionsPerWeek()+"
"+academyBean.getProgram()+" "+academyBean.getWeeksPerMonth());
if(academyBean.getProgram().equalsIgnoreCase("ClassicalDance") &&
academyBean.getSessionsPerWeek()>=1)
academyBean.setCostPerSession(150.0);
cost=academyBean.getCostPerSession()*academyBean.getSessionsPerWeek()*academyBea
n.getWeeksPerMonth();
academyBean.setCostPerSession(100.0);
cost=academyBean.getCostPerSession()*academyBean.getSessionsPerWeek()*academyBea
n.getWeeksPerMonth();
academyBean.setCostPerSession(125.0);
cost=academyBean.getCostPerSession()*academyBean.getSessionsPerWeek()*academyBea
n.getWeeksPerMonth();
if(academyBean.getProgram().equalsIgnoreCase("Drawing") &&
academyBean.getSessionsPerWeek()>=1)
academyBean.setCostPerSession(130.0);
cost=academyBean.getCostPerSession()*academyBean.getSessionsPerWeek()*academyBea
n.getWeeksPerMonth();
academyBean.setCostPerSession(200.0);
cost=academyBean.getCostPerSession()*academyBean.getSessionsPerWeek()*academyBea
n.getWeeksPerMonth();
return cost;
Enrollment Page.jsp
pageEncoding="ISO-8859-1" isELIgnored="false"%>
<html>
<body style="background-color:lavender">
<tr>
<td>
<form:options items="${programList}"/>
</form:select>
</td>
</tr>
<tr>
<tr>
</tr>
</table>
</form:form>
</body>
</html>
Estimation Page.jsp
<html>
<body bgcolor="lavender">
</body>
</html>
--------------------------------------------------
SnapFitness
Snap Fitness Center - V1
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
</parent>
<groupId>com.example</groupId>
<artifactId>SnapFitness</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SnapFitness</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.7.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Fitness Controller.java
package com.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.model.FitnessCenter;
import com.service.FitnessService;
@Controller
@ModelAttribute("packageList")
pairs.put("Aerobics","Aerobics");
pairs.put("Zumba","Zumba");
pairs.put("PersonalTraining","PersonalTraining");
pairs.put("Yoga","Yoga");
pairs.put("RegularGYM","RegularGYM");
return pairs;
@GetMapping("/snapEnquiryPage")
return "snapEnquiryPage";
@PostMapping("/packEstimation")
ModelMap model) {
if(result.hasErrors()){
return "snapEnquiryPage";
model.addAttribute("cost",service.calculatePackageCost(fitness));
return "snapEstimation";
}
Snap Fitness Application.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan({"com.*"})
SpringApplication.run(SnapFitnessApplication.class, args);
Fitness Center.java
package com.model;
import javax.validation.constraints.Min;
import org.springframework.stereotype.Component;
@Component
return preferredPackage;
this.preferredPackage = preferredPackage;
return costPerMonth;
this.costPerMonth = costPerMonth;
return numberOfMonths;
this.numberOfMonths = numberOfMonths;
Fitness Service.java
package com.service;
import com.model.FitnessCenter;
import org.springframework.stereotype.Service;
@Service
double packageCost=0.0;
if(serviceName.equals("Aerobics"))
packageCost = months*1500.0;
else if(serviceName.equals("Zumba"))
packageCost = months*1750.0;
else if(serviceName.equals("RegularGYM"))
packageCost = months*1250.0;
else if(serviceName.equals("PersonalTraining"))
packageCost = months*2500.0;
}
else if(serviceName.equals("Yoga"))
packageCost = months*1300.0;
return packageCost;
pageEncoding="ISO-8859-1" isELIgnored="false"%>
<html>
<body style="background-color:lavender">
<center>
<table>
<tr>
<td><form:label path="preferredPackage">Select
Package</form:label></td>
</tr>
<tr>
name="numberOfMonths" required="required"
/><label>${messege}</label></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</center>
</form:form>
</body>
</html>
Snap Estimation.jsp
<html>
<body bgcolor="lavender">
</body>
</html>
</html>
--------------------------------------------------
CarstoreApplication
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
<groupId>com.cts</groupId>
<artifactId>carstore</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>CarStoreSystem</name>
<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- <dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- <dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency> -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testSuite.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</reporting>
</project>
CarStoreController.java
package com.cts.carstore.controller;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Validator;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import com.cts.carstore.exception.ApplicationException;
import com.cts.carstore.model.Car;
import com.cts.carstore.model.CarSearch;
import com.cts.carstore.service.CarStoreService;
@Controller
@Autowired
@Autowired
public CarStoreController() {
}
@Autowired
this.service=service;
this.validator=validator;
@GetMapping("/showCarSearchForm")
carSearch=new CarSearch();
@PostMapping("/getCarSearchResultPage")
)throws ApplicationException {
if(result.hasErrors())
List<Car> carList=service.getCarSearchResult(carSearch);
map.addAttribute("carList", carList);
return "carSearchResult";
}
@ModelAttribute("cities")
cities.add("Chennai");
cities.add("Mumbai");
cities.add("Delhi");
cities.add("Bangalore");
cities.add("Pune");
cities.add("Kolkatta");
return cities;
@ModelAttribute("brands")
brands.add("Maruti Suzuki");
brands.add("Honda");
brands.add("Mahindra");
brands.add("Toyota");
brands.add("Hundai");
return brands;
@ModelAttribute("budgetUpto")
budgetUpto.add("Below 3 Lakh");
budgetUpto.add("3 Lakh");
budgetUpto.add("5 Lakh");
budgetUpto.add("7 Lakh");
budgetUpto.add("10 Lakh");
return budgetUpto;
@ModelAttribute("fuelTypes")
fuelTypes.add("Petrol");
fuelTypes.add("Diesel");
fuelTypes.add("CNG");
return fuelTypes;
ApplicationException.java
package com.cts.carstore.exception;
ExceptionHandlerControllerAdvice.java
package com.cts.carstore.exception;
import java.time.LocalDateTime;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpStatus;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;
@ControllerAdvice
@ExceptionHandler(ApplicationException.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
mv.setViewName("error");
mv.addObject("errorTime",LocalDateTime.now());
Car.java
package com.cts.carstore.model;
public Car() {
super();
this.brandName = brandName;
this.modelName = modelName;
this.price = price;
this.fuelType = fuelType;
this.mileage = mileage;
this.seatingCapacity = seatingCapacity;
return brandName;
this.brandName = brandName;
return modelName;
this.modelName = modelName;
return price;
this.price = price;
}
public String getFuelType() {
return fuelType;
this.fuelType = fuelType;
return seatingCapacity;
this.seatingCapacity = seatingCapacity;
return mileage;
this.mileage = mileage;
Car Search.java
package com.cts.carstore.model;
import javax.validation.constraints.*;
@NotEmpty(message="Gender is required")
public CarSearch() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
return gender;
this.gender = gender;
return mobileNumber;
this.mobileNumber = mobileNumber;
return customerCity;
this.customerCity = customerCity;
this.brand = brand;
return budgetUpto;
this.budgetUpto = budgetUpto;
return fuelType;
this.fuelType = fuelType;
Error Response.java
package com.cts.carstore.model;
public class ErrorResponse {
package com.cts.carstore.service;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
import com.cts.carstore.exception.ApplicationException;
import com.cts.carstore.model.Car;
import com.cts.carstore.model.CarSearch;
@Service
throws
ApplicationException {
List<Car> available=buildCars();
if(carSearch.getBudgetUpto().startsWith("Below"))
throw new ApplicationException();
int budgetLimit=Integer.parseInt(carSearch.getBudgetUpto().substring(0,2).trim());
for(Car car:available) {
if(car.getBrandName().equalsIgnoreCase(carSearch.getBrand())&&
car.getFuelType().equalsIgnoreCase(carSearch.getFuelType())
&& car.getPrice()<=budgetLimit) {
list.add(car);
// brand,modelName,price,fuelType,seatingCapacity
Car car1 = new Car("Maruti Suzuki", "Swift", 5.20, "Petrol", 21.21, 5);
Car car3 = new Car("Maruti Suzuki", "Ertiga LXi", 7.5, "Petrol", 19.01, 7);
Car car4 = new Car("Maruti Suzuki", "Ertiga VXi", 8.9, "CNG", 26.2, 7);
Car car5 = new Car("Maruti Suzuki", "WagonR", 4.5, "Petrol", 20.52, 5);
Car car6 = new Car("Maruti Suzuki", "WagonR LXi", 5.20, "CNG", 32.52, 5);
Car car8 = new Car("Honda", "Amaze1.2E MT", 7.6, "Diesel", 24.7, 5);
cars.add(car1);
cars.add(car2);
cars.add(car3);
cars.add(car4);
cars.add(car5);
cars.add(car6);
cars.add(car7);
cars.add(car8);
cars.add(car9);
cars.add(car10);
cars.add(car11);
cars.add(car12);
cars.add(car13);
cars.add(car14);
return cars;
Skeleton Validator.java
package com.cts.carstore.skeletonvalidator;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SkeletonValidator {
public SkeletonValidator() {
validateClassName("com.cts.carstore.model.Car");
validateClassName("com.cts.carstore.model.CarSearch");
validateClassName("com.cts.carstore.model.ErrorResponse");
validateClassName("com.cts.carstore.service.CarStoreService");
validateClassName("com.cts.carstore.controller.CarStoreController");
validateClassName("com.cts.carstore.exception.ApplicationException");
validateClassName("com.cts.carstore.exception.ExceptionHandlerControllerAdvice");
validateMethodSignature("getCarSearchResult:java.util.List",
"com.cts.carstore.service.CarStoreService");
validateMethodSignature("showCarSearchForm:java.lang.String,populateCities:java.util.List,
populateBrands:java.util.List,populateBudget:java.util.List,populateFuelTypes:java.util.List",
"com.cts.carstore.controller.CarStoreController");
try {
Class.forName(className);
iscorrect = true;
LOG.info("Class Name " + className + " is correct");
} catch (ClassNotFoundException e) {
} catch (Exception e) {
LOG.log(Level.SEVERE,
return iscorrect;
try {
String[] methodSignature;
methodName = methodSignature[0];
returnType = methodSignature[1];
cls = Class.forName(className);
if (methodName.equals(findMethod.getName())) {
foundMethod = true;
if
(!(findMethod.getReturnType().getName().equals(returnType))) {
errorFlag = true;
} else {
if (!foundMethod) {
errorFlag = true;
if (!errorFlag) {
} catch (Exception e) {
LOG.log(Level.SEVERE,
package com.cts.carstore;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.cts.carstore.skeletonvalidator.SkeletonValidator;
@SpringBootApplication
SpringApplication.run(CarStoreApplication.class, args);
new SkeletonValidator();
Car Search.jsp
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
</head>
<body>
<br>
<br>
modelAttribute="carSearch" method="post">
<br />
<br />
<sf:label path="gender">Gender:</sf:label>
<br />
</sf:select>
<br />
<sf:label path="brand">Brand:</sf:label>
</sf:select>
<br />
</sf:select>
<br />
</sf:select>
<br />
</sf:form>
</body>
</html>
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
</head>
<body>
<br>
<br>
<sf:form id="searchResult">
<c:if test="${carList.isEmpty()==false}">
<table border="1">
<tr>
<th>Brand Name</th>
<th>Model Name</th>
<th>Price in lakh</th>
<th>Fuel/Transmission</th>
<th>Mileage</th>
<th>Seating Capacity</th>
</tr>
<tr>
<td>${car.brandName}</td>
<td>${car.modelName}</td>
<td>${car.price}</td>
<td>${car.fuelType}</td>
<td>${car.mileage}</td>
<td>${car.seatingCapacity}</td>
</tr>
</c:forEach>
</table>
</c:if>
<c:if test="${carList.isEmpty()==true}">
</c:if>
</sf:form>
<br/>
</body>
</html>
error.jsp
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<sf:form id="error">
<h3>${errorMessage}</h3>
<h3>${errorTime}</h3>
</sf:form>
<br/>
</body>
</html>
--------------------------------------------------