Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
86c5e61
setup
midoostar1 Nov 14, 2022
b159eb9
create config class
NicholasBarrera Nov 14, 2022
702c36b
Updates to NavBar layout and locations
CodyPalmer1 Nov 14, 2022
590081b
Updates to nav bar changes based on login / logout
CodyPalmer1 Nov 14, 2022
65367d7
created Update and Delete Ads & Users servlets
midoostar1 Nov 14, 2022
cefd632
Updates to nav bar changes based on login / logout
CodyPalmer1 Nov 14, 2022
1e5128c
method to search adds by title created
midoostar1 Nov 15, 2022
29d5a61
username verification
NicholasBarrera Nov 15, 2022
db6ad6f
joining
NicholasBarrera Nov 15, 2022
74cbcd9
Merge branch 'master' into Cody
CodyPalmer1 Nov 15, 2022
19b21eb
Merge pull request #1 from Adlister-Amida-Nicholas-Cody/Cody
CodyPalmer1 Nov 15, 2022
297908e
cards
midoostar1 Nov 15, 2022
209aad7
Merge pull request #2 from Adlister-Amida-Nicholas-Cody/Amida
midoostar1 Nov 15, 2022
b0624a6
update
NicholasBarrera Nov 15, 2022
93fe07d
Updates to search / nav bar
CodyPalmer1 Nov 15, 2022
a6b9120
Updates to search / nav bar
CodyPalmer1 Nov 15, 2022
19f02f2
update
NicholasBarrera Nov 15, 2022
cf2589a
done with user info update
midoostar1 Nov 15, 2022
da8a58b
Merge pull request #4 from Adlister-Amida-Nicholas-Cody/Amida
midoostar1 Nov 15, 2022
5143700
more
CodyPalmer1 Nov 15, 2022
47481f8
Updates to search function
CodyPalmer1 Nov 15, 2022
cc6044d
Merge branch 'Cody'
CodyPalmer1 Nov 15, 2022
4567f95
update user jsp created
midoostar1 Nov 15, 2022
289d3b8
Merge pull request #5 from Adlister-Amida-Nicholas-Cody/master
midoostar1 Nov 15, 2022
fe7c836
Merge pull request #6 from Adlister-Amida-Nicholas-Cody/Amida
midoostar1 Nov 15, 2022
69c4029
update branch
NicholasBarrera Nov 15, 2022
d03cf7c
update
NicholasBarrera Nov 15, 2022
33b74db
Updates to profile navbar and organization of cards
CodyPalmer1 Nov 15, 2022
5349b1c
display ads posted by a particular user on their profile
midoostar1 Nov 15, 2022
8ddbc5e
Merge branch 'Cody'
CodyPalmer1 Nov 15, 2022
bc8f2e8
delete Ad functionality working
midoostar1 Nov 16, 2022
2e2a737
update ad functional
midoostar1 Nov 16, 2022
585120a
complete password verification
NicholasBarrera Nov 16, 2022
ee737f2
update
NicholasBarrera Nov 16, 2022
68ecc79
Merge branch 'Nicholas'
NicholasBarrera Nov 16, 2022
ef92695
Merge branch 'master' of github.com:Adlister-Amida-Nicholas-Cody/java…
NicholasBarrera Nov 16, 2022
907e75e
Updates
CodyPalmer1 Nov 16, 2022
1c172c2
Merge branch 'Cody'
CodyPalmer1 Nov 16, 2022
38578e7
Updates to master
CodyPalmer1 Nov 16, 2022
61a8c0f
more
CodyPalmer1 Nov 16, 2022
da269b5
updated delet and update servlet
midoostar1 Nov 16, 2022
9a2fd36
more
midoostar1 Nov 16, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions adlister.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
USE adlister_db;
DROP TABLE IF EXISTS ads;
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(240) NOT NULL,
email VARCHAR(240) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)

);
CREATE TABLE ads (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(240) NOT NULL,
description TEXT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE
);

ALTER TABLE users

ADD UNIQUE (username);
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
<dependency>
<groupId>org.mindrot</groupId>
<artifactId>jbcrypt</artifactId>
<version>0.3m</version>
<version>0.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
Expand All @@ -42,7 +42,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
<version>8.0.31</version>
</dependency>
</dependencies>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
request.getRequestDispatcher("/WEB-INF/ads/index.jsp").forward(request, response);
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.Ad;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "controllers.DeleteAdsServlet", urlPatterns = "/deleteAd")
public class DeleteAdsServlet extends HttpServlet {


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {

long id = Long.parseLong( request.getParameter("id"));
System.out.println(id);

Ad ad = DaoFactory.getAdsDao().ById(id); //FIND THE AD TO DELETE
DaoFactory.getAdsDao().delete(ad); // DELETE AD
response.sendRedirect("/ads");


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "controllers.DeleteUserServlet", urlPatterns = "/deleteUser")
public class DeleteUserServlet extends HttpServlet {
String userName1;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
HttpSession session = request.getSession();
userName1 = (String)session.getAttribute("user");
User user = DaoFactory.getUsersDao().findByUsername(userName1);
DaoFactory.getUsersDao().delete(user);
response.sendRedirect("/ads");
}


}

17 changes: 16 additions & 1 deletion src/main/java/com/codeup/adlister/controllers/LoginServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.User;
import com.codeup.adlister.util.Password;
import com.mysql.cj.xdevapi.Session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "controllers.LoginServlet", urlPatterns = "/login")
Expand All @@ -20,12 +22,15 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
}
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}
String scopeUserName;
long scopId;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = DaoFactory.getUsersDao().findByUsername(username);


