Skip to content
Merged

0.6 #168

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
607d6b1
Add passay library for password requirements validation
maillouxc Nov 10, 2017
cbbdc41
Implement password requirements checker
maillouxc Nov 10, 2017
81c27b8
Implement employee password reset
maillouxc Nov 10, 2017
8453473
Merge pull request #154 from maillouxc/passwords
maillouxc Nov 10, 2017
de3ed6e
Implement prev and next month buttons on bookings report
maillouxc Nov 11, 2017
7ef4643
Configure axes for report
maillouxc Nov 11, 2017
06c37b1
Begin implementation of bookings report algorithm
maillouxc Nov 11, 2017
b89e389
Add debug statements
maillouxc Nov 11, 2017
4fec0a4
More debugging statements
maillouxc Nov 11, 2017
2977d3b
Change report chart to standard 1 series bar chart.
maillouxc Nov 11, 2017
1cf3ce4
Implement booking percantages report functionality
maillouxc Nov 11, 2017
09257ec
Merge pull request #157 from maillouxc/bookings-report
maillouxc Nov 11, 2017
a4d92c4
Added room images
emeruvia Nov 12, 2017
d9d1768
Remove more info button from browse room list item
maillouxc Nov 13, 2017
3610b36
Minor code cleanup
maillouxc Nov 13, 2017
d4b7aed
Init booking number label on view bill screen
maillouxc Nov 13, 2017
42c319a
Begin implementation of view bill screen logic
maillouxc Nov 13, 2017
d45f909
Fix LazyInitializationException
maillouxc Nov 13, 2017
4cd8db1
Actually fix the LazyInitializationException this time
maillouxc Nov 13, 2017
dce430a
Okay, I fixed it for real. I swear.
maillouxc Nov 13, 2017
7b2b088
Implement view guest bill screen logic
maillouxc Nov 13, 2017
166f401
Merge pull request #158 from maillouxc/view-bill-screen
maillouxc Nov 13, 2017
f3671b3
Applies a placeholder in the view staff table
Nov 15, 2017
c39f41f
Input for staff validation check should be working, have not implemen…
emeruvia Nov 15, 2017
16bcfe8
Can create new accounts, validation check isn't working properly yet.
emeruvia Nov 15, 2017
79a83e7
Adds the fields for the data to populate the id, name and isManager o…
Nov 16, 2017
346cabf
Minor tweaks to code + add checkbox for manager status
maillouxc Nov 16, 2017
ad2de59
Make reset password use the currently selected employee
maillouxc Nov 16, 2017
77fc2da
Merge branch 'development' into viewCurrentStaff
maillouxc Nov 16, 2017
7ed5b2e
Merge pull request #159 from maillouxc/viewCurrentStaff
maillouxc Nov 16, 2017
23a89c7
Fix employee test data in db
maillouxc Nov 16, 2017
9d3e06c
Merge branch 'development' of https://github.com/maillouxc/git-rekt i…
maillouxc Nov 16, 2017
6195f27
Fix validation on creating account
maillouxc Nov 16, 2017
8bf0023
Merge pull request #161 from maillouxc/employee-account
maillouxc Nov 16, 2017
a8168a6
Remove unneeded images - pick the best
maillouxc Nov 16, 2017
84e55ee
Display new images as test in browse rooms screen fake data
maillouxc Nov 16, 2017
858ec86
Merge branch 'development' into room-images
maillouxc Nov 16, 2017
934bfc1
Merge pull request #162 from maillouxc/room-images
maillouxc Nov 16, 2017
4e2c789
Minor refactoring + add javadoc
maillouxc Nov 16, 2017
47e491e
Fix minor javadoc issues
maillouxc Nov 16, 2017
9b2d6fa
Cleanup controller code some
maillouxc Nov 16, 2017
fb7d795
Prevent proceeding with booking if no selected rooms
maillouxc Nov 16, 2017
2dff2e6
Begin implementation of available room finding
maillouxc Nov 17, 2017
7b0c364
(Intentionally broken) - Implement view available room cats
maillouxc Nov 17, 2017
2287a91
Implement thumbnails for respective room categories
maillouxc Nov 17, 2017
b55c0a9
Fix room descriptions
maillouxc Nov 17, 2017
ee40a08
Merge pull request #163 from maillouxc/bookings
maillouxc Nov 17, 2017
8d10068
Disable invalid checkin date picker dates
maillouxc Nov 17, 2017
337d5fb
Disable invalid date selection
maillouxc Nov 17, 2017
984b6a1
Disable selection of invalid checkout dates
maillouxc Nov 17, 2017
a9fb8db
Minor tweaks to datepicker logic
maillouxc Nov 17, 2017
787fa7b
Implement currently selected rooms list and logic
maillouxc Nov 18, 2017
bd35ae7
Clear selected rooms list when refreshing results list
maillouxc Nov 18, 2017
1e8221a
Merge branch 'development' into bookings
maillouxc Nov 18, 2017
c9f4786
Merge pull request #164 from maillouxc/bookings
maillouxc Nov 18, 2017
e87e223
Implement staff account priveleges
maillouxc Nov 18, 2017
9ca1ff8
Fix issue #73 since in two months nobody felt like it
maillouxc Nov 18, 2017
77543f3
Implement cancel booking dialog
maillouxc Nov 18, 2017
eeb8466
Implements the remove employee feature
Nov 18, 2017
2ad88fc
Implement view booking screen business logic
maillouxc Nov 18, 2017
5550cf6
Fix back button data passing on view bill screen
maillouxc Nov 18, 2017
92dac03
Fix stupid compile error
maillouxc Nov 18, 2017
bb6b57a
Fix dialog invalid booking number input
maillouxc Nov 18, 2017
163ab0c
Merge pull request #165 from maillouxc/view-booking-screen
maillouxc Nov 18, 2017
5ebbcd4
Fix deletion bug in EmployeeService
maillouxc Nov 18, 2017
61e56fe
Fix merge conflict
maillouxc Nov 18, 2017
f1fd01f
Fix Heisenbug that occurs when deleting employee account.
maillouxc Nov 18, 2017
ff16555
Merge pull request #167 from maillouxc/removeStaffFeature
maillouxc Nov 18, 2017
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
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ dependencies {
compile group: 'org.mindrot', name: 'jbcrypt', version: '0.4'
compile 'com.github.v-ladynev:fluent-hibernate-core:0.3.1'
compile group: 'com.h2database', name: 'h2', version: '1.4.196'
compile group: 'org.passay', name: 'passay', version: '1.3.0'
}

