Code Monkey home page Code Monkey logo

monzo-web-client's Introduction

Monzo Web Client Build Status Codacy Badge bitHound Dependencies

Monzo Web client built with node, express, postgres. Current allows viewing transaction history as a list and exporting. Also has view for indiviual transactions. Plans to add budgeting features per category similar to Monzo iOS app. Currently WIP.

Building & Running

Before you start you will need to have obained a client key & secret from the Monzo developer dashboard and a local postgres database. (And obviously node.js installed on your machine...)

  1. Download or clone repository
  2. Create .env file in root directory based on sample.env (populate with your own configuration values)
  3. Install gulp globally via npm. npm install gulp -g
  4. Run npm run -s initdb in the root folder of the project. This will run the sequelize orm database migration and seeding against the connection string set in your .env file
  5. To debug locally use Visual Studio Code, there is a launch profile Debug Transpiled which will build the project into the dist folder and debug using source maps. Breakpoints can be set normally in the /src folder and they should be hit. By default it will listen on port 8081.

monzo-web-client's People

Contributors

roketworks avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

srothwell01

monzo-web-client's Issues

General Refactor

Areas to look at:

  • auth route & middleware
  • transaction route

Look at getting rid of a lot of duplicated code and create modules for things like calling monzo api, possible look at wrapping existing npm modules if available

Transaction List Load more not paging correclty

Always loading first set of transactions and appending

Affecting /transactions/loadmore route in transactions router, paging is being send from client but it is not being used. Access paging from client request using the req.query object in the route

Transaction list pagination

Load more is hardcoded to just load a weeks worth of data, this is due to limits in the Monzo API, which always returns transaction list in chronological order limited to 100, no matter what pagination is supplied.

Also filtering & searching is difficult due to API still being limited.

May need to rethink pagination, possibly implement multiple calls to API is list exceeds the limit provided

Routes refectoring

Possibly add transaction API route that returns JSON based on parameters, instead of duplicating code across routes that. Have the view controller routes call the APIs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.