Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Edward C committed Oct 17, 2021
0 parents commit cda57e8
Show file tree
Hide file tree
Showing 135 changed files with 30,281 additions and 0 deletions.
53 changes: 53 additions & 0 deletions README.md
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>
1 change: 1 addition & 0 deletions client/.env.development
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
REACT_APP_SERVER_URL=http://localhost:4000
1 change: 1 addition & 0 deletions client/.env.production
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
REACT_APP_SERVER_URL=https://apollo-bank.herokuapp.com
23 changes: 23 additions & 0 deletions client/.gitignore
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*
8 changes: 8 additions & 0 deletions client/.prettierrc
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"
}
7 changes: 7 additions & 0 deletions client/build/Bitcoin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions client/build/_redirects
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* /index.html 200
26 changes: 26 additions & 0 deletions client/build/asset-manifest.json
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 added client/build/favicon.ico
Binary file not shown.
1 change: 1 addition & 0 deletions client/build/index.html
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>
15 changes: 15 additions & 0 deletions client/build/loading.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added client/build/logo192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added client/build/logo512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions client/build/manifest.json
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 client/build/precache-manifest.1f2247de76a6c560e3bc294074f75a8b.js
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"
}
]);
3 changes: 3 additions & 0 deletions client/build/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
39 changes: 39 additions & 0 deletions client/build/service-worker.js
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: [/^\/_/,/\/[^/?]+\.[^/]+$/],
});
2 changes: 2 additions & 0 deletions client/build/static/css/main.3609ce2a.chunk.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions client/build/static/css/main.3609ce2a.chunk.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions client/build/static/js/2.76c6d5bb.chunk.js

Large diffs are not rendered by default.

72 changes: 72 additions & 0 deletions client/build/static/js/2.76c6d5bb.chunk.js.LICENSE.txt
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.
*/
1 change: 1 addition & 0 deletions client/build/static/js/2.76c6d5bb.chunk.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions client/build/static/js/main.161267fe.chunk.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions client/build/static/js/main.161267fe.chunk.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions client/build/static/js/runtime-main.844668cf.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit cda57e8

Please sign in to comment.