Coder Social home page Coder Social logo

meter-tracker's People

Contributors

oleksii-suprun avatar waffle-iron avatar

meter-tracker's Issues

Fix Travis CI build cache

At the moment each build uploads cache to storage:

store build cache
0.00s
21.83schange detected (content changed, file is created, or file is deleted):
/home/travis/.gradle/caches/4.10/fileContent/fileContent.lock
/home/travis/.gradle/caches/4.10/fileHashes/fileHashes.bin
/home/travis/.gradle/caches/4.10/fileHashes/fileHashes.lock
/home/travis/.gradle/caches/4.10/javaCompile/javaCompile.lock
/home/travis/.gradle/caches/journal-1/file-access.bin
/home/travis/.gradle/caches/journal-1/journal-1.lock
changes detected, packing new archive
.
.
.
uploading archive

This should be fixed by removing all *.lock files, fileHashes.bin and file-access.bin before caching.

Implement main dashboard page

There is a need to implement dashboard page which will be used as a main screen of application. It should contain general overview about consumption and has a visualization that informations via charts.

Dockerize app

There is a need to introduce docker container for app

Improve performance of image uploading

At the moment meter image uploading is very slow due to image hash calculation. There is a need to find a more efficient way to identify image uniqueness.

Wrong preview image on indication list screen

Steps to reproduce:

  1. Upload and recognise two images for same meter
  2. Navigate to "Indications -> "
  3. Click on "View image" button on indication's row

As a result 'Value' column in selected row contains value which is different from image.
Expected result: value and image must have identical values

Improve code quality with java.util.Optional

Currently there are a lot of places in code where nullable values are used. As a result there are a lot of null-checks to handle null values. The goal of this task is to perform deep code review and significantly decrease amount of using nullable variables and correspondent null-checks by replacing such variables with correspondent instances of java.util.Optional

Implement consumption calculation

There is a need to store consumption value for each indication. Consumption - is a difference between current indication value and previous one. It should be calculated indication value saving process.

  1. Introduce new field 'consumption' for Indication entity
  2. Extend indication saving logic with consumption calculation

Also, there is a need to consider situations where meter was replaced. Consumption in such situation could be less than zero. Such situations should be handled.

Rework tests

There is a need to get rid of DbUnit dependency and reorganize tests to work without it. There are two potential resolutions for data-related tests:

  1. Mock required data
  2. Use Spring's @Sql annotation

Replase H2 with Postgres

Since embedded H2 does not support parallel connections, there is a need to reimplement DAO layer to use more advanced DB such as PostgreSQL.

Rotated indication returned

The problem is that application returns indication region shaped correctly, but image inside it rotated to 90 degrees and stretched horizontally.

Most likely the root cause of the problem is in a bad corners ordering for perspective transformation.

Implement indication edit feature

Currently it's impossible to edit indication after it was saved. And this leads to a problem when indication was save with mistake. There is a need to implement edit feature for indications

Speed-up Travis build

At the moment, CI build take up to 17 minutes which is quite long period of time and it would be great to find approaches which could improve this value.

After quick look at the build log it was figured out that the most time consuming operation is building and installing OpenCV from sources. And speeding this up should be top priority for this task.

To achieve the task goal and speed-up CI build it's necessary to investigate and apply Travis CI features related to caching dependencies in build config.

Implement fixture for populating test DB

At the moment filling data into test DB is implemented using a file with name 'data.sql'. It contains a set of insert operations which are executed during application context initialisation. Unfortunately, this approach is not convenient for development because test data are strongly rely on images which are processed via application and storing into DB. Updating 'data.sql' file or especially creating new one is not trivial and very time consuming operation.

To make test data creation process more simple and flexible, it's suggested to implement some mechanism which can pick up images from some folder and populate DB with corresponding data before test execution.

Speedup GDriveFileStorage creation

At the moment Google Drive directory id is getting during GDriveFileStorage object creation inside a constructor. As a result creation of GDriveFileStorage slows down Spring context start.

There is a need to implement lazy initialization for GDriveFileStorage

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.