https://github.com/poveroh/poveroh
A unified platform to track your wealth.
https://github.com/poveroh/poveroh
express postgresql prisma react tailwindcss turborepo typescript
Last synced: 3 months ago
JSON representation
A unified platform to track your wealth.
- Host: GitHub
- URL: https://github.com/poveroh/poveroh
- Owner: Poveroh
- Created: 2025-02-02T14:42:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-03T20:12:21.000Z (about 1 year ago)
- Last Synced: 2025-04-03T20:34:05.751Z (about 1 year ago)
- Topics: express, postgresql, prisma, react, tailwindcss, turborepo, typescript
- Language: TypeScript
- Homepage: https://poveroh.com
- Size: 3.87 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README

# Poveroh
#### A Open-Source platform to track personal finance, built for clarity
Report Bug
·
Request Feature
[](https://www.gnu.org/licenses/gpl-3.0)


---
> “Money doesn’t buy happiness, but I’d rather cry in a Ferrari.”
## :star2: About Poveroh
Poveroh is an open-source, web-based platform for tracking personal finances.
### Why?
This platform was born from the desire to track personal finances in a detailed and structured way.
Ok, there are thousands of similar applications out there, but none of them truly fit certain needs. Many lack a clean and intuitive UI/UX, and the few that do are often expensive—locked behind subscriptions or premium plans. That’s why this project was started - it aims to provide a scalable, open-source alternative that is easy to use, fast, and flexible—built with simplicity and clarity in mind.
This platform is essentially a web-based version of a Google Spreadsheet finance tracker, enhanced with features to make everything more user-friendly (the mobile app is planned and is included in the roadmap :) ).
### How it works?
The platform aggregates multiple bank accounts.
Users can manually input transactions or upload them via CSV or PDF.
Since it’s designed to track personal wealth, a snapshot of the month (including investments) will be taken on the last day of each month. This allows users to keep a historical record, generate reports, and monitor the growth of their assets over time.
In addition to individual transactions and bank account aggregation, the goal is to provide a platform for tracking investments as well, allowing to add financial products such as ETFs, stocks, bonds, crypto, and more.
> **Note**: Since this platform was designed based on personal needs, it may not be fully complete or include all the features that other users might consider essential.
>
> If you notice something missing from the roadmap or have an idea you’d like to see implemented, feel free to open an issue and share your suggestion!
## :space_invader: Tech Stack
- Typescript
- Next.js
- TailwindCSS
- Better-auth
- Node.js
- Express.js
- Prisma
## :art: Color Reference
| Color | Hex |
| ---------------- | ------- |
| Primary Color | #4E594A |
| Secondary Color | #278664 |
| Background Color | #1C1C1C |
| Text Color | #FFFFFF |
## :toolbox: Getting Started
To get a local copy up and running, please follow these simple steps.
### :bangbang: Prerequisites
This project uses:
- [Node.js](https://nodejs.org/en/download/package-manager) (>= 22)
- [Docker](https://docs.docker.com/get-started/get-docker/) - to run PostgreSQL and NGIX CDN
- NPM
## :running: Run Locally
### Get start
1. Clone the project
```bash
git clone https://github.com/Poveroh/poveroh.git
```
2. Go to the project folder
```bash
cd poveroh
```
3. Install dependencies
```bash
npm install
```
4. Copy `.env.example` file to `.env`, then edit it with the necessary values. For more details, read [docs](docs/ENV_SETUP.md).
> If you don't modify them, the default values are sufficient to run the project.
>
> **Warning**: Since these are default values, security is not guaranteed.
**Environment Files**: The project uses a dual environment system:
- `.env` - For local development (DATABASE_HOST=localhost:5432)
- `.env.production` - For Docker deployments (DATABASE_HOST=db:5432)
Running `npm run setup` will automatically create both files from `.env.example`.
### Setup Database and CDN
> Docker and Docker Compose must be installed, up, and running on the machine.
1. Run `setup` file
```bash
npm run setup
```
Note: the setup flow may create a small local `proxy` service and to make local subdomains work you may need to add host entries (the repository includes `scripts/setup/proxy.js` which can add them for you).
The command will execute the following steps:
- Create and run database docker image.
- Navigate to the `packages/prisma` directory.
- Generate the Prisma client.
- Apply any pending migrations to the database using Prisma.
- Create and run CDN ngix docker image.
> **⚠️ Warning:**
> If you encounter any difficulties or something doesn't go as planned, read [this file](scripts/README.md) to execute it manually.
2. Create a user; open a browser to [localhost:3000/sign-up](http://localhost:3000/sign-up) and sign up.
3. _Optionally_, you can run the following exactly script to generate and fill database with fake data:
```bash
npm run setup:data --user=
```
> You can find user ID on the [personal information page](http://localhost:3000/account/profile)
### Build and run
1. Build project
```bash
npm run build
```
2. Run project
```bash
npm run dev
```
## :rocket: Deployment
### Docker
1. First of all, create a folder
```bash
mkdir poveroh-selfhost
```
2. Navigate to this folder using the cd command.
```bash
cd poveroh-selfhost
```
3. Download setup file
```bash
curl -fsSL -o setup.sh https://raw.githubusercontent.com/Poveroh/poveroh/refs/heads/main/scripts/docker/setup.sh
```
4. Make it executable
```bash
chmod +x setup.sh
```
5. Then run it
```bash
./setup.sh
```
> The script will create `.env` file. If you do not modify it, the default values are sufficient to run the project.
>
> If you want to build and run from scratch, download the repo (run only [Get start](#get-start) steps to download and setup), then run `npm run docker-dev`
### Railway
[](https://railway.com/deploy/UxenGr?referralCode=NfYCdO&utm_medium=integration&utm_source=template&utm_campaign=generic)
## :handshake: Contribuite
This repository follows the [GitHub](https://docs.github.com/en/get-started/using-github/github-flow) approach.
The development branch is `main`.
For more info, read the [docs](docs/CONTRIBUTING.md).
## :compass: Roadmap
In running order:
- [x] Login
- [x] Categories & subcategories
- [x] Bank accounts
- [x] Subscriptions
- [x] Transaction
- [x] Manual insert
- [ ] Upload from CSV or PDF
- [ ] Month's snapshot
- [ ] Reports
- [ ] Investments
- [ ] Mobile app (iOS/Android) [probably in Flutter]
To give it an extra boost:
- [ ] Live investments
- [ ] What if: Based on monthly or annual spending, determine what you could have afforded if you hadn’t spent that money. This can help evaluate whether it’s necessary to reduce spending in non-essential categories to achieve certain goals.
- [ ] Memes
- [ ] Open banking
## :warning: License
Poveroh is released under the [GNU Affero General Public License v3.0 (AGPL-3.0)](https://github.com/Poveroh/poveroh/blob/main/LICENSE).
See LICENSE.txt for more information.
## :link: Useful links
- [Github Repo](https://github.com/Poveroh/poveroh)
- [Figma file](https://www.figma.com/design/SZz6f8cZ1mIE5s6Z4WGshu/Poveroh)