Project Approach:
- Build out client-side / front-end while employing mock data (that would be expected from server), and data obtained from a chosen exchange-rate (and possibly currency) API
- Build out server to provide required client data, but based on mocked DB models
- Integrate MongoDB usage (using aggregation framework -- noSQL version of SQL's left outer joins)
- Update Readme to have instructions on installing, configuring and setting up locally.
- Deploy to Heroku
Considerations:
- Attempting to send money in currency inconsistent w/ both sender && recipient's selected currency not allowed, e.g. USD -> JPY -> USD
- User cannot send to onself
- When sending in different currency from sender's own currency, exchange rate for that currency needs to be accessed. Converted amount to clearly distinguish between the amount deducted from their account vs. what is actually sent to recipient
- Computed transfer amt + deducted amount will timeout after 2 minutes just as a quick-and-dirty attempt to circumvent real-world, real-time exchange rate changes.
- At "Send Money view", include account balance, and provide some sort of mechanism to show insufficient funds, and subsequently prevent user from sending unavailable funds
- Include a "error" view that shows any and all error results following payment attempt.
- Given that I will be using Ajax only (no-real time, event-based updates on the client), server needs to check for insufficient funds regardless).
- With transaction items (History view), include icons to distinguish between 'gifts' vs. 'business' transactions, and 'received' vs. 'sent'
- 'Send Payment' view should have a "Back" navigation of some sort.
SETUP & INSTALL
- Clone this repo
- Go into the cloned project via CLI, and then run 'npm install' within the directory
- Run 'npm install webpack -g'
- Run 'npm install webpack-dev-server -g'
- (Despite seeing error messages regarding peer dependencies) Run 'npm install webpack@2.1.0-beta.6'
- Lastly, run 'npm start'. Internet browser will navigate to http://localhost:4567. No other installs needed as app is currently not running an app server