ProductPromotion
Logo

Open.Source

made by https://0x3d.site

GitHub - BrunoBernardino/budgetzen-web: Simple, Encrypted Budgets & Expenses. 💵
Simple, Encrypted Budgets & Expenses. 💵. Contribute to BrunoBernardino/budgetzen-web development by creating an account on GitHub.
Visit Site

GitHub - BrunoBernardino/budgetzen-web: Simple, Encrypted Budgets & Expenses. 💵

GitHub - BrunoBernardino/budgetzen-web: Simple, Encrypted Budgets & Expenses. 💵

Budget Zen - Web App

This is the web app for the Budget Zen app, built with Deno and deployed using docker compose.

This is v3, which is end-to-end encrypted with open Web Standards, and works via web on any device (it's a PWA - Progressive Web App).

It's not compatible with Budget Zen v2 (end-to-end encrypted via Userbase) which you can still get locally from this commit, nor v1 (not end-to-end encrypted), which you can still get locally from this commit. You can still export and import the data as the JSON format is the same across all 3 versions (unencrypted).

NOTE: If your Android launcher doesn't show PWAs as an app, I've got a solution for you: a simple webview app.

Self-host it!

Deploy to DigitalOcean

Deploy to Render

Or check the Development section below.

NOTE: You don't need to have emails (Brevo) and subscriptions (Stripe) setup to have the app work. Those are only used for allowing others to automatically manage their account. You can simply make any user.status = 'active' and user.subscription.expires_at = new Date('2100-01-01') to "never" expire, in the database, directly.

Framework-less

This right here is vanilla TypeScript and JavaScript using Web Standards. It's very easy to update and maintain.

It's meant to have no unnecessary dependencies, packagers, or bundlers. Just vanilla, simple stuff.

Requirements

This was tested with Deno's version stated in the .dvmrc file, though other versions may work.

For the PostgreSQL dependency (used when running locally, self-hosted, or in CI), you should have Docker and docker compose installed.

If you want to run the app locally with SSL (Web Crypto standards require https except for Chrome), you can use Caddy (there's a Caddyfile that proxies https://localhost to the Deno app).

Don't forget to set up your .env file based on .env.sample.

Development

$ docker compose up # (optional) runs docker with postgres, locally
$ sudo caddy run # (optional) runs an https proxy for the deno app
$ make migrate-db # runs any missing database migrations
$ make start # runs the app
$ make format # formats the code
$ make test # runs tests

Other less-used commands

$ make exec-db # runs psql inside the postgres container, useful for running direct development queries like `DROP DATABASE "budgetzen"; CREATE DATABASE "budgetzen";`

Structure

  • Backend routes are defined at routes.ts.
  • Publicly-available files are defined at public/.
  • Pages are defined at pages/.
  • Cron jobs are defined at crons/.
  • Reusable bits of code are defined at lib/.
  • Database migrations are defined at db-migrations/.

Deployment

  • Just push to the main branch.

TODOs:

  • Enable true offline mode (securely cache data, allow read-only)

Articles
to learn more about the open-source concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Open-Source.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory