coin-worx / coin-exchange-frontend

Coin Exchange front-end code. Coin Exchange is a high performance exchange system specialized for Crypto currency trading with different general purpose uses such as independent deposit and withdrawal channels for Bitcoin and Litecoin, and also a standalone exchange for different asset classes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub release GitHub (pre-)release GitHub issues GitHub top language GitHub watchers GitHub stars GitHub forks

IMPORTANT

This is an old project and isn't being actively maintained. Some of the libraries have since been deprecated and this may cause some of the dependencies to fail. We're not providing any support for this project anymore.

Coin Exchange Frontend

Introduction

The main aim of the platform is to provide a web based exchange facility for the up and coming digital currencies including Bitcoin, Litecoin and the ability to trade them against standard fiat currencies. The platform has been designed to be used by retail and institutional traders and investors. The platform will be available internationally through web based platform and will be accessed using a web browser on a computer or mobile device.

Context

The product serves as a platform for trading different digital currencies for different fiat currencies. The digital currencies available for trading are going to be:

  • Bitcoin (BTC)
  • Litecoin (LTC)

The major fiat currencies available for trading are going to be:

  • US Dollar (USD)
  • Euro (EUR)
  • Sterling Pound (GBP)
  • Australian Dollar (AUD)
  • Swiss Franc (CHF)
  • Japanese Yen (JPY)

The platform is a self contained product with not much integration with external system(s). However, the billing module will have to support some different mechanisms for depositing money into user accounts that may include:

  • Paypal deposit
  • Bank/wire transfer deposit
  • Bitcoin deposit

Problem Statment

Cryptocurrency market has been on rise in the recent years and has become a popular financial entity. The crypto market is decentralized it's not being controlled by any single authority offering more control to the users. Some of the cryptocurrencies can also be used by setting a fixed supply cap making them more imune to inflation. This makes the cryptocurrency market highly profitable.

Solution

To gain profit from cryptocurrency market apart from investing in trading cryptocurrencies itself one can take advantage from market liquidity by creating their own cryptocurrency exchange. Creating a cryptocurrency exchange offers the advantage of being a part of the cyrpto market itself and one can take advantage of the transaction fees to generate revenue.

Technology Stack

  • Grails: Server side MVC, Backend REST Integration
  • Spock: Spock is a testing and specification framework for Java and Groovy applications
  • Selenium: Browser automation framework
  • Geb: Geb is a browser automation solution for e2e/functional testing
  • AngularJS: Client side MVC, DI, Data Binding, etc.
  • Jasmine: JavaScript testing framework
  • jQuery: A cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
  • Karma: JavaScript unit test runner
  • Protractor: JavaScript e2e test runner
  • HighCharts: Charting API
  • Istanbul: A JS code coverage tool
  • HTML5/CSS3/JS:
  • Grunt: Task manages, needed to handle assets optimization
  • Bower: Client-side code package manager
  • Yeoman: Used for quickly & easily creating an angularJs based application

Backend

Backend code for coin exchange is kept here: https://github.com/coin-worx/coin-exchange-backend

Infrastructure

Docker file for coin-exchange front end is kept here: coin-exchange-frontend/Dockerfile

To generate docker image for coin-exchange front end. Follow the given steps

  1. Go to coin-exchange-frontend in console (or terminal)
  2. Run grails war
  3. To build docker image run docker build -t frontend -f Dockerfile .
  4. To run docker image run docker run --net=host -p 8080:8080 -t frontend:latest

Testing

Unit Tests

Unit Tests details are kept here: coin-exchange-frontend/test/javascript/unit

Screen Shots

Market Data

Market Data Spread Market Data Depth

Orders

New Order

New Order with Open Orders view

New Order with OrderBook view

Orders List

Orders List

Individual Order Details

Individual Order

Trades

Overview

Trades Overview

Trades List

Trades List

Individual Trade Details

Individual Trade

History

Ledger

History Ledger

Closed Orders

History Closed Order

Trades

History Trades

Deposit/Withdrawl

Deposit Withdrawal

Usage

Pre Requirements

  • Grails v2.3.8
  • Java v1.6
  • MySql
  • Git
  • Tomcat

Building

  1. Clone the application from repo: git clone https://github.com/coin-worx/coin-exchange-frontend.git

Running

  1. grails clean (To clean the application)
  2. grails compile (To compile the application)
  3. grails run-app (To run the application)
  4. If above commands are successful then you will see a log on your terminal saying that application can be accessed at: localhost:8080/coinexchange.
  5. You have to write following url localhost:8080/coinexchange in url browser window and press Enter.

Integration with IntelliJ

  1. Go to coin-exchange-frontend in console (or terminal)
  2. Run grails integrate-with --intellij
  3. In intellij idea File -> Open, go to coin-exchange-frontend and open coin-exchange-frontend.ipr
  4. Press Convert when IDE will ask.
  5. Run project always from console, not from IDE.

Logs

When running locally through grails run-app, then logs can be found under this location ...\coin-exchange-frontend\logs.

Help

Got a question? File a GitHub issue, send us an email at info@aurorasolutions.io or reach out to us on social media Twitter, Facebook

Contributing

Bug Reports & Feature Requests

Please use the issue tracker to report any bugs or file feature requests.

Developing

PRs are welcome. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

NOTE: Be sure to merge the latest from "upstream" before making a pull request!

About

The project is created and maintained by Aurora Solutions. Like it? Please let us know at info@aurorasolutions.io

See our other projects

About

Coin Exchange front-end code. Coin Exchange is a high performance exchange system specialized for Crypto currency trading with different general purpose uses such as independent deposit and withdrawal channels for Bitcoin and Litecoin, and also a standalone exchange for different asset classes.

License:Apache License 2.0


Languages

Language:Groovy 83.1%Language:CSS 15.8%Language:JavaScript 0.6%Language:Batchfile 0.4%Language:Dockerfile 0.0%