/ocular

💰 Simplistic, beautiful and straight-forward budgeting app to track your budget across the years. Easy to use, to get started and to set up.

Primary LanguageVueMIT LicenseMIT


Logo


Ocular - Helps you see your budgets more clearly ✨

CI Status

Tip

Check out the demo to get a live preview with demo data!

Features

  • 🦾 Self-hosted. Deploy it via docker-compose in seconds.
  • 🕶️ Beautiful light and dark theme.
  • 💻 Installable as a PWA.
  • 🔼 Import your data from Google sheet's annual planner.
  • 🛠️ Export your data as a single .json-file.
  • ✨ Dashboard with sankey diagram and a detailed view.
  • 🎇 Track budgets across multiple years.
  • 🙈 Privacy mode for when you're in a public place.
  • ⚡️ Simple, fast and straight-forward UI.
  • 🫂 User management and authentication.
  • ...and more to come!

Summary

Ocular is a small budgeting app as an alternative to Google sheet's annual budget planner. Its goal is not to track individual expenses, work with multiple currencies at a time or anything related (if you're looking for something like this, check out firefly-iii).

This app comes with its own backend (by using genesis), so the only thing you need to do is to host it somewhere. Your data stays on your server and is not shared with anyone else.

Setup

Development

  1. Make sure you have the latest node LTS installed.
  2. Install pnpm via npm i -g pnpm.
  3. Clone this repository.
  4. Run pnpm install in the root directory.
  5. Copy the .env.example to .env, you can leave the default values.
  6. Start the backend with pnpm run genesis.
  7. Start the frontend with pnpm run dev.
  8. Open http://localhost:3000 in your browser.

Note

To modify the backend, head over to genesis.

Production

This app is deployed using docker-compose. See ocular-docker for deployment.

Contributing

If you want to work on this, make sure to out the contributing guidelines :) Other than that, follow the steps under development to get started.