0% found this document useful (0 votes)
246 views49 pages

IPD Food Donation Project

This document contains code for a food donation project built in Java using technologies like servlets, JSP, MySQL, and Tomcat server. It includes code for classes like FoodUnit, Provider, and Receiver that define entities and their attributes in the project. It also includes code for a RequestController class that handles requests from the user interface.

Uploaded by

kartik malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
246 views49 pages

IPD Food Donation Project

This document contains code for a food donation project built in Java using technologies like servlets, JSP, MySQL, and Tomcat server. It includes code for classes like FoodUnit, Provider, and Receiver that define entities and their attributes in the project. It also includes code for a RequestController class that handles requests from the user interface.

Uploaded by

kartik malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

INNOVATIVE

PRODUCT
DESIGN
Food Donation Project
in java
Technologies used: java, servlet, jsp,mysql, tomcat server.

Submitted by:-
Kartik Malik

UE193054

CSE Section-1
FoodUnit.java
package com.donate.beans;

import java.util.Date;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

public class FoodUnit {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private int unitId;

private String name;

private int serves;

private int items;

private int availabilityInHours;

@Column(unique = true)
private long contactNumber;

private long alternativeContactNumber;

private String address;

private String landmark;

private Date date;

public int getUnitId() {

return unitId;

public FoodUnit() {

public void setUnitId(int unitId) {

this.unitId = unitId;

@Override

public String toString() {

return "FoodUnit [unitId=" + unitId + ", name=" + name + ", serves=" + serves + ", items=" + items

+ ", availabilityInHours=" + availabilityInHours + ", contactNumber=" + contactNumber

+ ", alternativeContactNumber=" + alternativeContactNumber + ", address=" + address +


", landmark="

+ landmark + ", date=" + date + "]";

public String getName() {

return name;

public void setName(String name) {

this.name = name;

public int getServes() {

return serves;
}

public void setServes(int serves) {

this.serves = serves;

public int getItems() {

return items;

public void setItems(int items) {

this.items = items;

public int getAvailabilityInHours() {

return availabilityInHours;

public void setAvailabilityInHours(int availabilityInHours) {

this.availabilityInHours = availabilityInHours;

public long getContactNumber() {

return contactNumber;

public void setContactNumber(long contactNumber) {

this.contactNumber = contactNumber;

public long getAlternativeContactNumber() {

return alternativeContactNumber;

public void setAlternativeContactNumber(long alternativeContactNumber) {

this.alternativeContactNumber = alternativeContactNumber;

public String getAddress() {


return address;

public void setAddress(String address) {

this.address = address;

public String getLandmark() {

return landmark;

public void setLandmark(String landmark) {

this.landmark = landmark;

public Date getDate() {

return date;

public void setDate(Date date) {

this.date = date;

Provider.java
package com.donate.beans;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

public class Provider {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

private int providerId;

private String providerName;

private long phone;

@Column(unique = true)

private String email;

private String city;

private String cityArea;

private String address;

private String typeOfUser;

private String password;

@Override

public String toString() {

return "Provider [providerId=" + providerId + ", providerName=" + providerName + ", phone=" + phone + ",
email="

+ email + ", city=" + city + ", cityArea=" + cityArea + ", address=" + address + ",
typeOfUser="

+ typeOfUser + ", password=" + password + "]";

public String getPassword() {

return password;

public void setPassword(String password) {

this.password = password;

public Provider() {

public int getProviderId() {

return providerId;

}
public void setProviderId(int providerId) {

this.providerId = providerId;

public String getProviderName() {

return providerName;

public void setProviderName(String providerName) {

this.providerName = providerName;

public long getPhone() {

return phone;

public void setPhone(long phone) {

this.phone = phone;

public String getEmail() {

return email;

public void setEmail(String email) {

this.email = email;

public String getCity() {

return city;

public void setCity(String city) {

this.city = city;

public String getCityArea() {


return cityArea;

public void setCityArea(String cityArea) {

this.cityArea = cityArea;

public String getAddress() {

return address;

public void setAddress(String address) {

this.address = address;

public String getTypeOfUser() {

return typeOfUser;

public void setTypeOfUser(String typeOfUser) {

this.typeOfUser = typeOfUser;

Receiver.java
package com.donate.beans;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

public class Receiver {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

private int receiverId;

@Column(unique = true)

private String receiverName;

private long phone;

private String email;

private String city;

private String cityArea;

private String address;

private String typeOfUser;

private String password;

public Receiver() {

public int getReceiverId() {

return receiverId;

public void setReceiverId(int receiverId) {

this.receiverId = receiverId;

public String getReceiverName() {

return receiverName;

public void setReceiverName(String receiverName) {

this.receiverName = receiverName;

public long getPhone() {

return phone;

public void setPhone(long phone) {


this.phone = phone;

public String getEmail() {

return email;

public void setEmail(String email) {

this.email = email;

public String getCity() {

return city;

public void setCity(String city) {

this.city = city;

public String getCityArea() {

return cityArea;

public void setCityArea(String cityArea) {

this.cityArea = cityArea;

public String getAddress() {

return address;

public void setAddress(String address) {

this.address = address;

public String getTypeOfUser() {

return typeOfUser;

}
public void setTypeOfUser(String typeOfUser) {

this.typeOfUser = typeOfUser;

public String getPassword() {

return password;

public void setPassword(String password) {

this.password = password;

@Override

public String toString() {

return "Receiver [receiverId=" + receiverId + ", receiverName=" + receiverName + ", phone=" + phone + ",
email="

+ email + ", city=" + city + ", cityArea=" + cityArea + ", address=" + address + ",
typeOfUser="

+ typeOfUser + ", password=" + password + "]";

RequestController.java
package com.donate.controller;

import java.util.Date;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestParam;

import com.donate.beans.FoodUnit;
import com.donate.beans.Provider;

import com.donate.beans.Receiver;

import com.donate.mail.OTPMailer;

import com.donate.otp.OtpGenerator;

import com.donate.service.ServiceProvider;

@Controller

public class RequestController {

@Autowired

private ServiceProvider serviceProvider;

private Provider provider1;

private int signupOtp;

boolean receiver = false;

private Receiver receiver1;

@GetMapping("/login")

public String login() {

return "login";

@GetMapping("/forgotpasswordrequest")

public String forgotPasswordRequest() {

return "forgotpassword";

@PostMapping("/getotp")

public String getOTP(@RequestParam("email") String email,Model model) {

if(serviceProvider.mailExistance(email) == true) {

int otp = new OtpGenerator().getOtp();

OTPMailer mailer = new OTPMailer();

mailer.sendMail(email, otp);

model.addAttribute("message", "OTP successfully sent to your mail address");


model.addAttribute("otp", otp);

model.addAttribute("email",email);

model.addAttribute("otpsent", "sent");

return "forgotpassword";

}else {

model.addAttribute("message", "email address doesn't exist");

return "forgotpassword";

@GetMapping("/providersignup")

public String signup() {

return "providersignup";

@GetMapping("/receiversignup")

public String receiverSignupPage() {

return "receiversignup";

@PostMapping("/submitotp")

public String submitOtp(@RequestParam("otp") int otp,@RequestParam("email") String email,

@RequestParam("enteredotp") int enteredotp,Model model) {

System.out.println(otp+" "+enteredotp);

if(otp == enteredotp) {

model.addAttribute("email",email);

return "createnewpassword";

else {

model.addAttribute("message", "Invalid OTP");

return "forgotpassword";

}
}

@PostMapping("/updatepassword")

public String updatePassword(@RequestParam("email") String email,@RequestParam("password") String password,

@RequestParam("passwordagain") String passwordAgain,Model model) {

System.out.println(email+" "+password+" "+passwordAgain);

if(password.equals(passwordAgain)) {

boolean result = serviceProvider.updatePassword(email, password);

if(result == true) {

model.addAttribute("message", "Password Updated Successfully...!!");

return "login";

}else {

model.addAttribute("exception", "Something Went Wrong...!!");

return "createnewpassword";

}else {

model.addAttribute("passwordmismatch", "Password Mismatch...Type Again");

return "createnewpassword";

@PostMapping("/formsubmit")

public String submitForm(@RequestParam("providerName") String name, @RequestParam("phone") long phone,

@RequestParam("email") String email, @RequestParam("city") String city,

@RequestParam("cityArea") String cityArea, @RequestParam("address") String address,

@RequestParam("typeOfUser") String typeOfUser, @RequestParam("password") String password,

@RequestParam("passwordagain") String passwordAgain,@RequestParam("type") String


type,Model model) {

if(type.equals("doner")) {

Provider provider = new Provider();


provider.setAddress(address);

provider.setCity(city);

provider.setCityArea(cityArea);

provider.setTypeOfUser(typeOfUser);

provider.setEmail(email);

provider.setPhone(phone);

provider.setProviderName(name);

provider.setPassword(passwordAgain);

// if(password.equals(passwordAgain)) {

// serviceProvider.addFoodProvider(provider);

// }

if(password.equals(passwordAgain) && password.length()>=8) {

provider1 = provider;

model.addAttribute("email", email);

int otp = new OtpGenerator().getOtp();

signupOtp = otp;

new OTPMailer().sendMail(email, otp);

return "signupmailverify";

}else {

if(!password.equals(passwordAgain)) {

model.addAttribute("message", "Password Mismatch");

return "providersignup";

}else if(password.length()<8) {

model.addAttribute("message", "Password length must contain atleast 8 characters");

return "providersignup";

}else {

Receiver receiver = new Receiver();


receiver.setReceiverName(name);

receiver.setPhone(phone);

receiver.setEmail(email);

receiver.setTypeOfUser(typeOfUser);

receiver.setCityArea(cityArea);

receiver.setCity(city);

receiver.setAddress(address);

receiver.setPassword(password);

if(password.equals(passwordAgain) && password.length()>=8) {

receiver1 = receiver;

this.receiver = true;

model.addAttribute("email", email);

int otp = new OtpGenerator().getOtp();

signupOtp = otp;

new OTPMailer().sendMail(email, otp);

return "signupmailverify";

}else {

if(!password.equals(passwordAgain)) {

model.addAttribute("message", "Password Mismatch");

return "receiversignup";

}else if(password.length()<8) {

model.addAttribute("message", "Password length must contain


atleast 8 characters");

return "receiversignup";

System.out.println(receiver);

return null;
}

@PostMapping("/addprovider")

public String addProvider(@RequestParam("enteredotp") int otp,Model model) {

if(signupOtp == otp) {

boolean result;

System.out.println(receiver);

if(this.receiver == true) {

result = serviceProvider.addReceiver(receiver1);

}else {

result = serviceProvider.addFoodProvider(provider1);

model.addAttribute("message", "Account Created...Please try to login");

return "login";

}else {

model.addAttribute("otpmismatch", "OTP Mismatch...Try Again");

return "signupmailverify";

@PostMapping("/logindata")

public String logMeIn(@RequestParam("email") String email,@RequestParam("password") String


password,@RequestParam("type") String type,Model model) {

boolean verified = serviceProvider.logMeIn(email, password,type);

if(verified) {

if(type.equals("Donor")) {

return "donate";

}else {

List<FoodUnit> foods = serviceProvider.getAllFoods();

model.addAttribute("foods", foods);
return "showallfoods";

}else {

model.addAttribute("message","Wrong Credentials...!!");

return "login";

@PostMapping("/changepassword")

public String changePassword(@RequestParam("email") String email,@RequestParam("otp") int otp) {

return null;

@PostMapping("addunitfood")

public String addUnitFood(@RequestParam("name") String name,@RequestParam("serves") int serves,

@RequestParam("items") int items,@RequestParam("hours") int


hours,@RequestParam("phone") long contact,

@RequestParam("alternativephone") long altContact,@RequestParam("address") String address,

@RequestParam("landmark") String landmark) {

FoodUnit foodUnit = new FoodUnit();

foodUnit.setName(name);

foodUnit.setServes(serves);

foodUnit.setItems(items);

foodUnit.setAvailabilityInHours(hours);

foodUnit.setContactNumber(contact);

foodUnit.setAlternativeContactNumber(altContact);

foodUnit.setAddress(address);

foodUnit.setLandmark(landmark);

Date date = new Date();


foodUnit.setDate(date);

System.out.println(foodUnit);

serviceProvider.addUnitFood(foodUnit);

return "foodadded";

ProjectDAO.java
package com.donate.Dao;

import java.util.List;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.EntityTransaction;

import javax.persistence.Persistence;

import javax.persistence.Query;

import org.springframework.stereotype.Repository;

import com.donate.beans.FoodUnit;

import com.donate.beans.Provider;

import com.donate.beans.Receiver;

@Repository

public class ProjectDaoImpl implements ProjectDao {

@Override

public boolean addFoodProvider(Provider provider) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

EntityTransaction transaction = manager.getTransaction();

try {
transaction.begin();

manager.persist(provider);

transaction.commit();

return true;

}catch (Exception e) {

return false;

}finally {

factory.close();

manager.close();

@Override

public boolean logMeIn(String email, String password,String type) {

if(type.equals("Donor")) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

Query query = manager.createQuery("from Provider p where p.email=:mail");

query.setParameter("mail", email);

try {

List provider = query.getResultList();

Provider data = (Provider) provider.get(0);

if(data.getPassword().equals(password)){

return true;

}catch (Exception e) {

e.printStackTrace();

return false;

}
}else {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

Query query = manager.createQuery("from Receiver p where p.email=:mail");

query.setParameter("mail", email);

try {

List provider = query.getResultList();

Receiver data = (Receiver) provider.get(0);

if(data.getPassword().equals(password)){

return true;

}catch (Exception e) {

e.printStackTrace();

return false;

return false;

@Override

public boolean mailExistance(String email) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager()

Query query = manager.createQuery("from Provider p where p.email=:mail");

query.setParameter("mail", email);

try {

List provider = query.getResultList();

Provider data = (Provider) provider.get(0);

if(data!=null){

return true;
}

}catch (Exception e) {

e.printStackTrace();

return false;

return false;

@Override

public boolean updatePassword(String email,String password) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager()

Query query = manager.createQuery("from Provider p where p.email=:mail");

query.setParameter("mail", email);

List provider = query.getResultList();

Provider data = (Provider) provider.get(0);

data.setPassword(password);

EntityTransaction transaction = manager.getTransaction();

try {

transaction.begin();

manager.persist(data);

transaction.commit();

return true;

}catch (Exception e) {

e.printStackTrace();

return false;

@Override

public boolean addUnitFood(FoodUnit foodUnit) {


EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

EntityTransaction transaction = manager.getTransaction();

try {

transaction.begin();

manager.persist(foodUnit);

transaction.commit();

return true;

}catch (Exception e) {

e.printStackTrace();

return false;

@Override

public boolean addReceiver(Receiver receiver) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

EntityTransaction transaction = manager.getTransaction();

try {

transaction.begin();

manager.persist(receiver);

transaction.commit();

return true;

}catch (Exception e) {

return false;

}finally {

factory.close();
manager.close();

@Override

public List<FoodUnit> getAllFoods() {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("new");

EntityManager manager = factory.createEntityManager();

Query query = manager.createQuery("from FoodUnit");

try {

List<FoodUnit> foods = query.getResultList();

return foods;

}catch (Exception e) {

e.printStackTrace();

return null;

OTPMailer.java and OTPGenerator.java

package com.donate.mail;

import java.io.File;

import java.util.Properties;
import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

public class OTPMailer {

public void sendMail(String to,int otp)

System.out.println("preparing to send message ...");

String message = "Hello , User, Your OTP is "+otp;

String subject = "OTP";

// to = "malikkartik147@gmail.com";

// from = "malikkartik147@gmail.com";

// sendEmail(message,subject,to,from);

sendAttach(message,subject,to);

//this is responsible to send the message with attachment

private static void sendAttach(String message, String subject, String to) {

//Variable for gmail


String host="smtp.gmail.com";

//get the system properties

Properties properties = System.getProperties();

System.out.println("PROPERTIES "+properties);

//setting important information to properties object

//host set

properties.put("mail.smtp.host", host);

properties.put("mail.smtp.port","465");

properties.put("mail.smtp.ssl.enable","true");

properties.put("mail.smtp.auth","true");

//Step 1: to get the session object..

Session session=Session.getInstance(properties, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("malikkartik147@gmail.com",


"Kartik@1470");

});

session.setDebug(true);
//Step 2 : compose the message [text,multi media]

MimeMessage m = new MimeMessage(session);

try {

//from email

m.setFrom("malikkartik147@gmail.com");

//adding recipient to message

m.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

//adding subject to message

m.setSubject(subject);

//attachement..

//file path

String path="C:\\photo\\IMG_20210910_160331.jpg";

MimeMultipart mimeMultipart = new MimeMultipart();

//text

//file

MimeBodyPart textMime = new MimeBodyPart();

MimeBodyPart fileMime = new MimeBodyPart();

try {
textMime.setText(message);

File file=new File(path);

fileMime.attachFile(file);

mimeMultipart.addBodyPart(textMime);

//mimeMultipart.addBodyPart(fileMime);

} catch (Exception e) {

e.printStackTrace();

m.setContent(mimeMultipart);

//send

//Step 3 : send the message using Transport class

Transport.send(m);

}catch (Exception e) {

e.printStackTrace();

System.out.println("Sent success...................");

ServiceProvider.java

package com.donate.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.donate.Dao.ProjectDao;

import com.donate.beans.FoodUnit;

import com.donate.beans.Provider;

import com.donate.beans.Receiver;

@Service
public class ServiceProviderImpl implements ServiceProvider {

@Autowired

private ProjectDao dao;

@Override

public boolean addFoodProvider(Provider provider) {

return dao.addFoodProvider(provider);

@Override

public boolean logMeIn(String email, String password,String type) {

return dao.logMeIn(email, password,type);

@Override

public boolean mailExistance(String email) {

return dao.mailExistance(email);

@Override

public boolean updatePassword(String email,String password) {

return dao.updatePassword(email,password);

@Override

public boolean addUnitFood(FoodUnit foodUnit) {


if(foodUnit.getAvailabilityInHours()<=0) {

return false;

}else {

return dao.addUnitFood(foodUnit);

@Override

public boolean addReceiver(Receiver receiver) {

dao.addReceiver(receiver);

return false;

@Override

public List<FoodUnit> getAllFoods() {

return dao.getAllFoods();

Persistance.xml for database connectivity


<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="new"
transaction-type="RESOURCE_LOCAL">

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provide
r>
<properties>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url"

value="jdbc:mysql://localhost:3306/fooddonation" />
<property name="javax.persistence.jdbc.user"
value="root" />
<property name="javax.persistence.jdbc.password"
value="3639" />
<property name="hibernate.show_sql"
value="true" />
<property name="hibernate.format_sql" value="true"
/>
<property name="hibernate.hbm2ddl.auto"
value="update" />
<property name="hibernate.dialect"

value="org.hibernate.dialect.MySQL5InnoDBDialect" />

</properties>
</persistence-unit>
</persistence>

Pom.xml file to download dependencies


<?xml version="1.0" encoding="UTF-8"?>

<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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.donatefood</groupId>
<artifactId>project3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>project3 Maven Webapp</name>


<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding
>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--
https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!--
https://mvnrepository.com/artifact/javax.servlet/javax.servlet-
api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!--
https://mvnrepository.com/artifact/org.springframework/spring-
webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.18</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.hibernate/hibernate-core
-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.5.Final</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.hibernate/hibernate-
entitymanager -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.5.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-
connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
</dependencies>

<build>
<finalName>project3</finalName>
<pluginManagement><!-- lock down plugins versions to avoid
using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see
http://maven.apache.org/ref/current/maven-core/default-
bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

Jsp files for frontend


Createnewpassword.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Change Password</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body>
<%if(request.getAttribute("exception")!=null){ %>
<p style="color: red"><%=request.getAttribute("exception") %></p>
<%} %>
<form action="updatepassword" method="post">

<div class="form-group">
<label >Your Email</label> <input
type="email" class="form-control"
name="email"
value="<%=request.getAttribute("email") %>"
readonly="readonly"/>
</div>
<div class="form-group">
<label >Enter Your New Password</label> <input
type="text" class="form-control"
name="password"
placeholder="Enter your new password" />
</div>
<div class="form-group">
<label >Enter Your Password Again</label> <input
type="text" class="form-control"
name="passwordagain"
placeholder="Enter password again" />
</div>
<%if(request.getAttribute("passwordmismatch")!=null)
{ %>
<h1><%=request.getAttribute("passwordmismatch") %></h1>
<%} %>
<div class="text-center form-group">
<input type="submit" value="Submit"/>
</div>
</form>
</body>
</html>

Donate.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Donate Food</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body style="background: #e2e2e2;">

<div class="container mt-4">


<div class="row">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-body">
<h3 class="text-center"> Please Provide Few Information</h3>
<form action="addunitfood" method="post">
<div class="form-group">
<label >Name</label> <input
type="text" class="form-control" name="name"
placeholder="Enter your name"
required="required">
</div>

<div class="form-group">
<label >Estimated Quantity(serves)</label> <input
type="number" class="form-control"
name="serves"
placeholder="serves quantity"
required="required">
</div>

<div class="form-group">
<label >Type of items</label> <input
type="number" class="form-control"
name="items"
placeholder="number of items"
required="required">
</div>
<div class="form-group">
<label >Availability(in hours)</label> <input
type="number" class="form-control"
name="hours"
placeholder="in hours" required="required">
</div>

<div class="form-group">
<label >Contact Number</label> <input
type="number" class="form-control"
name="phone"
placeholder="Enter your phone number"
required="required">
</div>

<div class="form-group">
<label >Alternative Contact
Number(Optional)</label> <input
type="number" class="form-control"
name="alternativephone"
placeholder="Enter your phone number" >
</div>

<div class="form-group">
<label >Address</label>
<textarea class="form-control" name="address"
rows="3"></textarea>
</div>

<div class="form-group">
<label >Landmark</label>
<textarea class="form-control" name="landmark"
rows="1"></textarea>
</div>
<div class="text-center form-group">
<input type="submit" value="Donate"/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

</body>
</html>

Foodadded.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Thank You:)</title>
</head>
<body>
<h4 style="color: blue;">Thank You for the contribution....!!!
</h4>
</body>
</html>

Forgotpassword.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Forgot Password</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body>
<form action="getotp" method="post">

<div class="form-group">
<label >Enter Your Email</label> <input
type="email" class="form-control"
name="email"
placeholder="Enter your email" />
</div>
<div class="text-center form-group">
<input type="submit" value="Get OTP"/>
</div>
</form> <%if(request.getAttribute("message")!=null){ %>
<h1 style="color: red"><%=request.getAttribute("message") %></h1>
<%} %>

<form action="submitotp" method="post">


<%if(request.getAttribute("email")!=null){ %>
<input type="number" name="otp" value="<
%=request.getAttribute("otp") %>" hidden="hidden"/>
<input type="text" name="email" value="<
%=request.getAttribute("email") %>" hidden="hidden"/>
<% }%>
<div class="form-group">
<label >Enter OTP </label> <input
type="number" class="form-control"
name="enteredotp"
placeholder="Enter otp" required="required">
</div>
<%if(request.getAttribute("otpsent")!=null){ %>
<div class="text-center form-group">
<input type="submit" value="Create New Password"/>
</div>
<%} %>
</form>

</body>
</html>

Login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login Page</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body>
<% if(request.getAttribute("message")!=null){ %>
<p style="color: green"> <%=request.getAttribute("message")
%></p>
<%} %>
<form action="logindata" method="post">

<div class="form-group">
<label >Enter Your Email</label> <input
type="email" class="form-control"
name="email"
placeholder="Enter your email"
required="required">
</div>
<div class="form-group">
<label >Enter Your Password</label> <input
type="text" class="form-control"
name="password"
placeholder="Enter your password"
required="required" minlength="8">
</div>
<div class="form-group">
<label >Type of User</label> <select class="form-
control"
name="type" required="required">
<option>Receiver</option>
<option>Donor</option>

</select>
</div>

<div class="text-center form-group">


<input type="submit" value="submit"/>
</div>

<div class="text-right form-group">


<a href="forgotpasswordrequest">forgot password?
</a>
</div>

</form>
</body>
</html>

Navbar.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<img src="/docs/4.0/assets/brand/bootstrap-solid.svg"
width="30" height="30" class="d-inline-block align-top" alt="">
Bootstrap
</a>
<a href="login">Login</a>
<a href="providersignup" style="margin-left: -70%">Signup</a>

</body>
</html>

Providersignup.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Sign-Up Page</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body style="background: #e2e2e2;">
<div class="container mt-4">
<div class="row">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-body">
<h3 class="text-center"> SignUp Form</h3>
<form action="formsubmit" method="post">
<input type="number" value="1" readonly="readonly"
hidden="hidden" name="providerId"/>
<div class="form-group">
<label >Name</label> <input
type="text" class="form-control"
name="providerName"
placeholder="Enter your name"
required="required">
</div>
<input type="text" name="type" value="doner"
hidden="hidden"/>

<div class="form-group">
<label >Phone Number</label> <input
type="number" class="form-control"
name="phone"
placeholder="Enter your phone number"
required="required">
</div>

<div class="form-group">
<label >Email address</label> <input
type="email" class="form-control"
name="email"
placeholder="name@example.com"
required="required">
</div>

<div class="form-group">
<label >Select Your City</label> <select
class="form-control" name="city"
required="required">
<option>Chandigarh</option>
</select>
</div>
<div class="form-group">
<label >Select Your Area</label> <select
class="form-control"
name="cityArea" required="required">
<option>sector 34</option>
<option>sector 22</option>
<option>sector 17</option>
<option>sector 43</option>
<option>Dera Bassi</option>
<option>Mohali</option>
</select>
</div>

<div class="form-group">
<label >Your Address</label>
<textarea class="form-control" name="address"
rows="3"></textarea>
</div>

<div class="form-group">
<label >Type of Organization</label> <select
class="form-control"
name="typeOfUser" required="required">
<option>Hotel</option>
<option>Restaurant</option>
<option>Party Organizer</option>
<option>Food Supplier</option>
<option>Homemaker</option>
<option>Others</option>
</select>
</div>

<div class="form-group">
<label >Password <%out.print("(minumum length of 8
characters)"); %></label>
<textarea class="form-control" name="password"
rows="1" required="required"
minlength="8"></textarea>
</div>
<%if(request.getAttribute("message")!=null){ %>
<div>
<p style="color: red"><
%=request.getAttribute("message") %> </p>
</div>
<%} %>
<div class="form-group">
<label >Type your password again</label>
<textarea class="form-control"
name="passwordagain"
rows="1" required="required" minlength="8"
></textarea>
</div>

<div class="text-center form-group">


<input type="submit" value="submit"/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<!-- <div class="form-group">
<label for="exampleFormControlTextarea1">Example
textarea</label>
<textarea class="form-control" name="input4"
rows=""></textarea>
</div> -->

Recieversignup.jsp

<%@ page language="java" contentType="text/html; charset=ISO-


8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body style="background: #e2e2e2;">

<div class="container mt-4">


<div class="row">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-body">
<h3 class="text-center"> SignUp Form</h3>
<form action="formsubmit" method="post">
<input type="number" value="1" readonly="readonly"
hidden="hidden" name="providerId"/>
<div class="form-group">
<label >Name</label> <input
type="text" class="form-control"
name="providerName"
placeholder="Enter your name"
required="required">
</div>
<div class="form-group">
<label >Phone Number</label> <input
type="number" class="form-control"
name="phone"
placeholder="Enter your phone number"
required="required">
</div>

<div class="form-group">
<label >Email address</label> <input
type="email" class="form-control"
name="email"
placeholder="name@example.com"
required="required">
</div>

<div class="form-group">
<label >Select Your City</label> <select
class="form-control" name="city"
required="required">
<option>Chandigarh</option>
</select>
</div>
<div class="form-group">
<label >Select Your Area</label> <select
class="form-control"
name="cityArea" required="required">
<option>sector 34</option>
<option>sector 22</option>
<option>sector 17</option>
<option>sector 43</option>
<option>Dera Bassi</option>
<option>Mohali</option>
</select>
</div>

<div class="form-group">
<label >Your Address</label>
<textarea class="form-control" name="address"
rows="3"></textarea>
</div>

<div class="form-group">
<label >Type of Receiver</label> <select
class="form-control"
name="typeOfUser" required="required">
<option>NGO</option>
<option>Social Worker</option>

</select>
</div>
<input type="text" name="type" value="receiver"
hidden="hidden"/>

<div class="form-group">
<label >Password <%out.print("(minumum length of 8
characters)"); %></label>
<textarea class="form-control" name="password"
rows="1" required="required"
minlength="8"></textarea>
</div>
<%if(request.getAttribute("message")!=null){ %>
<div>
<p style="color: red"><
%=request.getAttribute("message") %> </p>
</div>
<%} %>
<div class="form-group">
<label >Type your password again</label>
<textarea class="form-control"
name="passwordagain"
rows="1" required="required" minlength="8"
></textarea>
</div>

<div class="text-center form-group">


<input type="submit" value="submit"/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

</body>
</html>

Showallfoods.jsp
<%@page import="java.util.List"%>
<%@page import="com.donate.beans.FoodUnit"%>
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1"
pageEncoding="ISO-8859-1"%>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Select an unit</title>
<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body>

<%List<FoodUnit> foods = (List)request.getAttribute("foods");


%>
<%! int sno = 1; %>
<div class="container mt-3">
<div class="row">
<div class="col-md-12">
<h1 class="text-center mb-3"> Select an Unit</h1>

<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">Sno</th>
<th scope="col">Serves</th>
<th scope="col">items</th>
<th scope="col">Address</th>
<th scope="col">Phone </th>
<th scope="col">Select</th>
</tr>
</thead>
<tbody>
<tr><%sno = 1; %>
<% for(FoodUnit unit : foods) {%>

<td scope="row"><%=sno++ %></td>


<td scope="row"><%=
unit.getServes() %></td>
<td scope="row"><%=unit.getItems()
%></td>
<td scope="row"><%=
unit.getAddress() %></td>
<td scope="row"><
%=unit.getContactNumber() %></td>
<%long cn =
unit.getContactNumber(); %>
<td><a href="get/<%=cn
%>">Get</a></td>

</tr>
<%} %>
</tbody>

</table>

</div>

</div>

</div>

</body>
</html>

Signupmailverify.jsp

<%@page import="org.hibernate.Hibernate"%>
<%@ page language="java" contentType="text/html; charset=ISO-
8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Mail Verification</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstr
ap.min.css"
integrity="sha384-
Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<body class="" style="background: #e2e2e2;">

<div class="card">
<div class="card-body">
<form action="addprovider" method="post">
<div class="form-group">
<label >Your Email</label> <input
type="email" class="form-control"
name="email"
value="<%=request.getAttribute("email") %>"
readonly="readonly"/>
</div>
<div class="form-group">
<label >Enter OTP </label> <input
type="number" class="form-control"
name="enteredotp"
placeholder="Enter otp" required="required">
</div>
<%if(request.getAttribute("otpmismatch")!=null){ %>
<h1><%=request.getAttribute("otpmismatch") %></h1>
<%} %>
<div class="text-center form-group">
<input type="submit" value="Submit OTP"/>
</div>

</form>
</div>
</div>
</body>
</html>

You might also like