Code Monkey home page Code Monkey logo

expensesreporter's Introduction

Expenses Reporter

This is my first attempt at an Android application, so I am focusing more on learning and figuring out all the needed tools. the application itself doesn't have a general public interest as it is a simple expenses report integrated with my personal intranet.

The application has a simple input interface that I have kept to a minimum as it will be ofter used while on the move, for instance just after purchasing something in a shop.

Screenshot

User can also get a list of expenses, this is a very simple list for now with no filtering nor sorting.

Screenshot

The application keeps data in sync with the server by means of a sync adapter. The sync service creates a new Android account type in order to authenticate the user with the server. The account can be found under Settings as other accounts are usually found in Android. Additionally at the first start the application asks the user to authenticate with the server and creates automatically a sync account.

Screenshot

Software Architecture

Below is an oversimplified view of the architecture of the application. Data is stored locally on the phone in a SQLite database. This allows to use the application even when there is no internet connection. The Sync Service allows to leverage Android highly optimized Sync framework that allows to keep sync operations at a minimum and to have them scheduled oppurtunistically in order to reduce power consuption. On the server side is a ReSTful HTTP service that accepts the new data. There is no provision for sync of data from the server to the mobile since the main purpose of the application is to allow user to enter expenses in the system. Should the application be expanded to sync also in this direction GCM (Google Cloud Messaging) service would be a better choice from a power consumption standpoint, at least to notify the presence of new data.

Screenshot

expensesreporter's People

Contributors

nicolacimmino avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

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.