diff --git a/README.md b/README.md index 11328c9..d5e9850 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ While learning The Complete JavaScript Course 2022: From Zero to Expert, @@ -15,7 +15,8 @@ While learning The Complete JavaScript Course 2022: From Zero to Expert, Phase 1: [ April 2022 - June 2022] :heavy_check_mark:
Phase 2: [ June 2022 ] :heavy_check_mark:
-Phase 3: July 2022 - in development +Phase 3: [ July - August 2022 ] :heavy_check_mark:
+Phase 4: [ September - October 2022 ] :heavy_check_mark:
=> https://github.com/TeriJacobs/react-expense-tracker The functionality consists of: diff --git a/index.html b/index.html index 4300b10..7b897b5 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,6 @@
-
@@ -47,24 +46,34 @@

Welcome to your Expense Tracke
-
+

All Transactions

-
-
- -
Category
-
Date
-
Amount
-
-
-
- -
-
-
2 deposit
-
3 days ago
-
Food
-
R4 000
-
-
-
1 withdrawal
-
24/01/2037
-
Petrol
-
R -R378
-
-
+ + + + + + + + + + + + +
TypeCategoryDateAmount
-
+
@@ -135,10 +146,10 @@

Deposit income into account

- +
- +
@@ -149,7 +160,7 @@

Deposit income into account

-
+
@@ -159,7 +170,7 @@

Add an Expense to account

- @@ -170,10 +181,10 @@

Add an Expense to account

- +
- +
@@ -184,7 +195,7 @@

Add an Expense to account

- + R ${item.amount}
+ + + ` + }) + }; +} + // tracking expenditure submitExpenseBtn.addEventListener('click', function(event){ event.preventDefault(); const date = inputDateExpense.value; const amount = Number(inputAmountExpense.value); const categoryType = inputTypeExpense.value; + const trans = transactionIncome.innerHTML; + console.log(trans) + const myArray = trans.split(" "); + console.log(myArray) - if(amount > 0 && currentAccount.balance >= amount) - { - currentAccount.movements.push(-amount); - currentAccount.categoryType.push(categoryType); - currentAccount.date.push(date); - //updateUI(currentAccount); - } - - if(currentAccount.balance < amount){ - alert('Amount cannot exceed balance'); - } else if(amount <= 0){ - alert('Amount needs to be greater than 0'); - } - - // potential errors on user inputs - if(amount == 0 || amount <= -1 || isNaN(amount) ){ - alert('feild empty Enter a number greater than 0'); - return false - } - - if(date === ""){ - alert('Please enter a passed or current date'); - return false - } - - if(categoryType === "" || categoryType === "---please Select---"){ - alert('Please select a category'); - return false - } + if(amount <= 0 || date === "" || categoryType === "" ) + { + alert('Please ensure all inputs have been added'); + }else if ( myArray[1] < amount){ + alert('Input amount must be less than the income') + } else{ + let formData = JSON.parse(localStorage.getItem('formData')) || []; + let exist = formData.length && + JSON.parse(localStorage.getItem('formData')).some(data => { + data.date === inputDateExpense.value && + data.amount == Number(inputAmountExpense.value) && + data.categoryType == inputTypeExpense.value + }); + if(!exist){ + formData.push({ + date: inputDateExpense.value, + amount: Number(inputAmountExpense.value * -1), + categoryType: inputTypeExpense.value + }); + localStorage.setItem('formData', JSON.stringify(formData)); + } else { + alert('feild empty Select a date and enter a number greater than 0'); + } + } updateUI(currentAccount); formExpenses.reset(); @@ -317,7 +370,7 @@ submitDeleteBtn.addEventListener('click', function (e) { // Hide UI displayContainerApp.style.opacity = 0; loginFormDisplay.style.opacity = 0; - //alert("The user account has successfully been deleted.") + successDeleteMessage = welcomeMessage; successDeleteMessage.textContent = "The user account has been successfully been deleted." successDeleteMessage.style.color = "green"; @@ -326,4 +379,4 @@ submitDeleteBtn.addEventListener('click', function (e) { } inputAccountUsername.value = inputAccountPassword.value = ''; - }); \ No newline at end of file + }); diff --git a/styles.css b/styles.css index 22f0abb..185a410 100644 --- a/styles.css +++ b/styles.css @@ -5,33 +5,63 @@ .input-logout-btn{ opacity: 0; } +.transaction-summary-text{ + font-size:28px; +} .dot { - width: 10px; - height: 10px; + width: 15px; + height: 15px; + border-radius: 50%; + flex-grow: 0; + flex-shrink: 0; +} +.income-icon-background{ + width: 55px; + height: 55px; border-radius: 50%; flex-grow: 0; flex-shrink: 0; + background-color: rgb(129,171,221); +} +.expense-icon-background{ + width: 55px; + height: 55px; + border-radius: 50%; + flex-grow: 0; + flex-shrink: 0; + background-color: rgb(197,114,194); +} +.balance-icon-background{ + width: 55px; + height: 55px; + border-radius: 50%; + flex-grow: 0; + flex-shrink: 0; + background-color: #35b653;; +} +.bi{ + font-size:33px; } .bg-indigo { - background-color: #6610f2; + background-color: rgb(129,171,221); } .bi-wallet{ - color:#6610f2; - font-size: x-large; + color:#fff; + margin-left: 10px; } .bg-red { - background-color: #dc3545; + background-color: rgb(197,114,194); } .bi-cash-coin{ - color:#dc3545; - font-size: x-large; + color:#fff; + margin-left: 10px; } .bg-green { background-color: #35b653; } .bi-wallet2{ - color:#35b653; - font-size: x-large; + color:#fff; + margin-left: 10px; } .me-3 { margin-right: 1rem !important; @@ -39,6 +69,7 @@ .card-widget { padding: 1.5rem; border-radius: 50rem; + /* border: solid #6610f2; */ background: #fff; -webkit-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%); box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%); @@ -50,13 +81,20 @@ align-items: center; } .card-widget-income{ - background-color:rgb(102 16 242 / 5%); + /* background-color:rgb(102 16 242 / 5%); */ + border: solid rgb(129,171,221) !important; } .card-widget-expenses{ - background-color:rgb(220 53 69/ 5%); + /* background-color:rgb(220 53 69/ 5%); */ + border: solid rgb(197,114,194) !important; +} +.card-widget-close{ + /* background-color:rgb(53 182 83 / 5%); */ + border: solid rgb(220 53 69)!important; } -.card-widget-balance{ - background-color:rgb(53 182 83 / 5%); +.card-widget-transactions{ + /* background-color:rgb(53 182 83 / 5%); */ + border: solid rgb(53 182 83 / 45%); } .card { position: relative; @@ -89,7 +127,15 @@ flex: 1 1 auto; padding: 2rem; } - +.input-income-border{ + border: solid rgb(129 171 221 / 85%) !important; +} +.expense-income-border{ + border: solid rgb(197,114,194) !important; +} +.input-account-border{ + border: solid rgb(220 53 69)!important; +} /* Listed Transactions on Account */ .container-movements { overflow: auto;