if (user == null) {
response.sendRedirect("/login");
return;
Expand All @@ -34,10 +39,20 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
boolean validAttempt = Password.check(password, user.getPassword());

if (validAttempt) {
request.getSession().setAttribute("user", user);

request.getSession().setAttribute("user", user);
response.sendRedirect("/profile");


} else {
response.sendRedirect("/login");
}

scopId = user.getId();
scopeUserName = user.getUsername();

HttpSession session = request.getSession();
session.setAttribute("userName",scopeUserName);
session.setAttribute("userId",scopId);
}
}
58 changes: 44 additions & 14 deletions src/main/java/com/codeup/adlister/controllers/RegisterServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,56 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String username = request.getParameter("username");
String email = request.getParameter("email");
String password = request.getParameter("password");
System.out.println(password);
String passwordConfirmation = request.getParameter("confirm_password");

// validate input
boolean inputHasErrors = username.isEmpty()
|| email.isEmpty()
|| password.isEmpty()
|| (! password.equals(passwordConfirmation));

if (inputHasErrors) {
response.sendRedirect("/register");
return;
}
// boolean inputHasErrors = username.isEmpty()
// || email.isEmpty()
// || password.isEmpty()
// || (!password.equals(passwordConfirmation));
//
// if (inputHasErrors) {
// response.sendRedirect("/register");
// return;
// }


User userName = DaoFactory.getUsersDao().findByUsername(username);
User emailTest = DaoFactory.getUsersDao().findByEmail(email);

boolean correctInfo = false;
if (userName != null && username.equals(userName.getUsername())) {
request.setAttribute("usernameExists", "This username is already in use, please try another.");
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
} else if (!email.contains("@")) {
request.setAttribute("emailError", "You need to enter a valid email address!");
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
} else if (emailTest != null && email.equals(emailTest.getEmail())) {
request.setAttribute("emailExists", "The email you entered already exists.");
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
} else if (!password.equals(passwordConfirmation)) {
request.setAttribute("passwordMismatch", "Please confirm your password you re-entered is correct.");
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);


// create and save a new user
User user = new User(username, email, password);
DaoFactory.getUsersDao().insert(user);
response.sendRedirect("/login");
} else {
correctInfo = true;
}
}
}











23 changes: 23 additions & 0 deletions src/main/java/com/codeup/adlister/controllers/SearchServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@


package com.codeup.adlister.controllers;
import com.codeup.adlister.dao.DaoFactory;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "SearchServlet", urlPatterns = "/search")
public class SearchServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String search = request.getParameter("search");
System.out.println(search);
// String wilSearch = "%"+search+"%";
request.setAttribute("ads", DaoFactory.getAdsDao().searchAD(search));
request.getRequestDispatcher("/WEB-INF/ads/searchAds.jsp").forward(request, response);
}
}
49 changes: 49 additions & 0 deletions src/main/java/com/codeup/adlister/controllers/UpdateAdServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.Ad;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "controllers.UpdateAdServlet", urlPatterns = "/updateAd")
public class UpdateAdServlet extends HttpServlet {
String titleOld;
long id;
String oldDescription;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

titleOld = request.getParameter("title");
id = Long.parseLong(request.getParameter("id"));
oldDescription = request.getParameter("description");


request.getRequestDispatcher("/WEB-INF/ads/updateAd.jsp")
.forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
User user = (User) request.getSession().getAttribute("user");

String title = request.getParameter("title");
if( title.isEmpty()){title = titleOld;}

String description = request.getParameter("description");
if( description.isEmpty()){ description = oldDescription;}




System.out.println(id);
System.out.println(oldDescription);
Ad ad = DaoFactory.getAdsDao().ById(id); //FIND THE AD TO UPDATE
DaoFactory.getAdsDao().update(ad,title,description); // UPDATE AD
response.sendRedirect("/ads");

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.User;
import com.mysql.cj.Session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "controllers.UpdateUserServlet", urlPatterns = "/updateUser")
public class UpdateUserServlet extends HttpServlet {

String userName1;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
userName1 = (String)session.getAttribute("user");

request.getRequestDispatcher("/WEB-INF/updateUser.jsp").forward(request, response);
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
String email = request.getParameter("email");
String password = request.getParameter("password");
String passwordConfirmation = request.getParameter("confirm_password");

// validate input
boolean inputHasErrors = username.isEmpty()
|| email.isEmpty()
|| password.isEmpty()
|| (! password.equals(passwordConfirmation));

if (inputHasErrors) {
response.sendRedirect("/updateUser.jsp");
return;
}

// create and save a new user
User user = new User(username, email, password);
User u = DaoFactory.getUsersDao().findByUsername(userName1);
DaoFactory.getUsersDao().update(u,username,email,password);
response.sendRedirect("/login");
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "controllers.ViewProfileServlet", urlPatterns = "/profile")
public class ViewProfileServlet extends HttpServlet {
long userId;
String username;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getSession().getAttribute("user") == null) {
HttpSession session = request.getSession();

if (session.getAttribute("user") == null) {
response.sendRedirect("/login");
return;
}

String username = (String) session.getAttribute("username");
userId = (long) session.getAttribute("userId");
request.setAttribute("ads", DaoFactory.getAdsDao().findAd(userId));
request.getRequestDispatcher("/WEB-INF/profile.jsp").forward(request, response);
}
}
Loading