Skip to content

Latest commit

 

History

History
276 lines (218 loc) · 7.87 KB

File metadata and controls

276 lines (218 loc) · 7.87 KB

Estimate - Personal Finance Management & Task Tracker

A comprehensive personal finance management application with integrated task tracking capabilities built with Laravel. This application helps users manage their income, expenses, savings, and track objectives with a clean and intuitive interface.

🚀 Features

Financial Management

  • Income Tracking: Record and monitor all sources of income
  • Expense Management: Track daily expenses with categorization
  • Savings Planning: Dedicated section for savings (nabung) and emergency funds (darurat)
  • Monthly Filtering: View financial data by specific months
  • Financial Overview: Dashboard showing total income, expenses, savings, and remaining balance
  • Transaction Details: Record transaction date, time, category, and details

Task Management (Taskman)

  • Objective Planning: Create and manage goals and objectives
  • Task Lists: Break down objectives into actionable tasks
  • Deadline Tracking: Set and monitor deadlines for objectives and tasks
  • Priority Levels: Assign priority levels to tasks
  • Status Management: Track progress with status indicators (Not Started, In Progress, Finished)
  • Plan Agendas: Organize objectives into plan agendas with date ranges
  • Team Assignment: Assign tasks to different users/colleagues

Additional Features

  • User Management: Create and manage user accounts
  • Bug & Release Tracker: Track application bugs and release history
  • Log Viewer: Access to application logs (in development environment)
  • Responsive Design: Clean UI with SneaT template

🛠️ Tech Stack

  • Backend: Laravel 11.x
  • Frontend: Blade Templates, Tailwind CSS, Vite
  • Database: SQLite (default), can be configured for MySQL/PostgreSQL
  • Package Manager: Composer (PHP), NPM (JS)
  • UI Framework: SneaT Admin Template v3.0
  • Development Tools: Laravel Pint, Debugbar, Collision

📋 Requirements

  • PHP >= 8.2
  • Composer
  • Node.js & NPM
  • SQLite (or MySQL/PostgreSQL)

🚀 Installation

  1. Clone the repository

    git clone <repository-url>
    cd estimate
  2. Install PHP dependencies

    composer install
  3. Install frontend dependencies

    npm install
  4. Set up environment

    cp .env.example .env
    php artisan key:generate
  5. Database setup

    # For SQLite (default)
    touch database/database.sqlite
    
    # Run migrations
    php artisan migrate
  6. Build frontend assets

    npm run build
    # or for development
    npm run dev
  7. Start the development server

    php artisan serve

🚀 Quick Start with Development Server

For a quick start during development, you can use the built-in development script:

composer run dev

This command will concurrently start:

  • PHP development server
  • Queue listener
  • Laravel Pail (log viewer)
  • Vite dev server

🔧 Configuration

Environment Variables

The application uses the following key environment variables:

  • APP_NAME - Application name
  • APP_ENV - Environment (local, production, etc.)
  • APP_KEY - Encryption key (generated with php artisan key:generate)
  • DB_CONNECTION - Database connection type
  • DB_DATABASE - Database name
  • DB_USERNAME - Database username
  • DB_PASSWORD - Database password

Database Configuration

By default, the application uses SQLite. To switch to MySQL or PostgreSQL:

  1. Update your .env file:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database_name
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
  2. Run migrations:

    php artisan migrate

📖 Usage

Financial Management

  1. Navigate to the Income section
  2. Add transactions by specifying:
    • Date and time of transaction
    • Type (Income, Expense, Savings, Emergency Fund)
    • Category and details
    • Amount
  3. Filter transactions by month to view financial reports
  4. Monitor your financial health through the dashboard

Task Management

  1. Go to the Taskman section
  2. Create a plan agenda with date ranges
  3. Add objectives to your plan
  4. Break down objectives into specific tasks
  5. Assign tasks to team members with deadlines
  6. Track progress with status updates

User Management

  1. Access the Users section
  2. Create new user accounts
  3. Manage user roles and permissions

🧪 Testing

Run the application tests:

php artisan test

🚀 Development

Frontend Development

# Compile and watch assets for development
npm run dev

# Build assets for production
npm run build

Code Formatting

# Format PHP code using Laravel Pint
./vendor/bin/pint

Database Operations

# Run migrations
php artisan migrate

# Seed the database
php artisan db:seed

# Refresh migrations
php artisan migrate:refresh

📁 Project Structure

estimate/
├── app/                    # Application source code
│   ├── Helpers/           # Custom helper functions
│   ├── Http/              # Controllers, middleware
│   ├── Models/            # Eloquent models
│   └── Providers/         # Service providers
├── database/              # Migrations, seeds, factories
├── resources/             # Views, assets, lang
├── routes/                # Application routes
├── storage/               # File storage
└── tests/                 # Test files

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🐛 Issue Tracking

Report bugs and feature requests through the integrated Tracker Bug section in the application or via GitHub Issues.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆙 Changelog

[v0.2.0] - 19 January 2026

  • 🚀 New Feature: Enhanced Taskman with plan agenda functionality
  • 🚀 New Feature: Taskman with breadcrumb navigation
  • 🚀 New Feature: Weekly monitoring with date-based task loading
  • 🚀 New Feature: Sub-task management with delete actions
  • 🚀 New Feature: Evidence field with long input support
  • 🚀 New Feature: Task update functionality with evidence handling
  • 🚀 New Feature: Plan agenda creation with date ranges
  • 🚀 New Feature: Objective percentage calculation
  • 🚀 New Feature: Log viewer integration
  • 🔄 Enhancement: Improved deadline filtering (descending order)
  • 🔄 Enhancement: Better UI/UX for task management
  • 🔄 Enhancement: JavaScript function improvements for task loading
  • 🔄 Enhancement: Field validation and input improvements
  • 🔄 Enhancement: Responsive design adjustments
  • 🔄 Enhancement: Database Abstraction Layer (DBAL) integration for multi-database support
  • 🐛 Bugfix: Fixed duplicate query for user data retrieval
  • 🐛 Bugfix: Corrected task positioning issues
  • 🐛 Bugfix: Fixed date filter in charts
  • 🐛 Bugfix: Menu active state persistence across pages
  • 🐛 Bugfix: Various UI and functionality improvements

[v0.1.2] - 03 November 2025

  • 🚀 New Feature: Moneytor filter monthly show data / rollback
  • 🚀 New Feature: Taskman objective key and task list
  • Running command before launch app
$ composer install
$ composer dump-autoload

[v0.0.1] - 27 September 2025

  • 🚀 New Feature: Create Data User & Form
  • ✨ Tambah Menu History Release & Bug & Issue Tracker
  • 🎨 Template Sneat v3.0
  • 🛠️ Penyesuaian Menu Side Bar
  • 🛠️ Bugfix #3 : Table User if No Data

📞 Support

For support, please open an issue in the repository or contact the development team.


Made with ❤️ using Laravel