Skip to content

finance_manager is a robust financial management system built with PHP and JavaScript, featuring income and expense tracking, financial reporting, secure user authentication, budget management, and transaction categorization.

License

Notifications You must be signed in to change notification settings

minggudevv/finance_manager

Repository files navigation

Finance Manager

Finance Manager Logo

PHP Version License

A powerful and user-friendly financial management system built with PHP and JavaScript.

🌟 Features

  • 💰 Income and expense tracking
  • 📊 Financial reporting and analytics
  • 📱 Responsive design for mobile and desktop
  • 🔒 Secure user authentication
  • 💳 Budget management
  • 📈 Transaction history and categorization
  • 🔒 reCAPTCHA Protection (v2/v3)
  • 🔄 Database Version Control
  • 🎛️ Advanced Security Settings
  • 📱 Remember Me Functionality
  • 🔐 Enhanced Authentication

🚀 Technologies Used

  • Backend: PHP (88%)
  • Frontend:
    • JavaScript (9.2%)
    • CSS (0.3%)
  • Additional: Hack (2.5%)
  • Database: MySQL

⚙️ Requirements

  • PHP 8.0 or higher
  • MySQL/MariaDB
  • Web server (Apache/Nginx)
  • Modern web browser
  • reCAPTCHA API keys (for security features)

📥 Installation

  1. Clone the repository
git clone https://github.com/minggudevv/finance_manager.git
  1. Navigate to the project directory
cd finance_manager
  1. Configure your database
  • Navigate to /src/components/config/database.php
  • Update the database configuration according to your environment:
$conn = new PDO(
    "mysql:host=your_host;dbname=your_database;charset=utf8mb4",
    "your_username",
    "your_password",
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
    ]
);
  1. Create a new MySQL database named keuangan
CREATE DATABASE keuangan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. Import the database schema (if provided) or run your database migrations

🔧 Database Configuration

The database configuration is located in /src/components/config/database.php. By default, it uses these settings:

Host: localhost
Database: keuangan
Username: root
Password: (empty)
Charset: utf8mb4
Collation: utf8mb4_unicode_ci

To modify these settings, edit the PDO connection string and credentials in the database.php file.

📖 Usage

  1. Configure your web server to point to the project directory
  2. Access the application through your web browser
  3. Start managing your finances:
    • Add income and expenses
    • Create budgets
    • Generate reports
    • Track your financial goals

🔐 Security Features

  • PDO prepared statements for SQL injection prevention
  • UTF-8 encoding for proper character handling
  • Error handling for database connections
  • Exception handling for database operations
  • reCAPTCHA integration for form protection
  • Database version control system
  • Remember me token encryption
  • Enhanced session security
  • Version-controlled database updates

🔄 Version Control

The system now includes database version control:

  • Automatic version detection
  • Safe upgrade/downgrade functionality
  • GitHub tag integration
  • Version-specific database migrations
  • Admin version management interface

📦 Latest Version

Current stable version: 1.0.5-beta

  • Enhanced security features
  • reCAPTCHA protection
  • Database version control
  • Remember me functionality
  • Improved admin controls

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your 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

📝 License

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

👤 Author

minggudevv

🏗️ Project Structure

finance_manager/
├── src/
│   └── components/
│       └── config/
│           └── database.php    # Database configuration
├── ...

🙏 Acknowledgments

  • PHP Community
  • Contributors and users of this project
  • Open source packages used in this project

Made with ❤️ by minggudevv

````

About

finance_manager is a robust financial management system built with PHP and JavaScript, featuring income and expense tracking, financial reporting, secure user authentication, budget management, and transaction categorization.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published