Track expenses, monitor budgets, and visualize spending patterns across multiple accounts.
Track multiple accounts in one place
Manage and categorize your transactions
Try out the application using these demo credentials:
Email: eric.test@gmail.com
Password: 123
Note: This is a demo account with sample data. For security reasons, please use your own credentials in production.
- 📊 Multi-Account Management - Track bank, mobile money, and cash accounts
- 📈 Dynamic Reports - Generate custom reports for any time period
- 💰 Budget Tracking - Set and monitor spending limits
- 🏷️ Smart Categorization - Organize transactions with categories and subcategories
- 📱 Responsive Design - Works seamlessly on desktop and mobile
- 📊 Visual Analytics - Beautiful charts and spending breakdowns
- Framework: Next.js 14, React
- Styling: Tailwind CSS
- Database: PostgreSQL
- Authentication: NextAuth.js
- Deployment: Vercel
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE accounts (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id) ON DELETE CASCADE,
name VARCHAR(100) NOT NULL,
balance DECIMAL(15, 2) DEFAULT 0.00,
account_type VARCHAR(50),
amount_limit DECIMAL(15, 2) NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE categories (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id) ON DELETE CASCADE,
name VARCHAR(100) NOT NULL,
parent_id INT REFERENCES categories(id) ON DELETE SET NULL,
user_id INT REFERENCES users(id) ON DELETE SET NULL,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE transactions (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id) ON DELETE CASCADE,
account_id INT REFERENCES accounts(id) ON DELETE CASCADE,
category_id INT REFERENCES categories(id) ON DELETE SET NULL,
amount DECIMAL(15, 2) NOT NULL,
transaction_date TIMESTAMP DEFAULT NOW(),
description TEXT,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
- Clone the repository
git clone [REPO_URL]
- Install dependencies
npm install
- Configure environment variables
cp .env.example .env.local
- Start the development server
npm run dev
Check out the live demo at [DEPLOYMENT_URL]
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.