Ambrosius Topor

Projekt

Money

Application to manage finances.

Transactions
Charts

Motivation

While using a spreadsheet application for a long time to manage finances, I always found it complicated and cumbersome to get the task done.
My idea was to have an application that would ease the process and provide additional benefits like seamless generation of charts, but also smart helpers, that can give advice based on the provided data.

Capabilities

Technologies

Highlights

Tests

Coverage Report

Coverage

Test: Create Transaction Types

context('when different transaction types given', function() {

    _.forEach(dataProvider_transaction, (data) => {

        it(`should push one ${data.type} onto store`, function() {

            store.state[data.collection] = []

            return store.dispatch('create' + data.action, data.transaction)
                .then(
                    () => {
                        expect(store.state[data.collection])
                            .to.have.lengthOf(1)
                    }
                )

        })

    })
})
Example test function to cover creation of different transaction types (`CreateTransaction.spec.js`). Using a PHPUnit-style data provider implemention for serial testing.

Commands

Create Deposit

(function() {

    this.execute = function() {
        return new Promise((resolve, reject) => {
            validateDeposit(this.payload.transaction).then(
                value => {
                    store.dispatch('createDeposit', value)
                    resolve({status: 'success'})
                },
                error => {
                    reject({status: 'failure', error})
                }
            )
        })
    };

}).call(CreateDepositCommand.prototype);
Excerpt of function to create a deposit.

Styles

For a more elegant development experience, a style guide and a prototype have been created.

Styleguide - Table
Styleguide: Table
Styleguide - Widgets
Styleguide: Widgets