Design the structure of your program

Assignment Help Computer Engineering
Reference no: EM133696394

Advanced Programming

Assignment - As part of Assignmrnt 2 you are expected to push you code to a Gihub repository regularly (at least after evey significant code update. Basic introductions to using Github are here:

Make your repository "private" so not everyone can access your code but please do share it with the teaching staff. Use just the simplest features, don't worry about branching or forking, just create a basic repository and update files as you make changes to them.

Submit a single zip file containing:

ALL your code and libraries, in its package hierarchy, so it can easily uploaded into Eclipse or IntelliJ a link to your Github repository (make sure Lawrence and the other teaching staff ALL have persmission to access it)

a SHORT README doc with the following information: the IDE used the Java version you used, the JavaFX version used, the database used (if one was used) short, CLEAR directions on how to INSTALL and RUN your code a class diagram or other description of your OO design

Introduction

You are required to implement a basic Java program using Java SE 17 or later. This assignment is designed to:
Evaluate your ability to develop desktop applications using JavaFX.
Evaluate your skills in storing persistent copy of data.
Test your knowledge to implement OO design patterns.

Background
This assignment builds on Assignment 1. You will build a GUI application for Burrito King Restaurant. The core business logic (e.g., adding orders, calculating preparation time, printing out sales report) remains the same as for Assignment 1. For Assignment 2, suppose you are a customer of the restaurant, not the manager. A sample solution of Assignment 1 will be provided, which you can use as reference.

Task Specifications

Basic functional requirements are listed below.

The application can have many users.

Each user can create a profile, with a unique username, password, and first and last name.

Once the username and password are created, the user can log in.

Each user is shown a dashboard after login. The dashboard should display the user's first name, last name, and any active order that has not been picked up by the user. For each active order displayed in the dashboard, show an order summary, including order number, ordered food items, total price, and order status (See below).

Each user can perform the following actions:

Edit profile (change first name/last name/password, username is not changeable)
Add food items to shopping basket. The program can guide the user to place the order by selecting food items (burritos, fries, and soda) and specifying quantity. The program allows the user to update the shopping basket (e.g., removing food items, updating quantity) as long as the user has not checked out.

Place a new restaurant order. A user will be notified of the total price and the waiting time before placing the order. Once confirmed by the user, proceed to payment, where you collect (fake) credit card information (card number, expiry date, and cvv). (Do not use real credit card numbers!) You will need to perform simple validation to check (1) if the card number has 16 digits; (2) if the expiry date is a future date; (3) if cvv has 3 digits. For simplicity, you can assume the payment will be successful. Once an order is placed, a unique order number will be generated and assigned. The GUI should also ask the user to specify a "fake" time at which the order is placed.

View all orders. The user can view the following details of all orders: day and time that the order was placed, total price of the order, and status of the orders. The status can be "await for collection", "collected" and "cancelled". The orders should be displayed in the reverse order of time they were placed.

Collect an order. This will move an order status from "placed" to "collected". The GUI must allow the user to enter a "fake" time at which the order is collected. Note that collect-time must be at least order-placed time + time to prepare. An order that has been cancelled can not be collected.

Cancel an order. A user can cancel an order that has not been "collected". After an order has been cancelled it can no longer be "collected".

Export all orders. The user should be able to export the historical orders to a file. The user should be able to select which orders to export. The user should be able to select the destination of the file and specify the file name. The user should be able to select what order information (e.g., ordered items or price) to be exported. The saved file should be in csv format.

Log out.

There are more advanced features for VIP users. When a new user is registered, the user is a non-VIP user by default. Once a non-VIP user logs in, the user has the option of upgrading to a VIP user. To upgrade, the application asks if the user agrees to receive promotions:

Would you like to receive promotion information via email?
The user will become a VIP once they agree and provide a valid email address. Then the user can

access VIP functionalities:
Please log out and log in again to access VIP functionalities.
A VIP user has the following additional functionalities:

Ordering a meal (a burrito, one serve of fries, and a soda), with a discount of $3.

Collecting credits for all orders. The user can earn one credit for each dollar spent.

Use credits when paying for orders. The program should ask the user if he/she wants to redeem credits when checking out. If yes, ask the user to specify the number of credits to redeem. Every 100 credits can be used as one dollar. If credits are redeemed in payment, the final order price of this order should be recorded as the actual amount paid by user. In other functionalities, the final order price will be used. For example, when "Viewing all orders", user will only see the actual price paid for that order. In "Collecting credits", the user can collect credits for the actual paid amount.

Assessment Details

This assignment is structured around three milestones: in-lab design check in week 10, full program submission in week 12, and post-submission interview in week 14. It is recommended for you to follow the stages below to incrementally build the GUI application. But you can also plan the work in your own way, i.e., you do not have to do the tasks in the order listed.

Setup

You will use GitHub to store program code in this assignment. To get started, accept the assignment invitation
Instructions to create a git repository and upload your project to GitHub will posted in GitHub.pdf from Canvas -> Assignment 2. Throughout the program development, you will need to make regular commitments to GitHub (any time you make changes to your code) to facilitate transparency in the development process. Note that GitHub is easily integrated with Eclipse.

Part A (In-Lab design milestone - Week 10)

This milestone aims to assess your ability to define classes, establish relationships among them, and create a blueprint for the program's implementation. For this milestone, you are required to design the structure of your program. Specifically, you need to identify the necessary classes required for your application. For each class, you need to identify key data attributes and methods. You also need to determine the relationships among the classes (e.g., association, aggregation, composition, and inheritance). For this milestone, you will prepare a documentation of your program design with a clear description of classes and class relationships. While you don't need to strictly follow this design as you progress to later stages, you should propose a program design that reflects your current understanding to the best of your ability at this stage. You may use UML notation if you are familiar with that (e.g., from SEF) or you may just provide skeleton class definitions in Java.

Part B

Following your class design in 5.2 Part A, you will work on the backend part of the application (excluding data storage, which will be covered in Part D). You will implement the key functionalities mentioned in the task specification based on Assignment 1.

Part C

You will work on the frontend part of the application in this stage. You will design the user interface of the program that serves the program functionality. You will connect the frontend with the key functionalities from Part B, e.g., rendering data in a clean, concise, user-friendly format in the graphical interface.

Part D (Full program submission - Week 12)

You will connect the front-end and back-end to build a functional program. You will use JDBC to store program data, so that the application can be restarted in the same state it was in the end of the previous execution. You will incorporate OO principles to design and optimize classes.

Part E (Post-submission interview - Week 13 and 14)

You will be interviewed after program submission. During the interview, you will demonstrate the functionality and GUI design of your program. In addition, it is crucial for you to demonstrate your programming skills by clearly explaining how you design the program and implement different functionalities. The interviews will be performed via Teams; the teaching team will advertise signup sheets at end of semester for students to nominate day-time preferences. Note students cannot obtain marks for their GUI and Functionality Sif they do not attend an interview.

Reference no: EM133696394

Questions Cloud

You empower the person to identify and prioritise needs : Describe an assistance that you may seek from colleagues and experts. How can you empower the person to identify and prioritise the needs?
Analyze the solution using decision criteria : Will you use the evidence to describe the solution, analyze the solution using decision criteria, or discuss the solution's feasibility in the community?
When caring for individual who uses medical device : When caring for an individual who uses a medical device that can create a pressure injury, what is the best action to take?
How effective teams overcome common barriers of success : How do effective teams overcome the common barriers and challenges of success? Are leaderless teams effective? Be specific.
Design the structure of your program : Advanced Programming, RMIT University - Design the structure of your program. Specifically, you need to identify the necessary classes required for your
How you plan to overcome obstacles and navigate challenges : Share how you plan to overcome obstacles and navigate challenges using your strengths in the PBL approach.
Health belief model addresses perceived risk overdose : The Health Belief Model addresses perceived risk overdose, severity consequences for mother and baby, and benefits of quitting improved health
Toxicity and burnout : You all hit the nail on the head with regard to the correlation b/w toxicity and burnout. How can this knowledge help inform your future career choices
How to conduct a windshield survey : Conduct a windshield survey of the community San Diego california. Identify formal and informal services, as well as problems and issues.

Reviews

Write a Review

Computer Engineering Questions & Answers

  Using the command prompt create two script files into one

Student will developed a simple 3-6 line code script file. Using the command prompt, create two script files into one. Screenshot results.

  Define the type of input data used

express the type of input data used for a business related function.

  How are ip addresses used for communication purpose

How are IP addresses used for communication purpose over the internet. what are some of the future challenges faced with using IPv6

  Write test cases for testing money withdrawal from an atm

Write test cases for testing money withdrawal from an ATM machine. covering a positive scenario. covering a negative scenario

  Write a program to implement dynamic motion specifications

Write a program to implement dynamic motion specifications. Specify a scene with two or more objects, initial motion parameters, and specified forces.

  What type of information is typically provided in the record

During a search, you found a cloud service bug record to review. What type of information is typically provided in the record?

  Describes the behaviour of the checkout system

Design and model two classes: Product and CheckoutRegister. Create an activity chart which describes the behaviour of the checkout system.

  What are the safety requirements which must be considered

Which equipment and utensils would be required to complete this task including de-boning and cutting the whole chicken? What are the safety requirements

  Different computer chip set architectures

Computer chip set architectures (Intel 80x86, ARM, MIPS R4000, Motorola, etc). Give their similarities and differences of these architectures

  Why is it important to recycle printer cartridges

Find a store that is willing to accept empty cartridges and offer discounts on the purchase of new cartridges.

  Describe each approach and compare their relative merits

What approaches are there to distinguish an OS process from other user processes. Briefly describe each approach and compare their relative merits.

  Why didn''t the vendor just bid fewer disks

Why didn't the vendor just bid fewer disks

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd