Saltar al contenido
mreysei · Michael Reyes
Tema

Frela

Contabilidad y facturación para autónomos: horas, facturas y gastos, con la lógica en la API.

Tipo
Web
Año
Categorías
Portada de Frela en verde oscuro: el icono con la F, el nombre y el lema «Horas, clientes, proyectos y facturas para freelance», junto al panel de escritorio y un móvil con la lista de facturas.

Sobre el proyecto

Frela es una aplicación de contabilidad y facturación para autónomos en España, para web y Android: clientes, proyectos, horas, facturas y gastos deducibles en un mismo sitio.

Objetivo. Que un autónomo lleve sus horas, facture sin errores y sepa qué gastos puede deducir, sin hojas de cálculo. Para que web y Android nunca den resultados distintos, sigue una regla clara: la API decide y la app dibuja. Toda la lógica, la seguridad y los cálculos viven en la API; la app solo muestra lo que recibe.

La API decide, la app dibuja

Qué hace.

  • Perfil fiscal y marcas opcionales, cada una con su propia identidad en las facturas.
  • Clientes, personas o empresas, con sus contactos.
  • Proyectos por horas o a precio cerrado, con credenciales cifradas y repositorios enlazados.
  • Registro de horas con temporizador en vivo, entradas a mano y un calendario mensual.
  • Facturas de borrador a emitida y pagada, con numeración configurable y un PDF con la marca, copiado a Google Drive.
  • Gastos deducibles con sus categorías, sus reglas de IVA y deducibilidad, y sus justificantes.
  • Resumen de lo facturable, lo cobrado y las horas del año, en español e inglés y con tema claro y oscuro.

Seguridad y privacidad. Contraseñas con Argon2id, un token de acceso de vida corta y un token de refresco que rota y se guarda con hash. El inicio de sesión y el registro tienen límite de intentos y responden igual exista o no la cuenta. Cada petición pasa por una validación que descarta los campos no previstos, con Helmet y una lista cerrada de orígenes para CORS. Los tokens de GitHub y Drive y las credenciales de los proyectos se cifran con AES-256-GCM, los SVG subidos se sanean, y cada usuario puede exportar sus datos o borrar su cuenta, como pide el RGPD.

Arquitectura y calidad. API en NestJS con Prisma y PostgreSQL: 16 modelos, 43 migraciones y unas 140 rutas documentadas con OpenAPI. App en Flutter para web y Android con Riverpod, Dio y go_router. 36 archivos de tests en la API y 27 en la app, y despliegue con Docker y GitHub Actions.

Estado. Desplegada; las notificaciones están pendientes.

Tecnologías

Capturas de pantalla