Budget Tracker App

A comprehensive budget tracking web application built for Val Town with mobile-first design.

Features

  • šŸ“± Mobile-responsive design
  • šŸ’° Income and expense tracking
  • šŸ“Š Budget categories and spending limits
  • šŸ“ˆ Visual analytics with charts
  • šŸ’¾ SQLite data persistence
  • šŸ”’ Simple user authentication
  • šŸ“± PWA capabilities for app-like experience

Project Structure

ā”œā”€ā”€ backend/
│   ā”œā”€ā”€ database/
│   │   ā”œā”€ā”€ migrations.ts    # Database schema setup
│   │   └── queries.ts       # Database query functions
│   ā”œā”€ā”€ routes/
│   │   ā”œā”€ā”€ auth.ts         # Authentication routes
│   │   ā”œā”€ā”€ transactions.ts # Transaction CRUD operations
│   │   ā”œā”€ā”€ budgets.ts      # Budget management
│   │   └── analytics.ts    # Analytics and reporting
│   └── index.ts            # Main Hono app entry point
ā”œā”€ā”€ frontend/
│   ā”œā”€ā”€ components/
│   │   ā”œā”€ā”€ App.tsx         # Main app component
│   │   ā”œā”€ā”€ Dashboard.tsx   # Dashboard overview
│   │   ā”œā”€ā”€ TransactionForm.tsx
│   │   ā”œā”€ā”€ TransactionList.tsx
│   │   ā”œā”€ā”€ BudgetManager.tsx
│   │   └── Analytics.tsx
│   ā”œā”€ā”€ index.html          # Main HTML template
│   ā”œā”€ā”€ index.tsx           # Frontend entry point
│   └── style.css           # Custom styles
└── shared/
    └── types.ts            # Shared TypeScript types

Tech Stack

  • Backend: TypeScript with Hono framework
  • Frontend: React 18.2.0 with TypeScript
  • Database: SQLite
  • Styling: TailwindCSS
  • Charts: Chart.js
  • Icons: Lucide React

Getting Started

  1. Set the backend trigger to HTTP
  2. The app will automatically set up the database on first run
  3. Access the app through the HTTP endpoint
  4. Create an account and start tracking your budget!

API Endpoints

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/transactions - Get user transactions
  • POST /api/transactions - Create new transaction
  • PUT /api/transactions/:id - Update transaction
  • DELETE /api/transactions/:id - Delete transaction
  • GET /api/budgets - Get user budgets
  • POST /api/budgets - Create/update budget
  • GET /api/analytics - Get spending analytics