Skip to content

Heartize/Akaunting-PHP

Repository files navigation

Heartize™ – Agencia Creativa Fullstack

¿Necesitas un proyecto a medida?
Creamos experiencias digitales únicas: sitios web impactantes, tiendas online con estilo, sistemas personalizados que enamoran y marcas que dejan huella.

🎯 Desarrollo Web | 🎨 Diseño Gráfico | 🛍️ E-commerce | ⚙️ SaaS

🔗 Descubre lo que podemos hacer juntos

#############################################################

☰ Documentación Técnica

Índice


Introducción
Estructura
Requisitos
Instalación
Configuración
Guía de Uso
Módulos
Modelos
Vistas
API Traducción
Assets
Includes
Base de Datos
Scripts
Seguridad
Extender
FAQ

Introducción

Bienvenido a la documentación completa de Akaunting PHP. Aquí encontrarás descripción, configuración, uso diario, y pautas de desarrollo y mantenimiento.

Estructura del Proyecto

Organización de carpetas y archivos:

📂 Estructura del Proyecto
├── .htaccess
├── AkauntingPHP.txt
├── LICENSE
├── README.md
├── akaunting_php.sql
├── akaunting_php.zip
├── api
│   └── translate.php
├── assets
│   ├── css
│   │   └── styles.css
│   └── js
│       └── app.js
├── check_files.php
├── config
│   ├── config.php
│   └── database.php
├── controllers
│   ├── AccountController.php
│   ├── AuthController.php
│   ├── BillController.php
│   ├── CategoryController.php
│   ├── ClientController.php
│   ├── CustomFieldController.php
│   ├── DashboardController.php
│   ├── InvoiceController.php
│   ├── InvoiceTemplateController.php
│   ├── MenuPermissionController.php
│   ├── ProductController.php
│   ├── ReconciliationController.php
│   ├── ReportController.php
│   ├── SettingController.php
│   ├── TransactionController.php
│   ├── UserController.php
│   ├── VendorController.php
│   └── WarehouseController.php
├── create_views.php
├── dashboard
│   └── index.php
├── database
│   └── database.txt
├── debug.php
├── documentation.html
├── generate_tree.php
├── includes
│   ├── auth.php
│   ├── functions.php
│   └── helpers.php
├── index.php
├── install.php
├── logs
│   ├── logs.txt
│   └── php_error.log
├── models
│   ├── AccountModel.php
│   ├── BillItemModel.php
│   ├── BillModel.php
│   ├── CategoryModel.php
│   ├── ClientModel.php
│   ├── CustomFieldModel.php
│   ├── InvoiceItemModel.php
│   ├── InvoiceModel.php
│   ├── InvoiceTemplateModel.php
│   ├── MenuPermissionModel.php
│   ├── ProductCategoryModel.php
│   ├── ProductModel.php
│   ├── ReconciliationModel.php
│   ├── SettingsModel.php
│   ├── TransactionModel.php
│   ├── VendorModel.php
│   └── WarehouseModel.php
├── schema.sql
├── uploads
│   ├── logo.png
│   └── logo_1745168240.png
└── views
    ├── accounts
    │   ├── form.php
    │   ├── index.php
    │   └── show.php
    ├── bills
    │   ├── form.php
    │   ├── index.php
    │   ├── print.php
    │   └── show.php
    ├── categories
    │   ├── form.php
    │   └── index.php
    ├── clients
    │   ├── form.php
    │   ├── index.php
    │   └── show.php
    ├── custom_fields
    │   ├── create.php
    │   ├── edit.php
    │   ├── form.php
    │   ├── index.php
    │   ├── render.php
    │   ├── show.php
    │   ├── store.php
    │   └── update.php
    ├── dashboard
    │   └── index.php
    ├── errors
    │   ├── 404.php
    │   └── 500.php
    ├── helpers
    │   ├── backup.php
    │   ├── export_import.php
    │   └── ui.php
    ├── invoice_templates
    │   ├── form.php
    │   ├── index.php
    │   └── preview.php
    ├── invoices
    │   ├── form.php
    │   ├── index.php
    │   ├── print.php
    │   └── show.php
    ├── layouts
    │   ├── footer.php
    │   ├── header.php
    │   ├── login.php
    │   ├── notifications.php
    │   ├── register.php
    │   └── sidebar.php
    ├── products
    │   ├── form.php
    │   ├── index.php
    │   └── show.php
    ├── reconciliations
    │   ├── form.php
    │   ├── index.php
    │   ├── print.php
    │   └── show.php
    ├── reports
    │   ├── expense.php
    │   ├── income.php
    │   ├── profit_loss.php
    │   └── tax.php
    ├── settings
    │   ├── backups.php
    │   ├── company.php
    │   ├── email.php
    │   ├── invoice.php
    │   ├── menu_permissions.php
    │   ├── settings_menu.php
    │   ├── taxes.php
    │   └── warehouses.php
    ├── transactions
    │   ├── form.php
    │   ├── index.php
    │   ├── show.php
    │   └── transfer.php
    ├── users
    │   ├── change_password.php
    │   ├── form.php
    │   ├── index.php
    │   └── profile.php
    ├── vendors
    │   ├── form.php
    │   ├── index.php
    │   └── show.php
    └── warehouses
        ├── form.php
        └── index.php

Requisitos del Sistema

  • PHP >= 8.1.31 (CLI y módulo)
  • MySQL >= 5.7
  • Apache/Nginx con .htaccess habilitado
  • Extensiones: PDO, cURL, mbstring, OpenSSL
  • Permisos 775 en logs/ y uploads/

