Este proyecto es el panel de administración y frontend para CoAnime, construido con Next.js, TypeScript y Tailwind CSS.
- Framework: Next.js 15
- Lenguaje: TypeScript
- Estilos: Tailwind CSS 4.0
- Librería UI: React 19
- Estado & Data Fetching:
- TanStack Query v4 (Principal)
- SWR (Usado en autenticación)
- Formularios: React Hook Form + Yup
- UI Components:
- Headless UI
- React Select
- SunEditor (Editor de texto)
- React Hot Toast (Notificaciones)
- Utilidades:
- Axios (HTTP Client)
- Date-fns & Dayjs (Manejo de fechas)
- Node.js (v16 o superior recomendado)
- Yarn o NPM
-
Clonar el repositorio:
git clone <repo-url> cd coanime-front
-
Instalar dependencias:
yarn install # o npm install -
Configurar variables de entorno: Copia el archivo
.env.examplea.envy configura las variables necesarias.cp .env.example .env
-
Desarrollo:
yarn dev
El servidor iniciará en
http://localhost:3000. -
Producción:
yarn build yarn start
-
Linting & Formatting:
yarn lint yarn format
src/
├── components/ # Componentes reutilizables de UI
├── constants/ # Constantes globales
├── hoc/ # Higher Order Components
├── hooks/ # Custom React Hooks (incl. useAuth)
├── interface/ # Definiciones de tipos TypeScript
├── lib/ # Configuraciones de librerías (axios, gtag, etc.)
├── pages/ # Rutas de la aplicación (Next.js Pages Router)
├── services/ # Servicios para llamadas a API
├── styles/ # Archivos CSS globales y de componentes
└── utils/ # Funciones de utilidad
Tras analizar el proyecto, se han identificado las siguientes áreas de mejora para optimizar el rendimiento, mantenibilidad y calidad del código:
- Librerías Duplicadas:
- Fechas: Se están usando
date-fnsYdayjs. Recomendación: Estandarizar en una sola (preferiblementedayjspor tamaño odate-fnspor tree-shaking) y remover la otra. - Data Fetching: Se usa
swr(solo enuseAuth) yreact-query(en el resto). Recomendación: Migrar la lógica de autenticación areact-querypara eliminar la dependencia deswr. - Selects:
react-selectestá en uso, peroreact-select-searchparece no utilizarse. Verificar y eliminar si es redundante. - Editores:
suneditorse usa, pero@tinymce/tinymce-reactparece estar instalado sin uso. Eliminar si no es necesario.
- Fechas: Se están usando
- Next.js: Actualizar a la última versión estable (14.x) para mejoras de rendimiento y seguridad.
- Tailwind CSS: Revisar plugins.
@tailwindcss/line-clampya está incluido en Tailwind 3.3+, por lo que el plugin explícito puede eliminarse.
- TypeScript: Mejorar el tipado en hooks como
useAuthdonde se usa inferencia implícita oanyen algunos props. - Estructura de Carpetas: Evaluar si la estructura actual escala bien. Considerar agrupar por "features" (ej:
features/auth,features/posts) en lugar de por tipo técnico si el proyecto crece.
- Imágenes: Asegurar el uso del componente
next/imageen lugar de etiquetas<img>estándar para aprovechar la optimización automática de Next.js. - SEO: Implementar
next-seopara un manejo centralizado de etiquetas meta, Open Graph, etc.
Generado por Antigravity AI Audit