Skip to content

Commit b4ef369

Browse files
committed
redaccion
1 parent 71436b5 commit b4ef369

1 file changed

Lines changed: 89 additions & 133 deletions

File tree

README.md

Lines changed: 89 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,182 +1,138 @@
1-
# Página de Aterrizaje SafeMap
1+
# SafeMap Web (Landing + Demo de Mapa)
22

3-
> 🚀 **Estado: COMPLETADO** - Página de aterrizaje lista para producción para la plataforma de seguridad móvil SafeMap.
3+
> Sitio de aterrizaje de SafeMap con un demo de mapa interactivo para Lima.
44
5-
## 📋 Descripción General del Proyecto
5+
## 📋 Descripción
66

7-
SafeMap es un proyecto universitario para una plataforma de seguridad móvil que permite a los ciudadanos reportar incidentes de forma anónima, visualizar zonas de riesgo mediante mapas de calor en tiempo real y obtener rutas seguras utilizando tecnología de IA.
7+
SafeMap es una plataforma de seguridad ciudadana: reporta incidentes de forma anónima, visualiza zonas de riesgo (mapa/heatmap) y sugiere rutas más seguras.
88

9-
## 🏗️ Stack Tecnológico
9+
## 🏗️ Stack
1010

11-
- **Framework**: Astro 5.8.1
12-
- **Biblioteca UI**: React 18
13-
- **Estilos**: Tailwind CSS
14-
- **Lenguaje**: TypeScript
15-
- **Herramienta de Build**: Vite
16-
- **Gestor de Paquetes**: npm
11+
- Astro 5.8.1
12+
- React 19
13+
- Tailwind CSS
14+
- TypeScript
15+
- Vite (build)
1716

18-
## 📁 Estructura del Proyecto
17+
## 📁 Estructura
1918

2019
```text
2120
SafeMap-Web/
22-
├── public/ # Activos estáticos
23-
│ ├── avatars/ # Avatares para testimonios (SVG)
24-
│ ├── js/ # Scripts del lado del cliente
25-
│ ├── favicon.svg # Favicon del sitio
26-
│ ├── apple-touch-icon.svg # Ícono de app para iOS
27-
│ ├── robots.txt # Archivo robots para SEO
28-
│ └── site.webmanifest # Manifiesto PWA
21+
├── public/
22+
│ ├── avatars/
23+
│ ├── js/
24+
│ ├── favicon.svg
25+
│ ├── apple-touch-icon.svg
26+
│ ├── robots.txt
27+
│ └── site.webmanifest
2928
├── src/
3029
│ ├── components/
31-
│ │ ├── cards/ # Componentes de tarjeta reutilizables
32-
│ │ ├── interactive/ # Componentes interactivos de React
33-
│ │ ├── layout/ # Cabecera, Pie de página
34-
│ │ ├── sections/ # Secciones de la página
35-
│ │ └── ui/ # Elementos de UI
36-
│ ├── data/ # Archivos de datos JSON
37-
│ ├── layouts/ # Diseños de página
38-
│ ├── pages/ # Páginas Astro
39-
│ │ └── index.astro # Página principal, por ejemplo
40-
│ └── styles/ # CSS Global
41-
├── .github/
42-
│ └── workflows/
43-
│ └── deploy.yml # Flujo de trabajo para despliegue en GitHub Pages
44-
├── astro.config.mjs # Configuración de Astro
45-
├── tailwind.config.mjs # Configuración de Tailwind
46-
├── package.json # Manifiesto del proyecto
47-
├── DEPLOYMENT.md # Guía de despliegue
48-
└── README.md # Este archivo
30+
│ │ ├── cards/
31+
│ │ ├── interactive/ # Mapas y UI interactiva (React)
32+
│ │ ├── layout/
33+
│ │ ├── sections/
34+
│ │ └── ui/
35+
│ ├── data/
36+
│ ├── layouts/
37+
│ ├── pages/ # index.astro, demo.astro
38+
│ └── styles/
39+
├── astro.config.mjs
40+
├── tailwind.config.mjs
41+
├── package.json
42+
├── DEPLOYMENT.md
43+
└── README.md
4944
```
5045

51-
Astro busca archivos `.astro` o `.md` en el directorio `src/pages/`. Cada página se expone como una ruta basada en el nombre de su archivo.
46+
Astro expone cada archivo de `src/pages/` como una ruta. Los recursos estáticos van en `public/`.
5247