// This task builds a jar that will make our project distributable.
Expand Down
173 changes: 102 additions & 71 deletions src/main/java/com/gitrekt/resort/DatabaseTestDataLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,123 +7,130 @@
import com.gitrekt.resort.model.entities.Booking;
import com.gitrekt.resort.model.entities.Employee;
import com.gitrekt.resort.model.entities.Guest;
import com.gitrekt.resort.model.entities.Room;
import com.gitrekt.resort.model.entities.RoomCategory;
import com.gitrekt.resort.model.entities.GuestFeedback;
import com.gitrekt.resort.model.entities.MailingAddress;
import com.gitrekt.resort.model.entities.Package;
import com.gitrekt.resort.model.entities.Room;
import com.gitrekt.resort.model.entities.RoomCategory;
import com.gitrekt.resort.model.services.GuestFeedbackService;
import java.util.ArrayList;
import com.gitrekt.resort.model.services.PackageService;
import com.gitrekt.resort.model.services.RoomService;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javafx.scene.image.Image;
import javax.persistence.EntityManager;

/**
* This class is responsible for preparing the database with test data for the
* program to operate on.
*
*
* It's a temporary solution and pretty lame, but it's the fastest way to solve
* our problem and keep from hindering further progress. If time permits, we
* will try to migrate to a more permanent solution like a stored SQL script,
* but there isn't really a reason to do that right now.
*
* but there isn't really a reason to do that right now.
*
* This class is just meant to be a quick and dirty solution to the problem.
*
*
* It's also not finished. It doesn't create half of the data we need yet.
*/
public class DatabaseTestDataLoader {

public static void initializeTestData() {

// Populate database with data on all of the rooms available

// Uncomment this line later once RoomService is created
// RoomService roomService = new RoomService()

Image placeholderImg = new Image("/images/temporary_hotel_room_image_placeholder.jpg");

List<Room> rooms = new ArrayList<>();


RoomCategory basic = new RoomCategory(
"Basic",
"This room is as basic as you are. Includes complimentary bedbugs and various mystery stains on the sheets.",
placeholderImg,
"Beds not provided"
"This room is as basic as you are. Includes complimentary bedbugs "
+ "and various mystery stains on the sheets. Used needles also "
+ "included free of charge.",
"images/rooms/basic.jpg",
"Beds not provided",
100.00
);

RoomCategory familyBasic = new RoomCategory(
"Family Basic",
"With the Family basic room, you can be treated like dirt, but now with the whole family!",
placeholderImg,
"2 Queen, 2 twin"
"With the Family basic room, you can be treated like the dirt you"
+ " are, but now with the whole family!",
"images/rooms/family_basic.jpg",
"2 Queen, 2 twin",
125.99
);

RoomCategory luxury = new RoomCategory(
"Luxury",
"Because in 2017 being able to go to a resort at all is a luxury. You should be thanking us.",
placeholderImg,
"2 Queen"
"Because in 2017 being able to go to a resort at all is a luxury. "
+ "You should be thanking us.",
"images/rooms/luxury.jpg",
"2 Queen",
159.99
);

RoomCategory luxuryFamily = new RoomCategory(
"Luxury Family",
"This room is almost bearable. Too bad you have kids and you won't be able to enjoy it.",
placeholderImg,
"2 Queen, 2 twin"
"This room is almost bearable. Too bad you have kids and you won't "
+ "be able to enjoy it.",
"images/rooms/luxury_family.jpg",
"2 Queen, 2 twin",
179.67
);

RoomCategory king = new RoomCategory(
"King",
"The room that says, 'I'm better than everyone else, and I want them to know it.'",
placeholderImg,
"2 King"
"The room that says, \"I'm better than everyone else, and I want"
+ " them to know it.\" Includes access to a large arena where"
+ " basic level guests battle to the death for a small sum of"
+ "money - plus, we give you javelins to throw at the winner."
+ " Helipad access available.",
"images/rooms/king.jpg",
"2 King",
259.99
);

EntityManager entityManager = HibernateUtil.getEntityManager();

// Put the data in the database
entityManager.getTransaction().begin();

// 1st floor rooms don't exist

// 2nd floor rooms
for(int roomNumber = 200; roomNumber < 200+50; roomNumber++) {
entityManager.persist(new Room(String.valueOf(roomNumber), basic));
}

// 3rd floor rooms
for(int roomNumber = 300; roomNumber < 300+50; roomNumber++) {
Room room = new Room(String.valueOf(roomNumber), basic);
entityManager.persist(room);
}

// 4th floor rooms
for(int roomNumber = 400; roomNumber < 400+40; roomNumber++) {
Room room = new Room(String.valueOf(roomNumber), familyBasic);
entityManager.persist(room);
}

// 5th floor rooms
for(int roomNumber = 500; roomNumber < 500+30; roomNumber++) {
Room room = new Room(String.valueOf(roomNumber), luxury);
entityManager.persist(room);
}

// 6th floor rooms
for(int roomNumber = 600; roomNumber < 600+20; roomNumber++) {
Room room = new Room(String.valueOf(roomNumber), luxuryFamily);
entityManager.persist(room);
}

// 7th floor rooms
for(int roomNumber = 700; roomNumber < 700+10; roomNumber++) {
Room room = new Room(String.valueOf(roomNumber), king);
entityManager.persist(room);
}

// Generate package data.
Package package1 = new Package("Loch-Ness monster viewing", 3.50);
Package package2 = new Package("Basement tour", 10.00);
Expand All @@ -134,52 +141,76 @@ public static void initializeTestData() {
entityManager.persist(package2);
entityManager.persist(package3);
entityManager.persist(package4);

// Generate test guest data
Guest g1 = new Guest("Chris", "Mailldfghoux", "mailloux.cl@gmail.com", "239-242-4256", new MailingAddress("525 fake way", null, "33969", UsState.FLORIDA, "United States"));
Guest g2 = new Guest("Chrsfgmis", "Mailloux", "mailsfghux.cl@gmail.com", "239-242-4256", new MailingAddress("525 fake way", null, "33969", UsState.FLORIDA, "United States"));
Guest g3 = new Guest("Chris", "Mailldfghoux", "maillsfghsfghsoux.cl@gmail.com", "239-242-4256", new MailingAddress("525 fake way", null, "33969", UsState.FLORIDA, "United States"));
Guest g4 = new Guest("Chrawetis", "Mailloux", "maillojytfkdfux.cl@gmail.com", "239-242-4256", new MailingAddress("525 fake way", null, "33969", UsState.FLORIDA, "United States"));

entityManager.persist(g1);
entityManager.persist(g2);
entityManager.persist(g3);
entityManager.persist(g4);

// Generate test booking data
Calendar testCalendar = new GregorianCalendar();
Date d1 = testCalendar.getTime();
testCalendar.add(Calendar.DATE, 2);
Date d2 = testCalendar.getTime();

List<Package> testBookingPackages = new ArrayList<Package>();
testBookingPackages.add(package1);
testBookingPackages.add(package2);

Booking b = new Booking(g1, d1, d2, new Bill(), null, testBookingPackages, null);

entityManager.persist(b);


// Load test employee data
Employee e1 = new Employee(1L, "gitrekt", true, "Chris", "Mailloux");
Employee e2 = new Employee(2L, "bassface", false, "Chris", "Kael");

Employee e3 = new Employee(Long.valueOf(3),"1234", true, "Juan" , "Gomez");
Employee e4 = new Employee(Long.valueOf(4),"1234", true, "Juanito" , "Gomez");
Employee e5 = new Employee(Long.valueOf(5),"1234", false, "Juana" , "Gomez");
Employee e6 = new Employee(Long.valueOf(6),"1234", false, "Juanita" , "Gomez");
Employee e7 = new Employee(Long.valueOf(7),"1234", true, "Juanucho" , "Gomez");

entityManager.persist(e1);
entityManager.persist(e2);

// Ignore the variable name changes here, it's from a copy and paste.
entityManager.persist(e3);
entityManager.persist(e4);
entityManager.persist(e5);
entityManager.persist(e6);
entityManager.persist(e7);

entityManager.getTransaction().commit();

// Don't forget to close the entityManager when done with it
entityManager.close();

// Load test feedback data
GuestFeedbackService s = new GuestFeedbackService();
s.createNewGuestFeedback(new GuestFeedback("You suck.", "mailloux.cl@gmail.com"));
s.createNewGuestFeedback(new GuestFeedback("You suck a lot.", "mailloux.cl@gmail.com"));
s.createNewGuestFeedback(new GuestFeedback("You're the worst programmer ever and this simple feature took you all night to implement.", "mailloux.cl@gmail.com"));
s.createNewGuestFeedback(new GuestFeedback("You're bad and you should feel bad.", "mailloux.cl@gmail.com"));
// TODO: Room pricing data

createTestBookingData();
}


private static void createTestBookingData() {
EntityManager entityManager = HibernateUtil.getEntityManager();

Guest g1 = new Guest("Chris", "Mailldfghoux", "maillasdgoux.cl@gmail.com", "239-242-4256", new MailingAddress("525 fake way", null, "33969", UsState.FLORIDA, "United States"));
entityManager.persist(g1);

RoomService r = new RoomService();
List<Room> testRooms = r.getAllRoomsInCategory("Basic");
System.out.println(testRooms.size() + " Basic rooms added to test booking");

Calendar testCalendar = new GregorianCalendar();
Date d1 = new Date();
testCalendar.add(Calendar.DAY_OF_MONTH, 3);
Date d2 = testCalendar.getTime();

PackageService packageService = new PackageService();
List<Package> allPackages = packageService.getAllPackages();
Booking b1 = new Booking(g1, d1, d2, new Bill(), "you suck", allPackages, testRooms);
Booking b2 = new Booking(g1, d1, d2, new Bill(), null, null, null);

entityManager.getTransaction().begin();
entityManager.persist(b1);
entityManager.persist(b2);
entityManager.getTransaction().commit();
entityManager.close();
}

}
Loading