Instalación Paso a Paso

  1. Descomprime akaunting_php.zip en tu directorio web.
  2. Renombra config/config.php.example a config/config.php y ajusta tus valores.
  3. Actualiza config/database.php con credenciales de la base de datos.
  4. Importa schema.sql (o akaunting_php.sql) vía phpMyAdmin o CLI.
  5. Ejecuta install.php y sigue el asistente.
  6. Elimina install.php tras la instalación (seguridad).
  7. Verifica logs en logs/php_error.log para confirmar ausencia de errores.

Resolución de Problemas Comunes

  • Error 500: Revisa logs/php_error.log.
  • Conexión BD fallida: Valida host/usuario/contraseña.
  • Permisos: Ajusta chmod 775 en carpetas de subida y logs.

Configuración Detallada

config/config.php

<?php
return [
  'app_name' => 'Akaunting PHP',
  'base_url' => 'http://ejemplo.com/',
  'timezone' => 'Europe/Madrid',
  'debug'    => true
];

config/database.php

<?php
return [
  'host' => 'localhost',
  'user' => 'root',
  'pass' => 'secreto',
  'name' => 'akaunting_db',
  'port' => 3306
];

Guía de Uso Diario

Inicio de Sesión

Abre index.php, ingresa credenciales y accede al Dashboard.

Dashboard

Visualiza métricas clave: ingresos, gastos, facturas pendientes y notificaciones.

Gestión de Clientes

  1. Menú Lateral → Clientes
  2. Crear / Editar / Eliminar registros
  3. Buscador y filtros avanzados

Facturación

  1. Menú → Facturas
  2. Form para nueva factura con items, impuestos y descuentos
  3. Generar PDF e imprimir desde print.php

Reportes

  • Ingresos vs. Gastos
  • Reporte de Impuestos
  • Pérdidas y Ganancias

Configuración Avanzada

En Settings puedes definir moneda, prefijos, backups y roles de usuario.

Módulos & Controladores

Patrón CRUD en controllers/. Ejemplo: ClientController.php

<?php
class ClientController {
  public function index() { /* Listado */ }
  public function create() { /* Formulario */ }
  public function store() { /* Guardar */ }
  public function show($id) { /* Detalle */ }
  public function edit($id) { /* Editar */ }
  public function update($id) { /* Actualizar */ }
  public function destroy($id) { /* Eliminar */ }
}

Modelos

Ubicados en models/, extienden conexión PDO y ofrecen métodos:

  • getAll(), find($id)
  • create($data), update($id,$data)
  • delete($id)

Vistas

Arquitectura MVC Básico: views/entidad/*.php

  • index.php — Listado
  • form.php — Crear/Editar
  • show.php — Detalle

Layout global: views/layouts/header.php, sidebar.php, footer.php.

API de Traducción

api/translate.php expone un endpoint REST:

POST /api/translate.php
{ "text":"hola mundo","lang":"en" }
=> { "translated":"hello world" }

Incluye caching local en includes/functions.php.

Assets (CSS/JS)

Global en assets/css/styles.css y assets/js/app.js:

  • Menú responsivo
  • Toasts de notificaciones
  • Validaciones frontend

Archivos Comunes

  • auth.php: sesiones y permisos
  • functions.php: UTILS, envío de email, logging
  • helpers.php: formateo fechas, números

Base de Datos

Esquema en schema.sql. Tablas principales:

  • users, clients, invoices
  • invoice_items, transactions
  • settings, logs

Relaciones:

  • invoices.client_id → clients.id
  • invoice_items.invoice_id → invoices.id

Scripts Auxiliares

  • generate_tree.php: muestra estructura de carpetas.
  • check_files.php: comprueba archivos críticos.
  • debug.php: activa modo debug completo.

Seguridad y Mantenimiento

Respaldos Automáticos

Usa mysqldump en cron diario:

0 2 * * *   mysqldump -u root -p secreta akaunting_db > backups/backup_$(date +\%F).sql

Rotación de Logs

Configura logrotate para no saturar logs/.

Actualización del Sistema

  1. Respaldar archivos y BD.
  2. Reemplazar carpeta del proyecto con nueva versión.
  3. Ejecutar migraciones (si aplica).
  4. Verificar logs y funcionalidades.

Permisos y Roles

Define roles en tabla settings y gestiona en SettingController.

Cómo Extender

  1. Crear Controller, Model y Vistas (index, form, show).
  2. Añadir ruta en views/layouts/sidebar.php.
  3. Actualizar assets/js/app.js si necesita lógica.
  4. Registrar modelo en includes/functions.php (opcional).

FAQ

Restablecer Contraseña

En BD, tabla users, actualizar con password_hash('nueva', PASSWORD_DEFAULT).

Cambiar Idioma

Modificar 'timezone' en config/config.php.

Errores Comunes

  • 503 ó 500: revisar permisos y módulos PHP.
  • PDOException: validar credenciales BD.
<script> document.addEventListener('DOMContentLoaded', ()=>{ const sections = document.querySelectorAll('main section'); const navLinks = document.querySelectorAll('nav a'); const observer = new IntersectionObserver(entries=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ const id=entry.target.id; navLinks.forEach(link=>link.classList.remove('active')); document.querySelector(`nav a[href=\"#${id}\"]`).classList.add('active'); } }); }, { threshold:0.6 }); sections.forEach(sec=>observer.observe(sec)); }); </script>

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors