MCPcopy Index your code
hub / github.com/AndreAle94/moneywallet

github.com/AndreAle94/moneywallet @v4.0.5.10

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.0.5.10 ↗ · + Follow
4,778 symbols 14,376 edges 441 files 469 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MoneyWallet - Expense Manager [BETA]

License Release Donate

Download from Google Play Get it on F-Droid

Showcase

MoneyWallet is an application designed to help you keep track of your expenses. This repository contains the source code of the latest version, completely rewritten from scratch.

Redistributing this app as your own is NOT permitted.

Table of Contents

  1. History
  2. Donations
  3. Build
  4. FAQ
  5. Credits
  6. License

History

I have been working behind this project for a long time, originally born as a tool to learn Android development, it has evolved over time and has recently been completely revised as a university project for the DIMA course at Politecnico di Milano. As you may have noticed, the previous version on the PlayStore required a small in-app purchase to handle more than just one wallet. The idea was to invest the money earned to pay for my studies, unfortunately among the interest rates of the PlayStore and the local taxes of the individual countries the profit was practically derisory. I did not had the opportunity to continue the development with continuity due to the university and the little free time available. Only recently I had the opportunity to get the project in hand and I decided to make it open source. In this way, anyone who wants can contribute.

Donations

This project is completely free, I decided to completely remove the in-app purchase in favor of a donation policy. It contains no advertising and never will contain it. If you find this application useful you may consider the option of offering me a beer, in real life or through a donation. It would be a very appreciated gesture to support my work.

  • PayPal: https://www.paypal.me/andreale94
  • BTC: 1J3APoaFT2jcqRzpb8bEt2rwUn3mDpWE5U
  • BCH: qzaw9naw5c367r4du2eg6fvmkr7smwagru53lt67zl
  • ETH: 0x4ee996Bf75a89c75B18b4f0509c8c77B87D81392
  • LTC: LZW1AUMWN4BdUvSu8fujEYVLgqWH2HsLZs

Build

You can compile the application very simply: just clone this repository locally to your computer and Android Studio will take care of the rest. You have four different options to build it with two choices. The first choice is which version you want to build:

  • proprietary: this build flavor is designed to integrate Google Drive and Dropbox for a better user experience. It contains proprietary libraries (not open source) and requires the inclusion of valid api-keys to use these services. These keys must be registered in the file called gradle.properties in the root folder of the project before compiling.
  • floss: this build flavor is designed to contain only open source code and for this reason the integration with Google Drive and Dropbox has been removed.

The second choice is which map provider you want to use and you can choose between:

  • gmap: this build flavor uses Google Map as map provider and requires you to provide a valid API-key. This key must be registered in the file called gradle.properties in the root folder of the project before compiling.
  • osm: this build flavor uses OpenStreetMap as map provider.

To decide what kind of build to compile, use the appropriate menu of gradle to choose the desired combination of build flavors. If you want to build only open source code (e.g. for the F-Droid market) you should use 'floss' and 'osm'.

The current release in Google Play Store uses 'proprietary' and 'osm' with some changes to integrate also the Crashlytics framework and the In-App billing library.

FAQ

  1. why does the precompiled binary contain a huge icon pack while there are only a few icons in the source code? The icon pack license clearly states that the icons can not be distributed publicly. If you want to have the same package of icons you will have to buy them on their website. The few icons in the repository come from their small free icon pack with a license that allows their free use.
  2. Is this project still in development? Currently I do not have much time to devote to the project, as already explained I am a university student close to graduation and very busy. I can work on it from time to time but I can't promise continued and lasting support.
  3. Can i contribute to this project? Oh yes! You can freely fork this project and open new pull requests. Translations in other languages are also welcome (you will be credited within the application).

Credits

License

Copyright (c) 2018.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Extension points exported contracts — how you extend this code

IFile (Interface)
Created by andre on 21/03/2018. [8 implementers]
app/src/main/java/com/oriondev/moneywallet/model/IFile.java
Identifiable (Interface)
Created by andrea on 11/03/18. [17 implementers]
app/src/main/java/com/oriondev/moneywallet/model/Identifiable.java
CurrentWalletController (Interface)
Created by andrea on 04/09/18. [10 implementers]
app/src/main/java/com/oriondev/moneywallet/storage/preference/CurrentWalletController.java
Validator (Interface)
Created by andrea on 30/01/18. [15 implementers]
app/src/main/java/com/oriondev/moneywallet/ui/view/text/Validator.java
ToolbarController (Interface)
Created by andrea on 24/01/18. [5 implementers]
app/src/main/java/com/oriondev/moneywallet/ui/activity/ToolbarController.java

Core symbols most depended-on inside this repo

getString
called by 929
app/src/main/java/com/oriondev/moneywallet/storage/wrapper/AbstractHeaderCursor.java
getLong
called by 413
app/src/main/java/com/oriondev/moneywallet/storage/wrapper/AbstractHeaderCursor.java
getInt
called by 226
app/src/main/java/com/oriondev/moneywallet/storage/wrapper/DebtHeaderCursor.java
add
called by 214
app/src/main/java/com/oriondev/moneywallet/ui/view/chart/PieData.java
getContentResolver
called by 169
app/src/main/java/com/oriondev/moneywallet/storage/database/DataContentProvider.java
setNotificationUri
called by 165
app/src/main/java/com/oriondev/moneywallet/storage/database/MultiUriCursorWrapper.java
getInstance
called by 155
app/src/main/java/com/oriondev/moneywallet/utils/MoneyFormatter.java
close
called by 155
app/src/main/java/com/oriondev/moneywallet/storage/database/DatabaseImporter.java

Shape

Method 4,084
Class 572
Interface 96
Enum 26

Languages

Java100%

Modules by API surface

app/src/main/java/com/oriondev/moneywallet/storage/database/SQLDatabase.java111 symbols
app/src/androidTest/java/com/oriondev/moneywallet/storage/database/SQLDatabaseTest.java85 symbols
app/src/main/java/com/oriondev/moneywallet/storage/preference/PreferenceManager.java53 symbols
app/src/main/java/com/oriondev/moneywallet/ui/drawable/TextDrawable.java50 symbols
app/src/main/java/com/oriondev/moneywallet/ui/view/theme/ThemeEngine.java47 symbols
app/src/main/java/com/oriondev/moneywallet/storage/database/SQLDatabaseExporter.java47 symbols
app/src/main/java/com/oriondev/moneywallet/ui/view/text/MaterialEditText.java46 symbols
app/src/main/java/com/oriondev/moneywallet/ui/view/calendar/MonthView.java46 symbols
app/src/main/java/com/oriondev/moneywallet/storage/database/legacy/LegacyDatabaseImporter.java41 symbols
app/src/main/java/com/oriondev/moneywallet/ui/view/calendar/TimelineView.java40 symbols
app/src/main/java/com/oriondev/moneywallet/storage/database/json/JSONDataInputFactory.java37 symbols
app/src/main/java/com/oriondev/moneywallet/storage/database/Contract.java35 symbols

For agents

$ claude mcp add moneywallet \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact