Skip to content

sidsurakanti/finance-analytics-app

Repository files navigation

Overview

Keep track of where your money goes.

Features

  • create and manage income sources
  • automatic income tracking
  • manage checking and savings balances
  • view analytics and charts to see spending habits
  • add, update, delete transactions
  • search, sort, filter transactions
  • set up recurring transactions
  • quick add recurring transactions

Stack

Next.js TypeScript PostgreSQL TailwindCSS Vercel Zod React

Getting started

You can either use this project on it's website or by spinning a seperate instance on your local machine.

Prerequisites

Installation

Clone the repository

git clone https://github.com/sidsurakanti/finance-analytics-app.git

Navigate to the project directory

cd finance-analytics-app

Install dependencies

npm i --legacy-peer-deps # use legacy peer deps b/c some packages don't have support for React 19 yet

Create a new .env.local file and populate it

# auth.js
# just a random string for jwt auth, run: openssl rand -base64 32
AUTH_SECRET=""
# see: https://github.com/settings/developers
# set your callback url as http://[origin]/api/auth/callback/github
AUTH_GITHUB_ID=""
AUTH_GITHUB_SECRET=""
# see: https://console.cloud.google.com/apis/credentials/
AUTH_GOOGLE_ID=""
AUTH_GOOGLE_SECRET=""

# db
# refer to @vercel/postgres docs: https://vercel.com/docs/storage/vercel-postgres/quickstart
POSTGRES_URL=""
POSTGRES_PRISMA_URL=""
POSTGRES_URL_NON_POOLING=""
POSTGRES_USER=""
POSTGRES_HOST=""
POSTGRES_PASSWORD=""
POSTGRES_DATABASE=""

Start up the server

npm run dev

Your app should now be running on http://localhost:3000.

Contributing

Refer to CONTRIBUTING.md

Roadmap

  • Clean up code
  • Write a better README
  • Look into Plaid's API to auto-fetch transactions from user's credit cards

Support

If you need help with anything or want to request new features, you can reach me on discord 👍