diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4b151ab..de5c651 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,14 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java
deleted file mode 100644
index 435139b..0000000
--- a/src/main/java/org/codedifferently/Main.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.codedifferently;
-
-//TIP To Run code, press or
-// click the icon in the gutter.
-public class Main {
- public static void main(String[] args) {
- //TIP Press with your caret at the highlighted text
- // to see how IntelliJ IDEA suggests fixing it.
- System.out.printf("Hello and welcome!");
-
- for (int i = 1; i <= 5; i++) {
- //TIP Press to start debugging your code. We have set one breakpoint
- // for you, but you can always add more by pressing .
- System.out.println("i = " + i);
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/org/codedifferently/bobby/Coffee.java b/src/main/java/org/codedifferently/bobby/Coffee.java
new file mode 100644
index 0000000..d08cfb6
--- /dev/null
+++ b/src/main/java/org/codedifferently/bobby/Coffee.java
@@ -0,0 +1,38 @@
+package org.codedifferently.bobby;
+
+public class Coffee {
+
+ private String name;
+ private double cost;
+ private boolean isDrink;
+
+ public Coffee(String name, double cost, boolean isDrink) {
+ this.name = name;
+ this.cost = cost;
+ this.isDrink = isDrink;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public double getCost() {
+ return cost;
+ }
+
+ public boolean getIsDrink() {
+ return isDrink;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setCost(double cost) {
+ this.cost = cost;
+ }
+
+ public void setIsDrink(boolean isDrink) {
+ this.isDrink = isDrink;
+ }
+}
diff --git a/src/main/java/org/codedifferently/bobby/Customer.java b/src/main/java/org/codedifferently/bobby/Customer.java
new file mode 100644
index 0000000..f30e2a1
--- /dev/null
+++ b/src/main/java/org/codedifferently/bobby/Customer.java
@@ -0,0 +1,59 @@
+package org.codedifferently.bobby;
+
+public class Customer {
+private String custName;
+private String custEmail;
+private int numberOfDrinks;
+
+public Customer(){
+this.custName = "";
+this.custEmail= "";
+this.numberOfDrinks = 0;
+
+
+}
+public Customer(String custName, String custEmail){
+ this.custName = custName;
+ this.custEmail = custEmail;
+this.numberOfDrinks = 0;
+}
+
+public String getCustName(){
+ return custName;
+ }
+
+ public String getCustEmail(){
+ return custEmail;
+}
+
+public int getNumberOfDrinks(){
+ return numberOfDrinks;
+}
+
+
+public void setCustName(String custName){
+ this.custName = custName;
+ }
+
+ public void setCustEmail(String custEmail){
+ this.custEmail = custEmail;
+}
+public void setNumberOfDrinks(int numberOfDrinks){
+ this.numberOfDrinks = numberOfDrinks;
+}
+public void addDrink(){
+
+ this.numberOfDrinks++;
+}
+public boolean rewardsEligible(){
+
+ return numberOfDrinks>=5;
+}
+
+
+public void drinksReset(){
+ this.numberOfDrinks = 0;
+}
+
+}
+
diff --git a/src/main/java/org/codedifferently/bobby/Main.java b/src/main/java/org/codedifferently/bobby/Main.java
new file mode 100644
index 0000000..7df6fc7
--- /dev/null
+++ b/src/main/java/org/codedifferently/bobby/Main.java
@@ -0,0 +1,178 @@
+package org.codedifferently.bobby;
+
+import java.util.Scanner;
+
+public class Main {
+
+ public static void main(String[] args) {
+
+ Scanner input = new Scanner(System.in);
+ boolean storeIsOpen = true;
+ boolean isRewardsMember;
+
+ // -------- MENU --------
+ Coffee latte = new Coffee("Medium Latte", 3.35, true);
+ Coffee espresso = new Coffee("Medium Espresso", 3.40, true);
+ Coffee latteLarge = new Coffee("Large Latte", 4.79, true);
+ Coffee espressoLarge = new Coffee("Large Espresso", 4.99, true);
+ Coffee cupOfJoe = new Coffee("Regular Cup of Joe", 2.60, true);
+ Coffee bagel = new Coffee("Sliced Bagel", 2.00, false);
+ Coffee pastry = new Coffee("Pastry", 4.40, false);
+
+ // -------- SALES --------
+ Sales sales = new Sales();
+
+ // -------- PRELOADED MEMBER --------
+ Customer bobby = new Customer();
+ bobby.setCustName("Bobby");
+ bobby.setCustEmail("bobby@gmail.com");
+ bobby.setNumberOfDrinks(4); // close to free drink for testing
+
+ while (storeIsOpen) {
+
+ System.out.println("\nWelcome to Triple C's!");
+
+ // -------- MEMBER CHECK --------
+ while (true) {
+ System.out.print("Are you a rewards member? (yes/no): ");
+ String memberAnswer = input.nextLine().toLowerCase();
+
+ if (memberAnswer.equals("yes")) {
+ isRewardsMember = true;
+ break;
+ }
+ else if (memberAnswer.equals("no")) {
+ isRewardsMember = false;
+ break;
+ }
+ else {
+ System.out.println("Please answer yes or no.");
+ }
+ }
+
+ Customer currentCustomer = null;
+
+ if (isRewardsMember) {
+ currentCustomer = bobby;
+ System.out.println("Welcome back " + currentCustomer.getCustName());
+ }
+ else {
+
+ while (true) {
+ System.out.print("Would you like to join rewards? (yes/no): ");
+ String join = input.nextLine().toLowerCase();
+
+ if (join.equals("yes")) {
+
+ currentCustomer = new Customer();
+
+ System.out.print("Enter name: ");
+ currentCustomer.setCustName(input.nextLine());
+
+ System.out.print("Enter email: ");
+ currentCustomer.setCustEmail(input.nextLine());
+
+ break;
+ }
+ else if (join.equals("no")) {
+ break;
+ }
+ else {
+ System.out.println("Please answer yes or no.");
+ }
+ }
+ }
+
+ sales.newCustomer();
+ double transactionTotal = 0;
+ boolean ordering = true;
+
+ // -------- ORDER LOOP --------
+ while (ordering) {
+
+ System.out.println("\nMENU");
+ System.out.println("1. Medium Latte - $3.35");
+ System.out.println("2. Medium Espresso - $3.40");
+ System.out.println("3. Large Latte - $4.79");
+ System.out.println("4. Large Espresso - $4.99");
+ System.out.println("5. Cup of Joe - $2.60");
+ System.out.println("6. Bagel - $2.00");
+ System.out.println("7. Pastry - $4.40");
+ System.out.println("0. Finish Order");
+ System.out.print("Choose an option: ");
+
+ int choice;
+
+ while (true) {
+ String choiceInput = input.nextLine();
+
+ if (choiceInput.matches("[0-7]")) {
+ choice = Integer.parseInt(choiceInput);
+ break;
+ }
+ else {
+ System.out.print("Please enter a number 0–7: ");
+ }
+ }
+
+ Coffee selected = null;
+
+ switch (choice) {
+ case 1 -> selected = latte;
+ case 2 -> selected = espresso;
+ case 3 -> selected = latteLarge;
+ case 4 -> selected = espressoLarge;
+ case 5 -> selected = cupOfJoe;
+ case 6 -> selected = bagel;
+ case 7 -> selected = pastry;
+ case 0 -> ordering = false;
+ }
+
+ if (!ordering || selected == null) continue;
+
+ sales.soldDrink();
+
+ boolean freeDrink = currentCustomer != null
+ && selected.getIsDrink()
+ && currentCustomer.rewardsEligible();
+
+ if (freeDrink) {
+ System.out.println(selected.getName() + " is FREE!");
+ currentCustomer.drinksReset();
+ }
+ else {
+ System.out.println("Added: " + selected.getName());
+ transactionTotal += selected.getCost();
+ sales.addCost(selected.getCost());
+
+ if (currentCustomer != null && selected.getIsDrink()) {
+ currentCustomer.addDrink();
+ }
+ }
+ }
+
+ // -------- GOLDEN TICKET --------
+ if (currentCustomer != null && transactionTotal > 20) {
+ System.out.println("Golden Ticket bonus progress!");
+ currentCustomer.addDrink();
+ }
+
+ // -------- RECEIPT --------
+ System.out.printf("\nTotal: $%.2f\n", transactionTotal);
+
+ if (currentCustomer != null) {
+ System.out.println("Drinks toward reward: " +
+ currentCustomer.getNumberOfDrinks());
+ }
+
+ System.out.print("\nAnother customer? (yes/no): ");
+ storeIsOpen = input.nextLine().equalsIgnoreCase("yes");
+ }
+
+ // -------- DAILY SUMMARY --------
+ System.out.println("\n--- Daily Sales Summary ---");
+ System.out.println("Customers served: " + sales.getTotalCustomers());
+ System.out.println("Drinks sold: " + sales.getDrinksSold());
+ System.out.printf("Total revenue: $%.2f\n", sales.getTotalRevenue());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/codedifferently/bobby/Sales.java b/src/main/java/org/codedifferently/bobby/Sales.java
new file mode 100644
index 0000000..a5c3e28
--- /dev/null
+++ b/src/main/java/org/codedifferently/bobby/Sales.java
@@ -0,0 +1,32 @@
+package org.codedifferently.bobby;
+
+public class Sales {
+ private int drinksSold = 0;
+ private double totalRevenue = 0.0;
+ private int totalCustomers = 0;
+
+ public void soldDrink(){
+
+ drinksSold++;
+ }
+
+public void newCustomer(){
+ totalCustomers++;
+}
+public void addCost(double amount){
+
+ totalRevenue += amount;
+}
+
+public int getDrinksSold(){
+ return drinksSold;
+}
+
+public int getTotalCustomers(){
+ return totalCustomers;
+}
+
+public double getTotalRevenue(){
+ return totalRevenue;
+}
+}
\ No newline at end of file