Skip to main content

Quickstart Guide

This guide will walk you through the essential steps to start tracking your finances with Cashify. In just a few minutes, you’ll create your first account, set up categories, and record your first transaction.
This guide assumes you’ve already installed Cashify on your system.

Prerequisites

Before you begin, ensure:
  • Cashify is installed and running at http://localhost:8000
  • You have created a user account or authenticated via GitHub
  • Your database migrations have been executed

Step 1: Access the Dashboard

After logging in, you’ll be redirected to the dashboard. This is your financial command center where you can see:
  • Net worth overview
  • Income and expense summaries
  • Recent transactions
  • All your accounts at a glance
1

Navigate to Dashboard

Access the dashboard by visiting http://localhost:8000/dashboard after authentication
2

Explore the Interface

Familiarize yourself with the layout:
  • Account cards at the top
  • Summary statistics (Net Worth, Income, Expense)
  • Interactive charts for trends
  • Recent transactions panel

Step 2: Create Your First Account

Accounts represent your financial sources - checking accounts, savings, cash, or credit cards.
1

Navigate to Accounts

From the dashboard, click the ”+ Account” card or navigate to /accounts/create
2

Fill in Account Details

The account creation form requires:
// Account attributes
'name' => 'Checking Account',     // Required: Account name
'balance' => 1500.00,              // Required: Starting balance
'color' => 'blue'                  // Required: Visual identifier
<form action="{{ route('accounts.store') }}" method="POST">
    @csrf
    
    <!-- Account Name -->
    <x-forms.label for="name" :value="__('Name')"/>
    <x-forms.input id="name" name="name" type="text" />
    
    <!-- Starting Balance -->
    <x-forms.label for="balance" :value="__('Starting at')"/>
    <x-forms.input id="balance" name="balance" type="text" />
    
    <!-- Color Selection -->
    <x-forms.radio.group type="color">
        @foreach($availableColors as $color)
            <x-forms.radio.color 
                name="color" 
                color="{{ $color }}" 
                id="{{ $color }}" />
        @endforeach
    </x-forms.radio.group>
    
    <x-buttons.form>Add Account</x-buttons.form>
</form>
3

Choose a Color

Select a color badge to help visually distinguish this account from others. Available colors include blue, green, red, purple, and more.
4

Save the Account

Click “Add Account” to create your account. You’ll be redirected to the accounts index where you can see all your accounts.
The starting balance should reflect your actual current balance. All future transactions will adjust this amount automatically.

Step 3: Create Categories

Categories help organize your transactions into meaningful groups like “Groceries”, “Salary”, “Transportation”, etc.
1

Navigate to Categories

Go to /categories/create or click “Categories” in the navigation menu and select “Create Category”
2

Choose Category Type

Decide if this is an Income or Expense category:
// Category types
'type' => 'expense'  // For money going out
'type' => 'income'   // For money coming in
3

Configure the Category

Set up your category with these attributes:
protected $fillable = [
    'name',      // Category name (e.g., "Groceries")
    'type',      // 'income' or 'expense'
    'color',     // Visual color identifier
    'icon',      // Material Design icon name
];
4

Select an Icon

Choose a Material Design icon that represents your category. Cashify includes icon filtering with metadata tags for easy searching.
5

Create Multiple Categories

Create a few categories to get started:Expense Categories:
  • Groceries (shopping_cart, green)
  • Transportation (directions_car, blue)
  • Entertainment (movie, purple)
  • Utilities (bolt, yellow)
Income Categories:
  • Salary (payments, emerald)
  • Freelance (work, blue)
  • Investment (trending_up, green)
Categories are user-specific, so you can customize them to match your exact spending and income patterns.

Step 4: Record Your First Transaction

Now you’re ready to track your financial activity!
1

Navigate to Create Transaction

Go to /transactions/create or click “Add Transaction” from the transactions page
2

Choose Transaction Type

Select whether this is an Expense or Income transaction. The form will show relevant categories based on your selection.
<x-tabs.button-group>
    <x-tabs.button>
        {{__('Expense')}}
        <x-icon class="text-red-500">arrow_drop_down</x-icon>
    </x-tabs.button>
    <x-tabs.button>
        {{__('Income')}}
        <x-icon class="text-emerald-500">arrow_drop_up</x-icon>
    </x-tabs.button>
</x-tabs.button-group>
3

Select a Category

Choose the appropriate category for this transaction:
  • For Expenses: Select from your expense categories (e.g., Groceries, Transportation)
  • For Income: Select from your income categories (e.g., Salary, Freelance)
4

Select an Account

Choose which account this transaction affects:
<x-forms.radio.group>
    @foreach($accounts as $account)
        <x-forms.radio.button 
            name="account_id" 
            :id="'account-'.$account->id"
            :value="$account->id">
            {{ $account->name }}
        </x-forms.radio.button>
    @endforeach
