Sitio web oficial de Nin Dental Clinic, clínica odontológica ubicada en Gascue, Santo Domingo, República Dominicana.
Construido con React 18 + Vite, desplegado en Netlify.
| Tecnología | Uso |
|---|---|
| React 18 | UI |
| Vite | Bundler / dev server |
| Vanilla CSS (custom properties) | Estilos |
| EmailJS | Notificación de citas por email |
| SheetDB | CRM — guarda citas en Google Sheets |
| React Icons | Iconografía |
| Google Fonts | Cormorant Garamond + Outfit |
npm install # Instalar dependencias
npm run dev # Servidor de desarrollo (http://localhost:5173)
npm run build # Build de producción (genera /dist)
npm run preview # Preview del build localmenteCrea un archivo .env en la raíz del proyecto con las siguientes variables (necesarias para el formulario de citas):
VITE_EMAIL_SERVICE_ID=
VITE_EMAIL_TEMPLATE_ID=
VITE_EMAIL_PUBLIC_KEY=Estas credenciales corresponden a la cuenta de EmailJS. El endpoint de SheetDB está hardcodeado en src/App.jsx.
drnin/
├── public/
│ └── assets/
│ ├── consultorio.png # Imagen de fondo del hero
│ ├── equipo/ # Fotos del equipo médico
│ └── *.svg / *.png # Íconos de servicios
├── src/
│ ├── assets/ # Logos e imágenes importadas en JS
│ ├── components/
│ │ ├── Navbar.jsx # Navegación fija con scroll effect
│ │ ├── Features.jsx # Tarjeta de característica
│ │ ├── Services.jsx # Tarjeta de servicio
│ │ ├── Equipo.jsx # Tarjeta de doctor
│ │ ├── Input.jsx # Input reutilizable con validación regex
│ │ ├── Socials.jsx # Botón de red social
│ │ ├── Whatsapp.jsx # Botón flotante de WhatsApp
│ │ └── Footer.jsx # Pie de página
│ ├── featuresData.jsx # Contenido: características de la clínica
│ ├── servicesData.jsx # Contenido: 6 servicios dentales
│ ├── doctorsData.jsx # Contenido: equipo médico
│ ├── App.jsx # Componente raíz — estado + lógica del form
│ ├── App.css # Todos los estilos (design system)
│ ├── index.css # Reset global
│ └── main.jsx # Punto de entrada React
├── index.html # HTML base (Google Fonts, meta tags)
├── vite.config.js
└── .env # Variables de entorno (no commitear)
- Validación client-side — nombre (solo letras/acentos), teléfono (
XXX-XXX-XXXX), email, checkbox de consentimiento WhatsApp. - EmailJS — envía notificación al correo de la clínica.
- SheetDB — registra la cita en Google Sheets (CRM).
- Modal de éxito — confirmación visual al usuario.
- Diseño de sonrisa
- Implantes
- Carillas
- Blanqueamiento
- Ortodoncia
- Coronas y puentes
- Dr. Francisco Nin
- Dr. Yessica Palmy
El sitio está conectado a Netlify con deploy continuo desde la rama main. Las variables de entorno se configuran en el panel de Netlify → Site settings → Environment variables.
- Email: clinicadentaldr.nin@gmail.com
- Instagram: @nindentalclinic
- WhatsApp: +1 (809) 283-2825
- Ubicaciones:
- Av. Pasteur No. 55, Suite 102, Gascue, Santo Domingo
- Av. Simón Bolívar No. 105, Suite 102, Gascue, Santo Domingo