2.5. Porcentaje del Proyecto
Este documento analiza la distribución del código fuente en el proyecto FarmaYa, calculando porcentajes por tipo de archivo y componente. Actualmente el proyecto se encuentra al 40% de completitud, con el 60% restante pendiente de implementación.
Metodología
Se realizó un conteo de líneas de código (LOC - Lines of Code) en todos los archivos fuente del proyecto, excluyendo archivos generados, dependencias y archivos de configuración no relacionados con el código fuente principal.
Comando utilizado para el conteo:
find . -name "*.java" -o -name "*.html" -o -name "*.css" -o -name "*.js" -o -name "*.sql" | xargs wc -l
Estado Actual del Proyecto: 40% Completado
✅ Funcionalidades Implementadas (40%)
Backend - API REST Completa (28.4% del código)
- ✅ Arquitectura Spring Boot con capas bien definidas (MVC)
- ✅ Autenticación JWT completa con roles (USER/ADMIN)
- ✅ Gestión completa de productos (CRUD, búsqueda, categorías)
- ✅ Sistema de carrito de compras
- ✅ Gestión de pedidos y estados
- ✅ Gestión de usuarios y direcciones
- ✅ Validaciones de negocio
- ✅ Manejo básico de excepciones
- ✅ Documentación Swagger/OpenAPI
Base de Datos - Esquema Completo (3.7% del código)
- ✅ Diseño de 8+ entidades relacionadas
- ✅ Esquema MySQL con integridad referencial
- ✅ Datos de prueba para desarrollo
Frontend - Interfaz Básica (67.9% del código)
- ✅ Estructura HTML para todas las páginas principales
- ✅ Navegación y routing básico
- ✅ Formularios de login/registro
- ✅ Catálogo de productos con filtros
- ✅ Carrito de compras básico
- ⚠️ Panel de Administración: Páginas HTML existen pero funcionalidad limitada
- ⚠️ Interfaz de Repartidor: Páginas HTML existen pero funcionalidad básica
- ✅ Interfaz de cliente completa
Seguridad y Configuración
- ✅ Configuración de seguridad Spring Security
- ✅ Control de acceso basado en roles
- ✅ Validación de entrada de datos
❌ Funcionalidades Pendientes (60%)
Testing y Calidad (20% estimado)
- ❌ Pruebas unitarias: Cobertura 0% (debería ser 80%+)
- ❌ Pruebas de integración: No implementadas
- ❌ Pruebas end-to-end: No implementadas
- ❌ Testing de API: Solo validación manual
- ❌ Testing de UI: No implementado
Despliegue y DevOps (15% estimado)
- ❌ CI/CD Pipeline: No configurado (GitHub Actions/Jenkins)
- ❌ Contenedorización: Dockerfile faltante
- ❌ Orquestación: Docker Compose/Kubernetes
- ❌ Configuración de producción: Variables de entorno
- ❌ Monitoreo: Logs centralizados, métricas
- ❌ Backup y recuperación: Estrategias de BD
Funcionalidades Avanzadas (15% estimado)
- ❌ Sistema de pagos: Integración con pasarelas (PayPal, Stripe)
- ❌ Panel de Administración Completo: Gestión avanzada de usuarios, productos, pedidos (actualmente básico)
- ❌ Interfaz de Repartidor Completa: Gestión de entregas, tracking GPS, confirmaciones (actualmente básica)
- ❌ Notificaciones: Email, SMS, push notifications
- ❌ Reportes avanzados: Dashboard con gráficos, analytics
- ❌ Búsqueda avanzada: Filtros complejos, facetas
- ❌ Inventario en tiempo real: Actualización automática de stock
- ❌ Sistema de reseñas: Calificaciones y comentarios
- ❌ Wishlist/favoritos: Lista de deseos del usuario
Optimización y Rendimiento (5% estimado)
- ❌ Cache: Redis para datos frecuentes
- ❌ CDN: Para assets estáticos
- ❌ Optimización de BD: Índices, queries optimizadas
- ❌ Compresión: Gzip, minificación
- ❌ Lazy loading: Imágenes y componentes
Seguridad Avanzada (3% estimado)
- ❌ Rate limiting: Protección contra ataques DDoS
- ❌ Auditoría: Logs de seguridad
- ❌ Encriptación: Datos sensibles
- ❌ 2FA: Autenticación de dos factores
- ❌ OWASP: Validación de vulnerabilidades
UX/UI y Mobile (2% estimado)
- ❌ Responsive design: Optimización móvil completa
- ❌ PWA: Progressive Web App features
- ❌ Accesibilidad: WCAG compliance
- ❌ Internacionalización: i18n multiidioma
Resultados del Análisis de Código
Distribución por Lenguaje/Tipo de Archivo
| Tipo de Archivo |
Líneas de Código |
Porcentaje |
Estado |
| HTML |
6,681 |
57.5% |
✅ Implementado |
| Java |
3,293 |
28.4% |
✅ Implementado |
| JavaScript |
933 |
8.0% |
⚠️ Básico |
| SQL |
435 |
3.7% |
✅ Implementado |
| CSS |
270 |
2.3% |
⚠️ Básico |
| TOTAL |
11,612 |
100% |
40% Completo |
Análisis por Componente
Backend (Java) - ✅ Completado
- Líneas: 3,293 (28.4% del total)
- Archivos analizados: 45 archivos Java
- Estado: ✅ 100% funcional - API REST completa y probada manualmente
- Distribución interna:
- Controladores: ~800 líneas (24% del backend) ✅
- Servicios: ~1,200 líneas (36% del backend) ✅
- Modelos: ~900 líneas (27% del backend) ✅
- Repositorios: ~200 líneas (6% del backend) ✅
- Configuración: ~193 líneas (6% del backend) ✅
Frontend (HTML/CSS/JS) - ⚠️ Básico
- Líneas: 7,884 (67.9% del total)
- Estado: ⚠️ 60% funcional - Interfaz básica, falta UX avanzada y funcionalidades completas de admin/repartidor
- Distribución interna:
- HTML: 6,681 líneas (84.7% del frontend) ✅ Estructura completa
- JavaScript: 933 líneas (11.8% del frontend) ⚠️ Funcionalidad básica, falta lógica completa para admin y delivery
- CSS: 270 líneas (3.4% del frontend) ⚠️ Estilos básicos
Funcionalidades por Rol:
- Cliente: ✅ 90% completo (catálogo, carrito, pedidos, perfil)
- Administrador: ⚠️ 40% completo (páginas existen, falta gestión completa de usuarios/productos/pedidos)
- Repartidor: ⚠️ 30% completo (páginas básicas, falta gestión de entregas y tracking)
Base de Datos (SQL) - ✅ Completada
- Líneas: 435 (3.7% del total)
- Estado: ✅ 90% funcional - Esquema completo, faltan optimizaciones
- Archivos: 1 archivo (farmaYa.sql) con esquema completo
Impacto de las Funcionalidades Pendientes
Alto Impacto (Funcionalidades Críticas)
- Testing (20%): Sin pruebas, el código no es confiable para producción
- Sistema de pagos (8%): Crítico para e-commerce real
- CI/CD (7%): Esencial para despliegue automatizado
Medio Impacto (Mejoras Importantes)
- Notificaciones (5%): Importante para UX pero no crítico
- Reportes avanzados (4%): Valor para negocio pero no funcionalidad core
- PWA/Mobile (3%): Mejora accesibilidad pero no funcionalidad
Bajo Impacto (Mejoras Opcionales)
- Internacionalización (1%): Para mercados globales
- Auditoría avanzada (1%): Para compliance
Comparación con Proyectos Similares
En aplicaciones web full-stack similares:
| Aspecto |
FarmaYa Actual |
Estándar Mercado |
Diferencia |
| Frontend |
67.9% |
60-70% |
✅ Alineado |
| Backend |
28.4% |
25-35% |
✅ Alineado |
| Base de datos |
3.7% |
3-5% |
✅ Alineado |
| Testing |
0% |
15-25% |
❌ Falta implementar |
| DevOps |
0% |
5-10% |
❌ Falta implementar |
| Documentación |
~2% |
5-8% |
⚠️ Incompleta |
Conclusiones
Estado Actual: 40% MVP Funcional
- ✅ Core funcional: El proyecto tiene un MVP (Minimum Viable Product) funcional con todas las operaciones básicas de e-commerce para clientes
- ⚠️ Interfaces de admin y repartidor parcialmente implementadas: Las páginas HTML existen pero requieren desarrollo completo de funcionalidades
- ⚠️ Calidad limitada: Falta testing riguroso y DevOps
- 📈 Potencial alto: Base sólida para escalar a producción completa
Nota importante sobre admin y delivery: Estas secciones están significativamente incompletas. El panel de administración tiene solo ~40% de funcionalidad implementada, y la interfaz de repartidor tiene ~30% de funcionalidad. Ambas requieren desarrollo completo de JavaScript, lógica de negocio y integración con el backend para ser consideradas funcionales.
Camino a Producción (60% restante)
- Fase 1 (20%): Testing completo + CI/CD básico
- Fase 2 (20%): Pagos + notificaciones + reportes
- Fase 3 (20%): Optimización + seguridad + PWA
Fortalezas del 40% Actual
- Arquitectura sólida y escalable
- Separación clara de responsabilidades
- API REST completa y documentada
- Base de datos bien diseñada
Riesgos del 60% Pendiente
- Testing: Sin pruebas, bugs pueden pasar a producción
- DevOps: Despliegue manual limita escalabilidad
- Pagos: Funcionalidad crítica faltante para e-commerce real
Recomendaciones Prioritarias
- Implementar testing unitario (alta prioridad)
- Completar panel de administración (alta prioridad - gestión de usuarios, productos, pedidos) - CRÍTICO: actualmente 40% completo
- Desarrollar interfaz completa de repartidor (alta prioridad - gestión de entregas, tracking) - CRÍTICO: actualmente 30% completo
- Configurar CI/CD básico (media prioridad)
- Integrar sistema de pagos (alta prioridad)
- Testing end-to-end
- Optimización de rendimiento
- PWA y mobile optimization
Largo Plazo (3+ meses)
- Internacionalización
- Analytics avanzados
- Microservicios (si escala)
Archivos Excluidos del Conteo
pom.xml (configuración Maven)
application.properties (configuración Spring)
- Archivos JAR generados
node_modules/ (si existiera)
- Archivos de sistema (
.git/, etc.)
- Imágenes y assets binarios
- Archivos de testing (no existen aún)