53-
No hay nada especial sobre `src/components/`, pero ahí es donde nos gusta colocar cualquier componente de Astro/React/Vue/Svelte/Preact.
48+
## 🚀 Inicio Rápido (Windows PowerShell)
5449

55-
Cualquier activo estático, como imágenes, se puede colocar en el directorio `public/`.
50+
Requisitos: Node.js 18+ y npm.
5651

57-
## 🧞 Comandos
58-
59-
Todos los comandos se ejecutan desde la raíz del proyecto, desde una terminal:
60-
61-
| Comando | Acción |
62-
| :------------------------ | :--------------------------------------------------------- |
63-
| `npm install` | Instala las dependencias |
64-
| `npm run dev` | Inicia el servidor de desarrollo local en `localhost:4321` |
65-
| `npm run build` | Compila tu sitio para producción en `./dist/` |
66-
| `npm run preview` | Previsualiza tu compilación localmente, antes de desplegar |
67-
| `npm run astro ...` | Ejecuta comandos CLI como `astro add`, `astro check` |
68-
| `npm run astro -- --help` | Obtiene ayuda usando el CLI de Astro |
69-
70-
## ✨ Características Implementadas
52+
```powershell
53+
# Instala dependencias
54+
npm install
7155
72-
### 🎨 Diseño y Experiencia de Usuario
56+
# Levanta el servidor de desarrollo (por defecto http://localhost:4321)
57+
npm run dev
58+
```
7359

74-
- Diseño moderno y responsivo con enfoque "mobile-first"
75-
- Diseño de Cuadrícula Bento interactiva mostrando características clave
76-
- Animaciones y transiciones de desplazamiento suaves
77-
- Esquema de colores y tipografía profesional
60+
Si `npm run dev` falla (Exit Code 1), revisa “Solución de Problemas”.
7861

79-
### 🧩 Componentes Interactivos
62+
## 🧞 Scripts
8063

81-
- **MapDemo**: Maqueta de mapa interactivo con marcadores de incidentes y rutas seguras
82-
- **StatsCounter**: Visualización animada de estadísticas en tiempo real
83-
- **ContactForm**: Formulario completo de registro para beta con validación
64+
| Comando | Descripción |
65+
| ------------------ | ------------------------------------ |
66+
| npm run dev | Servidor de desarrollo |
67+
| npm run build | Compila a producción en ./dist |
68+
| npm run preview | Sirve ./dist para verificación local |
69+
| npm run lint | Linter (ESLint) |
70+
| npm run lint:fix | Linter con autofix |
71+
| npm run format | Formatea con Prettier |
72+
| npm run type-check | Chequeo de tipos (Astro + TS) |
73+
| npm run astro … | CLI de Astro (add, check, etc.) |
8474

85-
### 📱 Secciones
75+
## 🗺️ Demo del Mapa
8676

87-
- **Hero**: Propuesta de valor principal con llamada a la acción
88-
- **Features**: Seis características clave de la plataforma con iconos
89-
- **Testimonials**: Respaldo de autoridades y expertos en seguridad
90-
- **Pricing**: Estructura de precios de tres niveles
91-
- **FAQ**: Preguntas frecuentes detalladas
92-
- **Footer**: Información completa del sitio y enlaces
77+
- Página: `src/pages/demo.astro` → ruta `/demo`.
78+
- Componente principal: `src/components/interactive/MapDemoClean.tsx`.
79+
- Estilos Leaflet: `src/styles/leaflet-custom.css` (importado desde `global.css`).
9380

94-
### 🔧 Características Técnicas
81+
Modos soportados: incidentes con marcadores, heatmap (círculos) y rutas seguras (polylines). Selector de proveedor de mapa (OSM, satélite, oscuro) y simulación de ubicación del usuario.
9582

96-
- **Optimizado para SEO**: Meta tags, datos estructurados, sitemap
97-
- **Listo para PWA**: Manifiesto de aplicación web y capacidades offline
98-
- **Rendimiento**: División de código (code splitting), carga diferida (lazy loading), paquetes optimizados
99-
- **Accesibilidad**: Cumple con WCAG 2.1 AA
100-
- **TypeScript**: Seguridad de tipos completa en todo el proyecto
83+
### Nota sobre un bug histórico de marcadores “flotantes”
10184

102-
## 🚀 Inicio Rápido
85+
Se corrigió un problema donde los marcadores se desplazaban al hacer zoom porque `.leaflet-marker-icon` tenía animaciones con `transform`. Leaflet usa `transform` para posicionar; si lo animas, “rompe” el anclaje a coordenadas.
10386

