Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/albertomorini/walletter
A simple personal finance tool
https://github.com/albertomorini/walletter
client-server ionic javascript mongodb node nodejs react reactjs rest-api typescript webapp webservice
Last synced: 2 months ago
JSON representation
A simple personal finance tool
- Host: GitHub
- URL: https://github.com/albertomorini/walletter
- Owner: albertomorini
- Created: 2023-01-15T14:40:52.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-11T20:58:03.000Z (over 1 year ago)
- Last Synced: 2023-09-12T05:38:47.317Z (over 1 year ago)
- Topics: client-server, ionic, javascript, mongodb, node, nodejs, react, reactjs, rest-api, typescript, webapp, webservice
- Language: JavaScript
- Homepage:
- Size: 19.6 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Walletter
• A simple and minimal, personal finance tool
• You can do two things with money: earn it or spend it.## IDEA:
Every **transaction** has the same metadata:- Amount of money (spent or earned)
- Date of transasction
- Reference/Motivation (eg. salary, gorcery, gift etc)
- Verse (if is an income or an outcome)So the database goes along.
## Database
Made with Mongo, with two collections we can do the job.
WT_TRANSACTIONS
```json
{
"Email":"alberto@morini",
"Amount": 44,
"Date":"2023-03-10",
"IsOutcome": true,
"Reference":"Gorcery"
}
```
WT_USERS```JSON
{
"Email": "user@email",
"Password": "98a3629dc3d351915dfe959221ccb812",//md5 of psw
"Premium": false //not used right now
}
```## UX
The dashboard start with 4 widget, clicking some of these you can go in fullscreen mode and see more results.
![walletter](./docs/img/1.png)
![fullscreen](./docs/img/fullscreen.jpg)
You can add a new transaction and searching for existing reference or add a new one.
![search](./docs/img/search.jpg)
From my iPad (have to hide some reference, sorry)
![from_iPad](./docs/img/from_iPad.jpg)### Various widget
Sankey
![sankey](./docs/img/sankey.png)Fullscreen of calendar, clicking a day
![allday](./docs/img/allOfDay.jpg)Full screen of grouped (is from my personal account, had to hide, sorry again)
![grouped](./docs/img/grouped.jpg)
You can export or import a backup, saved on JSON
![expoimpo](./docs/img/expoimpo.jpg)
But first, you need to login!
![login](./docs/img/login.png)
## Usage
NodeJS and MongoDB are required.
> (suggestion) You can run MongoDB in docker as well.Once executed the server (node server.js) and the client go to the server port (1999) will ask you to trust of self-signed certified, than, will redict you to the web app.
### Run the server
`$ node ./walletter/server/server.js`
> 10.0.0.3 is my Mac's private IP, config yours into the ServerConfig.json into src folder of Walletter client folderRunnning the client in https mode:
1. `$ cd ./walletter/Walletter/`
2. `npm run build`
3. `npx serve -s build --listen 1998 --ssl-cert cert.pem --ssl-key key.pem`**there's "starter.sh" a shell script which start docker/client/server all in once**
## Certificates
### Building on iOS
`ionic capacitor build ios --prod`
- via xcode we build the app and bring into the device
- we need to allow the developer mode in the setting of the device (to run with a physical device)... Then trust the author on the general settings### Trust the self signed
- Import the certificate generated into the device
- Find in "files" -> then open> https://support.apple.com/en-us/HT204477
## TODO
- at the server startup check if collections exists
- logs