</x-forms.radio.group>
5

Fill in Transaction Details

Complete the transaction form:
[
    'title' => 'Weekly Grocery Shopping',     // Required
    'amount' => 85.50,                        // Required
    'details' => 'Produce, dairy, and meat',  // Optional
    'created_at' => now(),                    // Optional (defaults to now)
    'category_id' => $categoryId,             // Required
    'account_id' => $accountId,               // Required
]
6

Submit the Transaction

Click “Add Transaction” to save. The system will automatically:
  • Convert expense amounts to negative values
  • Update your account balance
  • Update your net worth
  • Create a transaction record
// Behind the scenes in TransactionController
public function store(TransactionRequest $request): RedirectResponse
{
    $attributes = $request->validated();
    $account = Account::findOrFail($attributes['account_id']);
    $category = Category::findOrFail($attributes['category_id']);
    
    // Convert expenses to negative amounts
    if ($category->type == 'expense') {
        $attributes['amount'] = -abs($attributes['amount']);
    }
    
    // Update account balance
    $account->update([
        'balance' => $account->balance + $attributes['amount'],
    ]);
    
    // Create transaction
    Auth::user()->transactions()->create($attributes);
    
    // Update net worth tracking
    updateNetworth();
    
    return Redirect::route('transactions.index');
}
Always enter amounts as positive numbers. Cashify automatically converts expense amounts to negative values internally.

Step 5: View Your Financial Overview

Return to the dashboard to see your updated financial snapshot:
1

Check Updated Balances

Your account balance should reflect the transaction you just created
2

Review Charts

  • Net Worth Chart: Shows your financial trajectory over time
  • Spending by Category: Visualizes where your money goes
The charts use ApexCharts for interactive, responsive visualizations:
// Net worth chart configuration
const networthChartOptions = {
    series: [{
        name: "Net Worth",
        data: networthChartData  // Your financial data
    }],
    chart: {
        type: 'area',
        height: 350,
        toolbar: { show: true }
    },
    xaxis: {
        type: 'datetime',
        tickAmount: 6
    }
};
3

Browse Recent Transactions

The dashboard shows your latest transactions grouped by date, with tabs for:
  • All transactions
  • Expenses only
  • Income only

Next Steps

Now that you’ve mastered the basics, explore more features:

Transfer Between Accounts

Learn how to move funds between your accounts with automatic transaction loggingNavigate to an account’s detail page and click “Transfer” to move money between accounts.

Filter & Search Transactions

Use the transactions index page to:
  • Filter by category
  • Filter by amount range
  • Search by title or details
  • Sort by date or amount

Edit Transactions

Click any transaction to edit it. Cashify automatically:
  • Adjusts account balances
  • Handles account transfers
  • Maintains accurate net worth

Explore Analytics

The dashboard provides insights into:
  • Spending trends over time
  • Category-wise expense breakdown
  • Income vs. expense patterns
  • Net worth progression

Understanding the Data Model

Cashify uses a simple but powerful data structure:
Each user has their own isolated financial data. Authentication is handled via Laravel Breeze with optional GitHub OAuth integration.
class Account extends Model
{
    protected $fillable = ['name', 'balance', 'color'];
    
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }
    
    public function transactions(): HasMany
    {
        return $this->hasMany(Transaction::class);
    }
}
Accounts track balances and are updated automatically with each transaction.
class Category extends Model
{
    protected $fillable = ['name', 'type', 'color', 'icon'];
    
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }
    
    public function transactions(): HasMany
    {
        return $this->hasMany(Transaction::class);
    }
}
Categories can be ‘income’, ‘expense’, or ‘correction’ types.
class Transaction extends Model
{
    protected $guarded = [];
    
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }
    
    public function account(): BelongsTo
    {
        return $this->belongsTo(Account::class);
    }
    
    public function category(): BelongsTo
    {
        return $this->belongsTo(Category::class);
    }
}
Transactions tie everything together, linking users, accounts, and categories.

Tips for Success

Be Consistent: Record transactions regularly to maintain accurate financial records.
Use Descriptive Titles: Clear transaction titles make it easier to understand your spending patterns later.
Leverage Categories: Well-organized categories provide better insights into your financial habits.
Backup Your Data: While Cashify uses SQLite for easy setup, remember to backup your database file regularly.

Troubleshooting

If your account balance doesn’t match your expectations:
  1. Check all transactions for that account
  2. Verify no duplicate transactions were created
  3. Ensure expense amounts are showing as negative
  4. Check for any transfer transactions
Make sure you’ve created categories of the appropriate type (income vs. expense). The form only shows categories matching the selected transaction type.
Ensure:
  • JavaScript is enabled in your browser
  • Assets have been compiled with npm run dev or npm run build
  • You have at least some transaction data

Getting Help

Need assistance? Here’s how to get support: Happy budgeting with Cashify!

Build docs developers (and LLMs) love