-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Edward C
committed
Oct 17, 2021
0 parents
commit cda57e8
Showing
135 changed files
with
30,281 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
[![Netlify Status](https://api.netlify.com/api/v1/badges/567f877d-68aa-4dac-a323-0fb289d1c73e/deploy-status)](https://app.netlify.com/sites/vigilant-goldwasser-9ac664/deploys) | ||
|
||
# apollobank 🚀 | ||
|
||
A fullstack GraphQL banking application built using React, Node & TypeScript. | ||
|
||
## What's included? | ||
|
||
- Login/register | ||
- Dashboard | ||
- Accounts | ||
- Transactions | ||
- Credit cards | ||
- Settings | ||
- Spending for this month chart | ||
- Dummy data generator using faker | ||
|
||
![dashboard](images/dashboard.png) | ||
|
||
## Technologies used | ||
|
||
### Server side | ||
|
||
- Apollo Server | ||
- bcryptjs | ||
- cors | ||
- Express | ||
- GraphQL | ||
- faker | ||
- jsonwebtoken | ||
- TypeGraphQL | ||
- TypeORM | ||
- TypeScript | ||
- PostgreSQL | ||
|
||
### Client side | ||
|
||
- Apollo React Hooks | ||
- FontAwesome Icons | ||
- Material UI | ||
- Recharts | ||
- Formik | ||
- Yup | ||
|
||
## Todo | ||
|
||
- [ ] Don't allow the user to destroy an account if they are in debt or their account balance > 0 | ||
- [ ] When deleting and destroying an account, alert the user with another dialog to check if they would like to proceed with this action. | ||
- [ ] Update the chart on the dashboard to show spending such that the y axis is the users account balance. | ||
- [ ] Sort transactions by date & sort chart data by date. | ||
- [ ] Fetch exchange rates from an API. | ||
|
||
Flag icons made by <a href="https://www.flaticon.com/authors/freepik" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon"> www.flaticon.com</a> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
REACT_APP_SERVER_URL=http://localhost:4000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
REACT_APP_SERVER_URL=https://apollo-bank.herokuapp.com |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# # production | ||
# /build | ||
|
||
# misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"semi": true, | ||
"singleQuote": true, | ||
"tabWidth": 4, | ||
"useTabs": false, | ||
"printWidth": 100, | ||
"trailingComma": "all" | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/* /index.html 200 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"files": { | ||
"main.css": "/static/css/main.3609ce2a.chunk.css", | ||
"main.js": "/static/js/main.161267fe.chunk.js", | ||
"main.js.map": "/static/js/main.161267fe.chunk.js.map", | ||
"runtime-main.js": "/static/js/runtime-main.844668cf.js", | ||
"runtime-main.js.map": "/static/js/runtime-main.844668cf.js.map", | ||
"static/js/2.76c6d5bb.chunk.js": "/static/js/2.76c6d5bb.chunk.js", | ||
"static/js/2.76c6d5bb.chunk.js.map": "/static/js/2.76c6d5bb.chunk.js.map", | ||
"index.html": "/index.html", | ||
"precache-manifest.1f2247de76a6c560e3bc294074f75a8b.js": "/precache-manifest.1f2247de76a6c560e3bc294074f75a8b.js", | ||
"service-worker.js": "/service-worker.js", | ||
"static/css/main.3609ce2a.chunk.css.map": "/static/css/main.3609ce2a.chunk.css.map", | ||
"static/js/2.76c6d5bb.chunk.js.LICENSE.txt": "/static/js/2.76c6d5bb.chunk.js.LICENSE.txt", | ||
"static/media/flag.36ab476e.svg": "/static/media/flag.36ab476e.svg", | ||
"static/media/mc_symbol.543bc93b.svg": "/static/media/mc_symbol.543bc93b.svg", | ||
"static/media/uk.e5564902.svg": "/static/media/uk.e5564902.svg", | ||
"static/media/world.7aea52bb.svg": "/static/media/world.7aea52bb.svg" | ||
}, | ||
"entrypoints": [ | ||
"static/js/runtime-main.844668cf.js", | ||
"static/js/2.76c6d5bb.chunk.js", | ||
"static/css/main.3609ce2a.chunk.css", | ||
"static/js/main.161267fe.chunk.js" | ||
] | ||
} |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link href="https://fonts.googleapis.com/css?family=Lato|Montserrat|Roboto|Source+Sans+Pro|Ubuntu&display=swap" rel="stylesheet"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Apollo Bank - Banking made easy.</title><link href="/static/css/main.3609ce2a.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,l,i=t[0],f=t[1],a=t[2],p=0,s=[];p<i.length;p++)l=i[p],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,i=1;i<r.length;i++){var f=r[i];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=l(l.s=r[0]))}return e}var n={},o={1:0},u=[];function l(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,l),r.l=!0,r.exports}l.m=e,l.c=n,l.d=function(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(l.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)l.d(r,n,function(t){return e[t]}.bind(null,n));return r},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="/";var i=this.webpackJsonpclient=this.webpackJsonpclient||[],f=i.push.bind(i);i.push=t,i=i.slice();for(var a=0;a<i.length;a++)t(i[a]);var c=f;r()}([])</script><script src="/static/js/2.76c6d5bb.chunk.js"></script><script src="/static/js/main.161267fe.chunk.js"></script></body></html> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
{ | ||
"short_name": "React App", | ||
"name": "Create React App Sample", | ||
"icons": [ | ||
{ | ||
"src": "favicon.ico", | ||
"sizes": "64x64 32x32 24x24 16x16", | ||
"type": "image/x-icon" | ||
}, | ||
{ | ||
"src": "logo192.png", | ||
"type": "image/png", | ||
"sizes": "192x192" | ||
}, | ||
{ | ||
"src": "logo512.png", | ||
"type": "image/png", | ||
"sizes": "512x512" | ||
} | ||
], | ||
"start_url": ".", | ||
"display": "standalone", | ||
"theme_color": "#000000", | ||
"background_color": "#ffffff" | ||
} |
42 changes: 42 additions & 0 deletions
42
client/build/precache-manifest.1f2247de76a6c560e3bc294074f75a8b.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
self.__precacheManifest = (self.__precacheManifest || []).concat([ | ||
{ | ||
"revision": "21e9ceb5cde8f1f7a505cdeac1bfdeb6", | ||
"url": "/index.html" | ||
}, | ||
{ | ||
"revision": "0596feb02e91b353ba83", | ||
"url": "/static/css/main.3609ce2a.chunk.css" | ||
}, | ||
{ | ||
"revision": "634750f8c2e86629aa39", | ||
"url": "/static/js/2.76c6d5bb.chunk.js" | ||
}, | ||
{ | ||
"revision": "3b22f900d4f81232c73c229663f8fe41", | ||
"url": "/static/js/2.76c6d5bb.chunk.js.LICENSE.txt" | ||
}, | ||
{ | ||
"revision": "0596feb02e91b353ba83", | ||
"url": "/static/js/main.161267fe.chunk.js" | ||
}, | ||
{ | ||
"revision": "cda345fb50b7e11c0025", | ||
"url": "/static/js/runtime-main.844668cf.js" | ||
}, | ||
{ | ||
"revision": "36ab476e5e55f496749ee61897a9cfb5", | ||
"url": "/static/media/flag.36ab476e.svg" | ||
}, | ||
{ | ||
"revision": "543bc93b2e32281bad1ede21bb3afbdd", | ||
"url": "/static/media/mc_symbol.543bc93b.svg" | ||
}, | ||
{ | ||
"revision": "e5564902e2642c5e6e2e98e68a7d41f5", | ||
"url": "/static/media/uk.e5564902.svg" | ||
}, | ||
{ | ||
"revision": "7aea52bbbc38e6d8f93bf6f50c467452", | ||
"url": "/static/media/world.7aea52bb.svg" | ||
} | ||
]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# https://www.robotstxt.org/robotstxt.html | ||
User-agent: * | ||
Disallow: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/** | ||
* Welcome to your Workbox-powered service worker! | ||
* | ||
* You'll need to register this file in your web app and you should | ||
* disable HTTP caching for this file too. | ||
* See https://goo.gl/nhQhGp | ||
* | ||
* The rest of the code is auto-generated. Please don't update this file | ||
* directly; instead, make changes to your Workbox build configuration | ||
* and re-run your build process. | ||
* See https://goo.gl/2aRDsh | ||
*/ | ||
|
||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); | ||
|
||
importScripts( | ||
"/precache-manifest.1f2247de76a6c560e3bc294074f75a8b.js" | ||
); | ||
|
||
self.addEventListener('message', (event) => { | ||
if (event.data && event.data.type === 'SKIP_WAITING') { | ||
self.skipWaiting(); | ||
} | ||
}); | ||
|
||
workbox.core.clientsClaim(); | ||
|
||
/** | ||
* The workboxSW.precacheAndRoute() method efficiently caches and responds to | ||
* requests for URLs in the manifest. | ||
* See https://goo.gl/S9QRab | ||
*/ | ||
self.__precacheManifest = [].concat(self.__precacheManifest || []); | ||
workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); | ||
|
||
workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { | ||
|
||
blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], | ||
}); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
/* | ||
object-assign | ||
(c) Sindre Sorhus | ||
@license MIT | ||
*/ | ||
|
||
/*! | ||
Copyright (c) 2017 Jed Watson. | ||
Licensed under the MIT License (MIT), see | ||
http://jedwatson.github.io/classnames | ||
*/ | ||
|
||
/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. All rights reserved. | ||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use | ||
this file except in compliance with the License. You may obtain a copy of the | ||
License at http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED | ||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, | ||
MERCHANTABLITY OR NON-INFRINGEMENT. | ||
|
||
See the Apache Version 2.0 License for specific language governing permissions | ||
and limitations under the License. | ||
***************************************************************************** */ | ||
|
||
/*! decimal.js-light v2.5.0 https://github.com/MikeMcl/decimal.js-light/LICENCE */ | ||
|
||
/** | ||
* A better abstraction over CSS. | ||
* | ||
* @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present | ||
* @website https://github.com/cssinjs/jss | ||
* @license MIT | ||
*/ | ||
|
||
/** @license React v0.18.0 | ||
* scheduler.production.min.js | ||
* | ||
* Copyright (c) Facebook, Inc. and its affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
|
||
/** @license React v16.12.0 | ||
* react-dom.production.min.js | ||
* | ||
* Copyright (c) Facebook, Inc. and its affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
|
||
/** @license React v16.12.0 | ||
* react-is.production.min.js | ||
* | ||
* Copyright (c) Facebook, Inc. and its affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
|
||
/** @license React v16.12.0 | ||
* react.production.min.js | ||
* | ||
* Copyright (c) Facebook, Inc. and its affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.