Skip to content

A digital currency asset management tool built in Ruby on Rails & jQuery with a PostgresQL database, Omniauth, and devise for user authentication. Customized with Bootstrap and custom CSS.

License

Notifications You must be signed in to change notification settings

grey-lock/Coinance

Repository files navigation

Coinance

Coinance is a Ruby on Rails web application that allows you to manage a portfolio of your digital currency assets and investments.

  • Live demo deployed to Heroku
  • Users can create an account to store data on transactions and wallets where they have any cryptocurrencies.
  • Leverages the Cryptocompare API to retrieve real-time info & price data on 2,000+ cryptocurrencies and tokens.
  • Users can save a transaction or a wallet by selecting from a real-time list of digital currencies and tokens to save to the database.
  • Coins are selected in real-time, and persisted to the database as an associated coin to either a wallet, or a transaction.
  • Users can submit their own prices if purchased at a different time for their own transactions/wallets.
  • User sign-in, sign-out, and session security is handled with Devise Devise
  • Users can log in with Facebook using Omniauth
  • Displays updated price data on Bitcoin, Ethereum, and Litecoin on the Coin index page.
  • Displays stats on the Coins saved with the most transactions.
  • Users can ONLY create, read, update, or delete their own transactions and wallets.
  • All user data is validated using ActiveRecord ORM & Rails model validations.
  • Database schema is created in PostgresQL.
  • Styled custom SCSS with an open-source Bootstrap theme.

Installation

Fork and clone this repository, and then execute:

$ bundle install

$ rake db:migrate

Then run:

$ rails s

Open up a new browser window and navigate to:

localhost:3000

Models

This app uses 5 ActiveRecord Models: User, Coin, Wallet, Transaction, and CryptocompareApi. The join table is Transaction.

User:

has_many :transactions
has_many :coins, through: :transactions
has_many :wallets

Coin:

has_many :transactions
has_many :users, through: :transactions
has_many :wallets

validates :name, :symbol

Wallet:

belongs_to :user
belongs_to :coin

validates :name, :coin_amount, :user_deposit (presence, and greater than 0)

Transaction:

belongs_to :user
belongs_to :coin

validates :amount, :quantity, :price_per_coin, :fee (presence, and greater than 0)

Cryptocompare API:

Uses custom methods, to parse real-time price data, symbols, coin names, and coin IDs.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/TheInvalidNonce/coinance. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The app is available as open source under the terms of the MIT License.

About

A digital currency asset management tool built in Ruby on Rails & jQuery with a PostgresQL database, Omniauth, and devise for user authentication. Customized with Bootstrap and custom CSS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published