All Projects β†’ jamesplease β†’ moolah-old

jamesplease / moolah-old

Licence: MIT license
The source code for the original version of Moolah

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to moolah-old

News Emotion
πŸ“‰ ι‡‘θžζ–‡ζœ¬ζƒ…ζ„Ÿεˆ†ζžζ¨‘εž‹
Stars: ✭ 239 (+646.88%)
Mutual labels:  finance
edgar-crawler
Download financial reports from SEC's EDGAR. Extract clean textual data from specific item sections and bootstrap your financial NLP research. Software from the research paper published in ECONLP 2021.
Stars: ✭ 71 (+121.88%)
Mutual labels:  finance
bankster
Money Creation Made Easy
Stars: ✭ 30 (-6.25%)
Mutual labels:  finance
Dash.jl
Dash for Julia - A Julia interface to the Dash ecosystem for creating analytic web applications in Julia. No JavaScript required.
Stars: ✭ 248 (+675%)
Mutual labels:  finance
exactonline
Exact Online (accounting software) REST API Library in Python
Stars: ✭ 35 (+9.38%)
Mutual labels:  finance
good-reads
List of inspiring articles, blogs, tutorials and books. Tech stuff.
Stars: ✭ 14 (-56.25%)
Mutual labels:  finance
Ttr
Technical analysis and other functions to construct technical trading rules with R
Stars: ✭ 238 (+643.75%)
Mutual labels:  finance
Block Codes
This depository uses SEC EDGAR data in Schedule 13D and Schedule 13G data to find all positions above 5% in all US stocks between 1994 and 2018.
Stars: ✭ 55 (+71.88%)
Mutual labels:  finance
rRofex
R library to connect to Matba Rofex's Trading API. Functionality includes accessing account data and current holdings, retrieving investment quotes, placing and canceling orders, and getting reference data for instruments.
Stars: ✭ 21 (-34.37%)
Mutual labels:  finance
pandas-datareader-gdax
GDAX data for Pandas in the style of DataReader
Stars: ✭ 11 (-65.62%)
Mutual labels:  finance
Ta Rs
Technical analysis library for Rust language
Stars: ✭ 248 (+675%)
Mutual labels:  finance
starling-roundup
Round-up your Starling Bank transactions and transfer the proceeds to a savings goal
Stars: ✭ 17 (-46.87%)
Mutual labels:  finance
cira
Cira algorithmic trading made easy. A Façade library for simpler interaction with alpaca-trade-API from Alpaca Markets.
Stars: ✭ 21 (-34.37%)
Mutual labels:  finance
Trading Backtest
A stock backtesting engine written in modern Java. And a pairs trading (cointegration) strategy implementation using a bayesian kalman filter model
Stars: ✭ 247 (+671.88%)
Mutual labels:  finance
mtss-gan
MTSS-GAN: Multivariate Time Series Simulation with Generative Adversarial Networks (by @firmai)
Stars: ✭ 77 (+140.63%)
Mutual labels:  finance
Stock Bot
An application that allows you to design and test your own stock trading algorithms in an attempt to beat the market.
Stars: ✭ 240 (+650%)
Mutual labels:  finance
TheBankster
A personal finance tool in PHP
Stars: ✭ 15 (-53.12%)
Mutual labels:  finance
Scrape-Finance-Data
My code for scraping financial data in Vietnam
Stars: ✭ 13 (-59.37%)
Mutual labels:  finance
salaryconverter
Equivalent salary converter using PPP
Stars: ✭ 42 (+31.25%)
Mutual labels:  finance
app-ui
DEUS app front-end
Stars: ✭ 20 (-37.5%)
Mutual labels:  finance

moolah

Travis build status Test Coverage Dependency Status devDependency Status

Track your finances.

Developing

Pre-requisites

Installation

Clone this repository.

git clone [email protected]:jmeas/moolah.git

Navigate to the root directory of this project, and install the npm dependencies.

cd moolah && npm install

Setting up the Database

