Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/slashton80/japanese_restaurant

A Java application demonstrating database connectivity using JDBC, MySQL, and XAMPP. Includes features for creating, inserting, and querying data, with a focus on integrating Java with relational databases.
https://github.com/slashton80/japanese_restaurant

console-application crud-application dependencies html-css-javascript java jdbc junit mvc mysql-database object-oriented-programming springboot xampp-server

Last synced: 4 days ago
JSON representation

A Java application demonstrating database connectivity using JDBC, MySQL, and XAMPP. Includes features for creating, inserting, and querying data, with a focus on integrating Java with relational databases.

Awesome Lists containing this project

README

        

## About the Project
This project was developed as part of my CIS coursework at Holland College PEI in 2024. We worked in a group of three to complete this project, with each member playing a specific role. I served as the **Lead Developer**, where I was tasked with implementing the Japanese Restaurant system based on the idea presented by our **Business Client**, Nguyen Nguyen. Additionally, I contributed as a **Quality Assurance (QA)** tester for another teammate's project.

This project was an excellent demonstration of teamwork and collaboration. It also introduced us to **source control and project management tools**, such as **Bitbucket**, **Jira**, and **Sourcetree**, which we used extensively to manage our codebase, track tasks, and maintain version control throughout the development process.

Some of the code was adapted from BJ MacLean's examples.

---
# Advanecd Java Project: Japanese Restaurant #
---

## Development Team ##
Business Client: Nguyen Nguyen


Lead Developer: Sherri Ashton


Quality Control: Vy Phan




The project: This project Japanese Restaurant belongs to Nguyen Nguyen.

---

## Description ##
**A Culinary Journey: Our All - You - Can - Eat - Japanese Restaurant**



Our Japanese restaurant offers an authentic dining experience that will transport you to the Land of the Rising Sun. With a commitment to using the freshest ingredients and traditional cooking techniques, we strive to create dishes that are both delicious and visually stunning.



Our menu features a wide variety of Japanese specialties, from classic sushi and sashimi to hearty ramen and savory tempura. For those seeking a more substantial meal, our ramen dishes are packed with flavorful broth, tender noodles, and a variety of toppings.



**A Seamless Reservation Experience**



To make your dining experience even more enjoyable, we offer a convenient online reservation system. Simply visit our website and select your desired date, time, and number of guests. Once you've submitted your reservation, you'll receive a confirmation email, ensuring that your booking is secure.



**Exclusive Offers and Discounts**



To make your reservation even more rewarding, we offer a variety of coupons and discounts that can be applied to your online booking. Whether you're looking for a discount on your total bill or a complimentary appetizer, our coupons provide a great way to save money and enhance your dining experience.



We understand that unexpected changes can sometimes occur, so we offer a flexible cancellation policy. If you need to cancel your reservation, simply contact us directly and we'll do our best to accommodate your request.



By choosing to make your reservation online, you're not only ensuring a hassle-free dining experience but also taking advantage of exclusive offers and discounts. We look forward to welcoming you to our restaurant and providing you with an unforgettable culinary journey.

---

## Color ##
--main-color-grey: #9c9a9a;

--main-color-primary: #d1a36e;

--main-color-white: #f9f4ef;

--main-color-text: #fa8072;

--main-color-bright: #ffffff;

--main-color-container: #e4ddd6;


---
## Required Fields ##
This will be a list of fields and their datatype (class design format). There are expected to be a minimum of six fields.

id: int - Unique id Assigns ID for every reservation

name: String - Name of the person who books

numberOfSeniors: int - Number of seniors that will attend

numberOfChildren: int - Number of children that will attend

numberOfAdults: int - Number of adults that will attend

couponDiscount -double - 30% off the bill
entryCostPerCustomer - int - $25 for each customer

date: LocalDateTime - The date and time of the reservation

email: String Email - address of the person who books
bill: double - Final bill according to how many customers attend and if they have discounts (see calculation)
childrenDiscount -double - 20% off the bill

seniorDiscount - double - 15% off the bill

---
## Calculation ##

Entry Cost per Customer: Every customer has a base entry cost of $25. This means, for each customer attending, the total bill starts by multiplying the number of customers by this base cost.

Discounts for Children and Seniors: If there are children or seniors attending, they receive special discounts on their portion of the bill.

Children receive a 20% discount.

Seniors receive a 15% discount.

Regular Adult Customers: Any adults attending without a discount will simply pay the full entry cost of $25.

Applying a Coupon Discount: If a coupon is applied, it will reduce the total bill by 30%. The final bill is calculated by subtracting 30% from the total.

---
## Report Details ##
The report allows users to retrieve reservations based on a specified time period.

DAO Class:

Complete the DAO class to fetch reservation data from the database using JDBC.
User Input View:
Develop an input form for users to enter a start and end date for the report.



Controller Class:

Created a controller to manage user inputs, process report logic, and display results.
Results View:

Designed a view to show the report results along with the input criteria.



File Output:

Implemented functionality to save report results to a file in the c:\cis2232\ directory, with a naming convention that includes the report type and current date (e.g., ReservationsForPeriodYYYYMMDDHHMM.txt).

---
## Sprints and Assignment 4 ##

### Sprint 1

- Initial version of the project created and checked into Bitbucket.

- Project name updated, and context path set.

- README created with project information, formatted neatly.

- Repository access granted to the learning manager.

- Team members added as collaborators.

- Color scheme implemented and demonstrated in the project.

### Sprint 2

- Report functionality implemented, as specified in the README.

- JDBC used for fetching input and output result sets.

- Report content written to a file in the specified format.

### Sprint 3

- Added list page functionality to the web application.

- Calculations completed when add/edit is submitted, showing detailed results to the user.

- Implemented functionality for adding, updating, and deleting entries in the web application.

- Enabled Spring validation for adding new entries.

### Sprint 4

- REST services implemented to provide JSON data.

- Clients set up to call the REST services.

- Standard response codes implemented, including error handling for invalid inputs.

- Services provided for fetching all records, selecting one record, and performing create, update, and delete operations.

- SOAP service implemented to fetch a single entity by ID, along with a client to call the service.

### Sprint 5

- Added search functionality to allow searching by non-primary keys on the list page. In this case by a name.

- Business validation rules implemented - validates date is not in the past for making reservations, having at least a senior or adult book and no children can be booked without an adult or senior.

- Unit tests created for calculation methods and input validation.

- Demo provided showcasing full application functionality.

- Repository, documentation, and project code reviewed for quality assurance.

### Assignment 4: External API Access

- Integrated an external API to fetch additional information.

- Java client implemented to call the API.

- Web application modified to display results from the API call.

---