Git Product home page Git Product logo

juniper-portfolio's Introduction

Juniper Portfolio Tool

Want to start tracking cryptocurrencies? This application can be used to track cryptocurrency wallets (bitcoin and ether).

Prerequisittes

Please ensure that you have the following installed on your computer:

  1. Node JS (^12.13.0)
  2. Node Package Manager (npm) (^6.12.0)
  3. Docker (^19.03.2)
  4. Mongo

Please ensure that you have accounts with the following services; you will be using these accounts to create API keys for your .env file:

  1. Amazon Web Services
  2. Infura
  3. Etherscan
  4. Alchemy

Getting Started

There are two main parts for this application:

  1. root folder (./)
  2. client folder (./client)

There is a .env that will need to be configured before getting this application to work. There is a sample .env (called .env.example) file that you can use for the application. Update it with the required credentials to ensure that this application works as intended.

Install

Run npm install in the root folder. The script will install all packages required and also create a production builds of the current application as well.

Running the application in development mode

For the server (from the ./ folder): node index.js For the client (from the ./client folder): cd client-admin npm start

Contributing

Review the /contributing folder in this repository.

Authors

  1. Alex Sherbuck (GitHub: tenthirtyone)
  2. Mehran Hydary (GitHub: mehranhydary | Email: [email protected])

juniper-portfolio's People

Contributors

divyanshisingh avatar epasquali avatar mehranhydary avatar mehranhydary1 avatar rymksotnini avatar tenthirtyone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

juniper-portfolio's Issues

FEATURE: Pagination

Wallet Details: Pagination for transactions list

Possible, Your Wallets, fetching the wallets depending on how many we have (more than 20?)

Transactions Page. There will be many!

READMES should be descriptive and useful

The readme should contain clear, step by step instructions on how to run the application on various platforms. It should be written such that someone following the README instructions step by step will be successful in running the app without the need to ask for help, look for other documents, or click through links to get things working.

Also, descriptions on how to run and test should be on the README file not on comments or pull requests.

Feature: Add Spinner during wallet processing

After adding a wallet, add a spinner to let the user know we're processing the wallet. Latency from the third party or a very large wallet could make the app appear to hang or stop responding.

FEASIBILITY: Office365 Login

Passportjs supports using our UNICEF accounts to login to applications through Office365. This is similar to logging in using Google in other applications.

http://www.passportjs.org/packages/passport-office365-oauth2/

To use this, we would need to have the team that manages our Sharepoint/Active Directory register the app and give us the clientID and clientSecret that SP/AD will create when the app is registered.

To register an app:

https://portal.azure.com/#home

Search: App Registrations

My account does not have access, if an admin can approve it we can add this to all of our apps, reducing the time spent on login screens/security across all apps

Feature: Safe Add New Wallet

Adding a new wallet that already exists will overwrite the wallet data as if it were being added for the first time.

If wallet data is already tagged/published/archived then this will overwrite the historic work. Sometimes this may be desirable (unsure since we cannot delete/remove wallets yet). I suggest a warning when adding a wallet that already exists. Perhaps a choice between resetting the data, updating new transactions (in case the wallet is stale), and cancelling the op.

Tech Debt: Refactor Admin Account's pages into classes

Account pages are currently functional components. There is no reason to re-render every section when the app state changes. This could happen even when the accounts section is not shown.

However, state is currently managed in each respective component class and this is a minor issue that will not affect development or performance for the time being.

Bug: Transaction dupes

I dun goofed on the indexes and every transaction ever pulled is forever saved. Adding the same wallet multiple times dupes the transactions.

Easy fix, funny problem

BUG: Deactivated User/Reinvite User

Inviting a deactivated user should reactivate the existing user's profile. The app will create a new user. When that user is reinvited a new password is set but the app will reference the deactivated account.

Tech Debt: Unit Test DB

The calculations and values are becoming complex enough that it probably makes sense to setup unit testing for the DB aggregates to help explain how numbers are calculated.

Show wallet updating status/progress

When wallet data is updating show the status/progress somewhere (topbar?)

Set a reasonable limit to how frequently the app will automatically trigger an update.

Give the user a manual way of refreshing/updating wallet data.

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.