Running this project locally requires a Postgres database. The easiest way to do this is to create a Heroku application with the Postgres Heroku add-on. Then, we can just use that project's database. If you're comfortable setting up your own database, then feel free to do that.

To use the Heroku method, begin by deploying the app by following the instructions above.

Once that's done, you'll need to hook up your local repository with the Heroku app that you just created by adding the app as a remote. This guide can help you do that.

.env file

For local development, secrets are stored in an .env file in the project root. The values are:

  • DATABASE_URL: the DB URL to connect to (see below for how to get this)
  • SESSION_SECRET: the secret used by express-session
  • GOOGLE_CLIENT_ID: the ClientID of a Google project
  • GOOGLE_CLIENT_SECRET: the secret of the above project
  • GITHUB_CLIENT_ID: the ClientID of a GitHub application
  • GITHUB_CLIENT_SECRET: the secret of the above project
  • FACEBOOK_CLIENT_ID: the ClientID of a Facebook application
  • FACEBOOK_CLIENT_SECRET: the secret of the above project
  • TWITTER_CLIENT_ID: the ClientID of a Twitter application
  • TWITTER_CLIENT_SECRET: the secret of the above project

The different social media IDs and Secrets enable logging in via those social networks. Right now, they are all necessary to run this app locally.

An example snippet from an .env file is:

DATABASE_URL='postgres://whatevs'
SESSION_SECRET='cookies_are_delicious'

The .env file is not used when deploying the app to Heroku. Instead, use the Heroku Dashboard to modify the environment variables of the deployed webapp.

Getting the database URL

If you followed the instructions above for setting up the local DB, then you can get the database URL by running heroku config -s from the project's root directory.

Local development

Once you've followed the installation and database setup instructions above, you're ready to run the app locally. Follow these steps:

  1. Start up Postgres
  2. Run npm run local-server to start the Express app
  3. Run npm run watch to build the JS & CSS, and set up the file watcher

The app should now be available in your browser at http://localhost:5000.

Developer Scripts

  • npm run watch: Build the JavaScript & CSS, and set up a watcher
  • npm run local-server: Starts the development web server. Restarts the server if it dies.
  • npm run test: Lint JS & CSS, then run all unit tests
  • npm run lint: Lint the JavaScript and CSS files
  • npm run test-browser: Builds the app to run the tests in a local browser
  • npm run watch-tests: Run the tests in Node. Then start a watch task to re-run them if you make any changes.
  • npm run build: Build a production version of the application
  • npm run coverage: Generate a coverage report
  • npm run sync: Run the SQL scripts in ./migrations
  • npm run release: Release a new version of the production app by syncing production with staging
  • npm run minify-emoji: Compress the file located at server/static/sheet_apple_64.png

Deploying

The Production App

The production version of this app is deployed as part of a Heroku pipeline. Only users with access to the Heroku app will be able to deploy it.

The release flow is as follows:

  • Opening a PR automatically creates a Review App
  • Merging to the master branch will automatically deploy the staging app
  • Running npm run release will promote the staging app to production*

* Note: the name of the Heroku remote must be staging for this command to work.

Custom

You can deploy your own version of Moolah, too. This app is in very early development, so it doesn't fully function. Keep that in mind if you wish to deploy it!

The preferred method to deploy this app is through Heroku. To enable logging in, you'll need to set up a Google project with the Google+ API enabled.

You'll then need to a similar process for Twitter, Facebook, and GitHub.

Once you've gotten all of your ClientIDs and Secrets, click the button below:

Deploy

Target browser support

Evergreen browsers (including Microsoft Edge). No Internet Explorer support.

Updating the Emoji

This application uses js-emoji, the same library that Slack uses, for emoji rendering. Sometimes when updating that dependency, the emoji will change. When that happens, we need to manually update image files in this project.

This is because js-emoji doesn't minify the spritesheets. To minify them, this project uses imagemin.

First, download the updated assets from js-emoji. Then, copy the sheet_apple_64.png file into the server/assets directly. Lastly, run:

npm run minify-emoji

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].