Skip to content

Repository files navigation

🗿 StatuApp — Rosario en Estatuas

Proyecto cultural interactivo desarrollado por Berenice Solohaga. Catálogo de estatuas y monumentos de Rosario (Argentina), explorable por búsqueda, filtros, línea de tiempo histórica y (próximamente) mapa interactivo, con panel de administración propio para cargar y editar el contenido.

🔗 Demo online: statuapp3.netlify.app 💼 LinkedIn: linkedin.com/in/berenice-solohaga

Home Explorar
Home Explorar
Cronología
Cronología

Objetivo

Difundir el patrimonio escultórico de Rosario con datos verificados (fuentes documentadas por cada monumento: relevamiento propio, Municipalidad de Rosario, Wikimedia Commons) en una app moderna y fácil de navegar.

Funcionalidades

  • Búsqueda y filtro por barrio en la sección "Explorar".
  • Fichas de cada monumento con autor, año, material, ubicación y un dato curioso.
  • Línea de tiempo histórica ("Cronología") agrupada por década.
  • Mapa interactivo con Leaflet (implementado en el código; pendiente de reflejarse en el deploy de la demo — ver nota abajo).
  • Panel de administración con login propio para cargar, editar y dar de baja monumentos, con dashboard de métricas de calidad de datos (fotos y coordenadas faltantes) y visitas.

⚠️ Nota sobre la demo: el código de esta rama ya incluye el mapa interactivo, pero el deploy publicado en Netlify puede tardar en reflejarlo según cuándo se disparó el último build.

Arquitectura

Es una aplicación Next.js full-stack, no un frontend separado de un backend externo:

  • La UI pública y el panel de administración viven en el mismo proyecto (App Router).
  • Los datos de los monumentos se sirven a través de rutas de API propias de Next.js (app/api/...), respaldadas por Netlify Blobs en producción (y un JSON local en desarrollo), sembradas inicialmente desde un dataset propio versionado en el repo.
  • El panel admin usa autenticación por sesión firmada con HMAC-SHA256 (Web Crypto API), verificable tanto en el middleware (Edge) como en los route handlers (Node) — sin depender de una librería de sesiones externa.
app/                    # rutas públicas (home, explorar, cronología, mapa, ficha de monumento)
app/admin/               # panel de administración (CRUD de monumentos, dashboard)
app/api/                 # rutas de API (públicas y de administración)
app/src/data/statues/    # dataset semilla y tipos
lib/                      # storage (Netlify Blobs), autenticación de sesión, utilidades
docs/screenshots/         # capturas para este README

Stack

  • Frontend/Full-stack: Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS v4, Radix UI
  • Mapas: Leaflet / react-leaflet
  • Formularios: react-hook-form + zod
  • Almacenamiento: Netlify Blobs (producción) / archivo JSON local (desarrollo)
  • Email: Resend (para notificaciones desde el panel admin)
  • Infraestructura: Netlify (hosting, funciones serverless y build)

Instalación y ejecución local

git clone https://github.com/bereail/statuapp.git
cd statuapp

npm install
npm run dev
# abrir http://localhost:3000

Variables de entorno

Copiar .env.example a .env.local y completar:

Variable Descripción
ADMIN_USER Usuario para entrar al panel de administración
ADMIN_PASS Contraseña del panel (usar una fuerte, no la de ejemplo)
ADMIN_SESSION_SECRET Secreto para firmar la sesión — generar con node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
RESEND_API_KEY (Opcional) para el envío de emails desde el panel admin

En desarrollo, sin Netlify Blobs configurado, los datos se guardan en un JSON local (carpeta .data/, ignorada por git).

Roadmap

  • Dataset de monumentos con fuentes documentadas
  • Búsqueda, filtros y línea de tiempo
  • Panel de administración con autenticación propia
  • Mapa interactivo (implementado, pendiente de reflejarse en la demo pública)
  • Códigos QR físicos instalados en el espacio público
  • Modo offline / PWA

Autora

Berenice Solohaga — Desarrolladora Full Stack · Rosario, Argentina LinkedIn

Licencias

  • Código: MIT
  • Datos e imágenes: CC-BY 4.0
  • Fuentes: Municipalidad de Rosario, relevamiento propio, Wikimedia Commons

About

Catálogo de monumentos de Rosario con mapa, búsqueda y fichas (Next.js + Django REST

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages