Skip to content

TiagoFNB/apollobank

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(this repository was created in an academic context for my dissertation project, which can be read here.)

apollobank 🚀

A fullstack GraphQL banking application built using React, Node & TypeScript.

🔥Any contribution activity including finding/report/fixing issues, and pull requests are Welcome!👋
Now it is fully open source. Check the contribution guide here.

Running

Prerequirement

  • Node.js
  • PostgreSQL 13
    • create database name "apollobank"
  • Neo4j Desktop (if using server-graph)
    • create database name "apollobank"
  • Git clone
git clone https://github.com/TiagoFNB/apollobank.git
cd apollobank

Run backend

cd server
npm install
npm start
  • check ormconfig.json file to check or update database connection info.
  • create .env file with necessary values

Run frontend

cd client
npm install
npm start

Using

  • Register fist. dashboard
  • And then login. dashboard
  • Add account and transaction! Play it! dashboard

Functions

  • Login/register
  • Dashboard
  • Accounts
  • Transactions
  • Credit cards
  • Settings
  • Spending for this month chart
  • Dummy data generator using faker

Tech Stack

Server side

  • Apollo Server
  • bcryptjs
  • cors
  • Express
  • GraphQL
  • faker
  • jsonwebtoken
  • TypeGraphQL
  • TypeORM
  • TypeScript
  • PostgreSQL

Server side (Graph)

  • Apollo Server
  • bcryptjs
  • cors
  • Express
  • GraphQL
  • faker
  • jsonwebtoken
  • Neo4jGraphQL
  • TypeScript
  • Neo4j

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.

Documentation

Domain diagram

domain

High level sequence diagram of how Neo4jGraphQL operates

neo4jgraphql

High level sequence diagram of account creation on initial backend with relational database (server)

domain

High level sequence diagram of account creation on new backend with graph database (server-graph)

domain

About

A full stack GraphQL banking application using React, Node & TypeScript.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 94.7%
  • R 2.5%
  • HTML 1.8%
  • Other 1.0%