diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5f7e6b02..a572c7de 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/user-event": "^13.5.0", "axios": "^1.2.0", "chart.js": "^4.0.1", + "csv": "^6.2.5", "react": "^18.2.0", "react-chartjs-2": "^5.0.1", "react-dom": "^18.2.0", @@ -6333,6 +6334,35 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, + "node_modules/csv": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/csv/-/csv-6.2.5.tgz", + "integrity": "sha512-T+K0H7MIrlrnP6KxYKo3lK+uLl6OC2Gmwdd81TG/VdkhKvpatl35sR7tyRSpDLGl22y2T+q9KvNHnVtn4OAscQ==", + "dependencies": { + "csv-generate": "^4.2.1", + "csv-parse": "^5.3.3", + "csv-stringify": "^6.2.3", + "stream-transform": "^3.2.1" + }, + "engines": { + "node": ">= 0.1.90" + } + }, + "node_modules/csv-generate": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-4.2.1.tgz", + "integrity": "sha512-w6GFHjvApv6bcJ2xdi9JGsH6ZvUBfC+vUdfefnEzurXG6hMRwzkBLnhztU2H7v7+zfCk1I/knnQ+tGbgpxWrBw==" + }, + "node_modules/csv-parse": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.3.3.tgz", + "integrity": "sha512-kEWkAPleNEdhFNkHQpFHu9RYPogsFj3dx6bCxL847fsiLgidzWg0z/O0B1kVWMJUc5ky64zGp18LX2T3DQrOfw==" + }, + "node_modules/csv-stringify": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.2.3.tgz", + "integrity": "sha512-4qGjUMwnlaRc00gc2jrIYh2w/h1fo25B0mTuY9K8fBiIgtmCX3LcgUbrEGViL98Ci4Se/F5LFEtu8k+dItJVZQ==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -15219,6 +15249,11 @@ "node": ">= 0.8" } }, + "node_modules/stream-transform": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-3.2.1.tgz", + "integrity": "sha512-ApK+WTJ5bCOf0A2tlec1qhvr8bGEBM/sgXXB7mysdCYgZJO5DZeaV3h3G+g0HnAQ372P5IhiGqnW29zoLOfTzQ==" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 1945c1c1..b62e9b80 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,6 +9,7 @@ "@testing-library/user-event": "^13.5.0", "axios": "^1.2.0", "chart.js": "^4.0.1", + "csv": "^6.2.5", "react": "^18.2.0", "react-chartjs-2": "^5.0.1", "react-dom": "^18.2.0", diff --git a/frontend/src/components/finance.js b/frontend/src/components/finance.js index d17ac4be..48dc24db 100644 --- a/frontend/src/components/finance.js +++ b/frontend/src/components/finance.js @@ -21,11 +21,13 @@ ChartJS.register( Tooltip, Legend ); +import tempData from "../data/jan16.csv"; class Finance extends React.Component { constructor(props) { super(props); const labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + this.csvData = csvToArray(tempData); this.state = { labels, datasets: [ @@ -52,6 +54,13 @@ class Finance extends React.Component { } + csvToArray(str, delimiter = ",") { + let array = str.split("\\r\\n").map((line) => { + return line.split(delimiter); + }); + + return array; +} diff --git a/frontend/src/data/jan16.csv b/frontend/src/data/jan16.csv new file mode 100644 index 00000000..1012aa85 --- /dev/null +++ b/frontend/src/data/jan16.csv @@ -0,0 +1,27 @@ +Date,Description,Original Description,Category,Amount,Status +2023-01-15,"H-E-B #717","H-E-B #717",Category Pending,-38.09,Pending +2023-01-14,"USAA Credit Card","USAA CREDIT CARD PAYMENT SAN ANTONIO TX",Transfer,2212.90,Posted +2023-01-13,"Kung Fu China Express","KUNG FU CHINA EXPRESS MIDLAND TX",Restaurants,-13.52,Posted +2023-01-11,"H-E-B","H-E-B #717 MIDLAND TX",Groceries,-26.41,Posted +2023-01-11,"H-E-B","H-E-B GAS #717 MINDLAND TX",Gas,-29.69,Posted +2023-01-09,"Crisp Garden","CRISP GARDEN MIDLAND TX",Restaurants,-95.00,Posted +2023-01-09,"Amara Gelato","SQ *AMARA GELATO Midland TX",Groceries,-5.80,Posted +2023-01-09,"Whataburger","WHATABURGER 297 Q26 432-697-4184 TX",Fast Food,-20.55,Posted +2023-01-09,"United","UNITED 0162457705155800-932-2732 TX",Air Travel,-1463.95,Posted +2023-01-09,"Travel Guard Group Inc","TRAVEL GUARD GROUP INC 800-826-1300 WI",Travel,-106.14,Posted +2023-01-07,"H-E-B","H-E-B #717 MIDLAND TX",Groceries,-40.12,Posted +2023-01-07,"H-E-B","H-E-B #717 MIDLAND TX",Groceries,-12.26,Posted +2023-01-06,"Sport Clips","SPORT CLIPS - TX730 - MIDMIDLAND TX",Hair,-57.00,Posted +2023-01-06,"Tokyo","TOKYO 1 MIDLAND TX",Restaurants,-87.60,Posted +2023-01-04,"H-E-B","H-E-B #717 MIDLAND TX",Groceries,-39.99,Posted +2023-01-03,"USAA Credit Card","USAA CREDIT CARD PAYMENT SAN ANTONIO TX",Transfer,1956.19,Posted +2023-01-03,"H-E-B","H-E-B #717 MIDLAND TX",Groceries,-15.00,Posted +2023-01-02,"Holiday Inn Express","HOLIDAY INN EXPRESS GREENVILLE TX",Hotel,-117.01,Posted +2023-01-02,"Love's Travel Stops","LOVE'S #610 BAIRD TX",Gas,-24.82,Posted +2023-01-02,"Love's Travel Stops","LOVE'S #610 BAIRD TX",Gas,-10.97,Posted +2023-01-01,"Love's Travel Stops","LOVE'S #279 MOUNT VERNON TX",Gas,-28.83,Posted +2023-01-01,"Casey's","CASEYS #2413 ELDORADO IL",Gas,-24.97,Posted +2023-01-01,"Burger King","BURGER KING #20671 GREENVILLE TX",Fast Food,-11.79,Posted +2023-01-01,"Pilot Flying J","PILOT 00005710 CHARLESTON MO",Gas,-7.01,Posted +2023-01-01,"ExxonMobil","EXXONMOBIL 42384735 PROCTOR AR",Gas,-23.83,Posted +2023-01-01,"Marathon","MARATHON PETRO86439 EVANSVILLE IN",Gas,-29.00,Posted