magnusart / ekonomipuls Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://magnusart.github.com/Ekonomipuls
Home Page: http://magnusart.github.com/Ekonomipuls
Should generate a notice to the user.
HTC Desire to reproduce:
In EkonomipulsHome the pairing process is started if Ekonomipuls and BankDroid is not previously paired. Make sure that the transactions are imported after that process finishes successfully. Need to first load the account ID:s before able to load transactions, not implemented yet.
From jedi about fixing grammar and spelling
"En liten petitess bara: Du skulle inte kunna förminska texten något så att å-ringen inte blir skuren i tu? Misstänker att det är av samma anledning som det står Ovriga och inte Övriga.
Du får lov att ursäkta språknörden inom mig, men undvik gärna användningen av versal begynnelsebokstav på ord som, i det här fallet, varken inleder en rubrik eller är egennamn (Nöjen/Shopping -> Nöjen/shopping, 0 Transaktioner -> 0 transaktioner).
Byt gärna ut SEK mot kr. SEK känns väldigt internationellt.
Enligt svenskt språkbruk sätts dessutom ett mellanslag före procenttecknet."
Drawing bug in pie chart, middle of chart has several points, like a star.
Should be fixed by always drawing the largest pie last. SeriesEntry needs to be in a sorted collection.
Purpose:
Implementation:
Synchronize the raw data to a google spreadsheet through their API.
Offer a few standard templates that visualises the data in a similar way as the mobile app
Use:
Browse your visualized data on your computer or tablet.
Use function ImportRange(spreadsheet_key, sheet!range) to get the relevant data into other spreadsheets. From here imagination is the limit.
Should be a activity that is triggered before the home screen or when trying to load data from BankDroid.
When importing from BankDroid more than one time duplicate transactions are stored in Ekonomipuls.
The Reason is that BankDroid does not yet support Universal ID:s. Therefore BankDroid clears it's database and reimports transactions each time a sync is made. The result is duplicated transactions in Ekonomipuls.
This is dependent on Bankdroid Global Code branch: https://github.com/liato/android-bankdroid/tree/transaction-uid
It is nessecary to split the tags and categories into Income and Expense types for the pie chart rendering to make sense. I initially decided not to do it this way, but I can see that that makes it harder than having this destinction in the data model.
Changes will affect:
03-20 15:04:51.064: ERROR/AndroidRuntime(253): java.lang.RuntimeException: Unable to resume activity {se.ekonomipuls/se.ekonomipuls.EkonomipulsHome}: android.database.sqlite.SQLiteException: no such column: _id: , while compiling: SELECT _id, color, name FROM categories_report_view WHERE (rep_id = -1)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2950)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2965)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2516)
at android.app.ActivityThread.access$2200(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: no such column: _id: , while compiling: SELECT _id, color, name FROM categories_report_view WHERE (rep_id = -1)
at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:49)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:49)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1221)
at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:316)
at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:266)
at se.ekonomipuls.database.AbstractDbFacade.query(AbstractDbFacade.java:114)
at se.ekonomipuls.database.analytics.AnalyticsCategoriesDbFacade.getCategories(AnalyticsCategoriesDbFacade.java:71)
at se.ekonomipuls.database.analytics.AnalyticsCategoriesDbFacade.getCategoriesByReport(AnalyticsCategoriesDbFacade.java:44)
at se.ekonomipuls.EkonomipulsHome.populateSeriesEntries(EkonomipulsHome.java:150)
at se.ekonomipuls.EkonomipulsHome.populateData(EkonomipulsHome.java:133)
at se.ekonomipuls.EkonomipulsHome.refreshView(EkonomipulsHome.java:58)
at se.ekonomipuls.EkonomipulsHome.onResume(EkonomipulsHome.java:93)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
at android.app.Activity.performResume(Activity.java:3763)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2937)
Build a Web App that holds common configuration and allows admins to manage filter rules and categories. Anonymous users should be able to submit new filter rule suggestions or categories from the Android App.
Functionality to share individual transactions, monthly budget status or a user report to social media like Facebook, Twitter etc.
Ie.
Subject: Ekonomipuls - Kalle Kallesson handlade för 300kr på Awesome Rags.
Comment: Ny skjorta.
Subject: Ekonomipuls - Kalle Kallesson har spenderat 50% av sin månadsbudget.
Comment: Efter tre dagar... börjar bra.
Option to exclude amount should be user configurable.
Build a rest web services client that consumes Ekonomipuls.se services.
Use to find out how the application is used.
For debugging purposes.
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "\\data\\{package name}\\databases\\{database name}";
String backupDBPath = "{database name}";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
} catch (Exception e) {}
Since BankDroid is protected by a KeyLock screen, Ekonomipuls should be as well to make sure that no information easily can be gained by opening Ekonomipuls and synchronizing data.
When new transactions arrive, if the user presses the back button during import of new transactions, the new transactions notification is removed.
Pie Chart should include the initial bank accounts balance if no transaction history exists.
This could easily be implemented as a setting that makes sure that the total remainder between the total balance and the transactions is saved as a "special" transaction with the baseline balance for the transaction history.
A constraint fails (ie. the filter rule is inserted multiple times). However the application seems to function normally.
Suggestions: extract the code to initiate category, tags and filter rules entirely out of AnalyticsDbHelper and merge it into the ConfiguratorService.
From Ziq:
Jag har också lite tankar kring kategoriseringar i framtiden. Det finns allför många små butiker i sverige för att ett fåtal männinskor rimligtvis kan skapa en databas över dem.
Rimligtvis så borde man kunna gå in i en lista på ej kategoriserade transaktioner och klicka på en och skapa en regel utifrån den. Den regeln hamnar laddas då upp till en förslagsdatabas och nästa person som klickar på en okategoriserad transaktion som matchar förslaget får då välja att acceptera eller döma ut det.
Om 5-10 personer godkänd förslaget så överförs det till den automatiska kategoriseringen. Om man inte godkänner det så får man välja om man ska döma ut det eller avbryta. Om 3 personer dömer ut en regel så försvinner den.
Vad tror ni andra om en sådan lösning?
Just att kategoriseringen funkar bra är ju en förutsättning för användbarheten.
The user should be able to enable disable import from certain accounts and/or account types in the GUI.
Already exists but is commented away because it didn't work.
A purchase made at the local supermarket is often food, but could also be other things. It is not uncommon that both food and others end up on the same purchase.
In order to get the figures under the correct budget label the user should be able to split the purchase into several labels.
Most commonly > Move x kr to other label
Also usable > Move x percentage to other label (Sometimes one thing can have multiple uses and it's conveniant not to have to calculate the sum)
Make it so that the report on the main screen does not show all categories.
A functionality that allows for creation of fiter rules and then sends them to a peer review app where they can be included and then synced back into the application. Filter rule needs a GUID so that it can both be stored locally and then matched back when implemented.
Create welcome screen that explains the pairing process before launching the pairing process with BankDroid. The user should be able to cancel the wizard.
Because transactions from BankDroid will not always have Global Unique ID:s, Ekonomipuls should always discard any existing transactions that does not have a global ID. Example a transaction "SKYDDAT BELOPP" would later become a normal normal transaction with proper description.
This will ensure that there are no duplicate transactions in Ekonomipuls.
If an import from BankDroid is under way in the background at the same time as the gui requests data the database locks up and the application crashes.
Should be fixed by using a content provider in the bottom instead of using the DbHelper directly.
The import summary screen should list which transactions are imported grouped by category. Checkboxes can set Transactions to hidden/ignored.
Implement application lifecycle functionality.
The GUI Design today doesn't really cut it. There needs to be a overhaul that fits together with what the target user expect.
The user Emma @ https://github.com/magnusart/Ekonomipuls/wiki
Split this task or define it further.
Should be added to pom.xml
There can be times when the user want's to force a synchronization. For example after installing a new version of Ekonomipuls.
The view should be notified when new data has arrived.
Scenario is here:
https://github.com/magnusart/TranStatistics/wiki/Manage-budgets
Order Android Market Account so Ekonomipuls can be released into the Market.
The sum of the transactions do not equal the sum of all bank accounts. Implement fake transaction that contains the right amout to balance out.
The total amount is way to much for these transaction they should cancel each other out. Should be a rule or step in the import that handles these.
From Ziq:
Pie-charten visar upp både inkomster och utgifter i samma, jag antar att planen är att ha en för inkomster och en för utgifter i framtiden? Inkomsterna har jag rätt bra koll på så för min del så får de gärna vara en valbar visning.
Design Ekonomipuls Github homepage so that information about latest releases are captured in one place.
To make sure that users later can contribue with new filter rules that will not collide.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.