104-
### Prerrequisitos
87+
- Fix aplicado en `src/styles/leaflet-custom.css`: se retiró la animación del contenedor.
88+
- Si necesitas animaciones, aplícalas a un elemento hijo dentro del HTML del `DivIcon` (no al contenedor `.leaflet-marker-icon`).
10589

106-
- Node.js 18+
107-
- npm o yarn
90+
## 🔧 Solución de Problemas
10891

109-
### Instalación
92+
1. “npm run dev” no arranca o puerto ocupado (4321)
11093

111-
```bash
112-
# Clona el repositorio
113-
git clone https://github.com/trinity-bytes/SafeMap-Web.git
114-
cd SafeMap-Web
94+
```powershell
95+
# Ver el proceso que usa el puerto 4321
96+
$pid = (Get-NetTCPConnection -LocalPort 4321).OwningProcess
97+
Get-Process -Id $pid
11598
116-
# Instala las dependencias
117-
npm install
99+
# Matarlo si es necesario
100+
Stop-Process -Id $pid -Force
118101
119-
# Inicia el servidor de desarrollo
102+
# Reiniciar el dev server
120103
npm run dev
121104
```
122105

123-
### Scripts Disponibles
124-
125-
```bash
126-
npm run dev # Inicia el servidor de desarrollo
127-
npm run build # Compila para producción
128-
npm run preview # Previsualiza la compilación de producción
129-
npm run astro # Ejecuta comandos CLI de Astro
130-
```
131-
132-
## 🌐 Despliegue
133-
134-
El proyecto está listo para producción y se puede desplegar en:
135-
136-
- **Netlify** (Recomendado)
137-
- **Vercel**
138-
- **GitHub Pages**
139-
- **Servidor personalizado**
140-
141-
Consulta `DEPLOYMENT.md` para instrucciones detalladas de despliegue.
142-
143-
## 📊 Rendimiento
106+
1. Cerrar el servidor de desarrollo
144107

145-
- **Tamaño del Paquete**: ~200KB gzipped
146-
- **Puntuación Lighthouse**: 95-100 en todas las métricas
147-
- **First Contentful Paint**: <1.5s
148-
- **Time to Interactive**: <3.5s
108+
- En la terminal donde corre: Ctrl + C (confirma si te lo pide).
109+
- En VS Code: Terminal → ícono de papelera (Terminate) o “Tasks: Terminate Running Task”.
149110

150-
## 🎓 Proyecto Universitario
111+
1. Dependencias corruptas
151112

152-
Esta página de aterrizaje fue desarrollada como parte de un proyecto universitario para el curso "Diseño y Patrones de Software", demostrando:
153-
154-
- Prácticas modernas de desarrollo web
155-
- Arquitectura basada en componentes
156-
- Técnicas de optimización del rendimiento
157-
- Cumplimiento de accesibilidad
158-
- Documentación profesional
113+
```powershell
114+
Remove-Item -Recurse -Force node_modules; Remove-Item -Force package-lock.json
115+
npm install
116+
npm run dev
117+
```
159118

160-
## 📚 Documentación
119+
## 🌐 Despliegue
161120

162-
- `DEPLOYMENT.md` - Guía de despliegue completa
163-
- `PROJECT-COMPLETION.md` - Informe detallado de finalización del proyecto (si existe)
164-
- Documentación de componentes dentro de los archivos fuente
121+
Guía en `DEPLOYMENT.md`. Funciona bien en proveedores como Netlify, Vercel o un servidor propio.
165122

166123
## 🤝 Contribuciones
167124

168-
Este es un proyecto universitario, pero los comentarios y sugerencias son bienvenidos:
125+
Sugerencias bienvenidas:
169126

170-
1. Haz un fork del repositorio
171-
2. Crea una rama para tu característica (`git checkout -b feature/AmazingFeature`)
172-
3. Haz commit de tus cambios (`git commit -m 'Add some AmazingFeature'`)
173-
4. Haz push a la rama (`git push origin feature/AmazingFeature`)
174-
5. Abre un Pull Request
127+
1. Fork
128+
2. Rama: `feature/mi-cambio`
129+
3. Commit: `feat: descripción breve`
130+
4. Push y Pull Request
175131

176132
## 📄 Licencia
177133

178-
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo `LICENSE` para más detalles.
134+
MIT — ver `LICENSE`.
179135

180136
---
181137

182-
**Construido con ❤️ usando Astro, React, TypeScript y Tailwind CSS**
138+
Hecho con Astro, React, TypeScript y Tailwind CSS.

0 commit comments

Comments
 (0)