Oposiciones Bombero es una plataforma en línea diseñada para ayudar a los aspirantes a bomberos en su preparación para las oposiciones.

Oposiciones Bomberos

Author: Cristian González /

Next.js Strapi Lucide Shadcn/UI TailwindCSS PostgreSQL Strapi

Plataforma para la preparación de oposiciones de bombero que permite a los usuarios crear y practicar exámenes personalizados, practicar con preguntas falladas y participar en retos con la comunidad. Ademas puedes crear tus propias preguntas y temas para luego agregarlas a un reto o un mazo de flashcards.

Funcionalidades clave

  • Creación de exámenes personalizados
  • Práctica con preguntas previamente falladas
  • Creación de mazos para estudio con flashcards
  • Gestión completa de preguntas (crear, editar y eliminar)
  • Organización y administración de temas
  • Retos y competiciones con la comunidad
  • Acceso a exámenes oficiales
  • Sistema de aprendizaje adaptativo
  • Seguimiento del progreso personal

Tecnologías utilizadas

Frontend

  • React 18 con Next.js 14 (App Router)
  • TypeScript para desarrollo tipado
  • Tailwind CSS para estilos responsivos
  • Shadcn UI y Radix UI para componentes accesibles
  • Tanstack React Query para gestión de estado y peticiones
  • Zustand para estado global
  • React Hook Form con Zod para validación de formularios
  • Framer Motion para animaciones

Backend

  • Strapi CMS como headless CMS y sistema de gestión de contenidos
  • API REST para comunicación entre frontend y backend

Autenticación y Seguridad

  • NextAuth.js para autenticación
  • JWT y manejo de sesiones

Visualización y Experiencia

  • Recharts para visualización de datos
  • DayJS para manejo de fechas
  • Tailwind Merge y clsx para composición de clases
  • Embla Carousel para carruseles

Pagos

  • Stripe para procesamiento de pagos

Desafíos y soluciones técnicas

  • Optimización de rendimiento:

    • Uso de React Server Components
    • Carga dinámica de componentes
    • Lazy loading con react-intersection-observer
    • Paginación eficiente con react-paginate
  • Experiencia de usuario fluida:

    • Implementación de NextTopLoader para indicar carga entre páginas
    • Animaciones optimizadas con Framer Motion
    • Feedback visual con react-hot-toast
  • Integración con API:

    • Consumo eficiente de API REST mediante Axios y Tanstack Query
    • Gestión de caché y revalidación de datos
  • Manejo de datos complejos:

    • Tanstack Table y Virtual para tablas de datos eficientes
    • Importación y procesamiento de archivos Excel con read-excel-file
  • Diseño responsive:

    • Enfoque mobile-first con Tailwind CSS
    • Componentes adaptables a diferentes dispositivos
  • Gestión de estado:

    • Combinación de React Query para datos del servidor
    • Zustand para estado local
    • Estado basado en URL con parámetros de búsqueda
  • Validación robusta:

    • Integración de React Hook Form con Zod para formularios a prueba de errores
    • Manejo avanzado de errores y validaciones