SpendWise is a comprehensive financial management application that helps users take control of their personal finances through several key features:
- Financial Insights - Interactive charts and reports provide real-time visualization of your spending patterns and financial health
- Monthly Budget Management - Set and manage monthly budgets to control spending across different categories
- Saving Goals - Create and track progress towards financial goals like vacations, emergency funds, or major purchases
- Expense Tracking - Easily add, edit, and delete transactions with categorization to monitor where your money goes
This project was created with Better-T-Stack, a modern TypeScript stack that combines Next.js, Next, NONE, and more.
- TypeScript - For type safety and improved developer experience
- Next.js - Full-stack React framework
- TailwindCSS - Utility-first CSS for rapid UI development
- shadcn/ui - Reusable UI components
- Bun - Runtime environment
- Drizzle - TypeScript-first ORM
- PostgreSQL - Database engine
- Authentication - Email & password authentication with Better Auth
First, install the dependencies:
bun installEnvironment variable examples can be found in:
apps/server/.env.examplefor the backend APIapps/web/.env.examplefor the frontend application
Copy these to create your own .env files with the appropriate values.
This project uses PostgreSQL with Drizzle ORM.
-
Make sure you have a PostgreSQL database set up.
-
Update your
apps/server/.envfile with your PostgreSQL connection details. -
Apply the schema to your database:
bun db:pushThen, run the development server:
bun devOpen http://localhost:3001 in your browser to see the web application.
The API is running at http://localhost:3000.
spendwise/
├── apps/
│ ├── web/ # Frontend application (Next.js)
│ └── server/ # Backend API (Next, NONE)
bun dev: Start all applications in development modebun build: Build all applicationsbun dev:web: Start only the web applicationbun dev:server: Start only the serverbun check-types: Check TypeScript types across all appsbun db:push: Push schema changes to databasebun db:studio: Open database studio UI