🚀 Bienvenido a Web GDG Sucre
Este documento te guiará en el proceso de configuración, estructura del proyecto y mejores prácticas para contribuir a este repositorio.
📌 Tecnologías Utilizadas
Sección titulada «📌 Tecnologías Utilizadas»El proyecto está construido con las siguientes tecnologías:
- Bun - Gestor de paquetes rápido y eficiente.
- Astro - Framework ligero para sitios estáticos y optimizados.
- Tailwind CSS - Framework de CSS orientado a clases utilizarias.
- shadcn/ui - Biblioteca de componentes UI personalizables con Tailwind.
- Supabase - Backend como servicio para autenticación, base de datos y almacenamiento de archivos estáticos.
- Starlight - Framework de documentación escrito en Astro.
- Vercel - Plataforma de despliegue y hosting.
🏛️ Arquitectura
Sección titulada «🏛️ Arquitectura»Está divida en tres capas: Frontend, Backend y Supabase.
flowchart TD
User(["Usuario"])
AdminUser(["Usuario admin"])
subgraph Vercel ["Vercel"]
subgraph Frontend ["Frontend (Astro + React + Tailwind)"]
Landing["Landing Pages <br> /pages/eventos/*"]
Admin["Admin <br> /admin"]
Registro["Registro <br>/{eventSlug}/registro"]
end
subgraph Backend ["Backend (Astro SSR + Node.js)"]
API_Auth["Endpoints Auth<br/>/api/auth/*"]
API_Events["Endpoints Registro + Admin <br/>/api/register <br> /api/events"]
Services["Services <br> /lib/services/*.ts"]
end
end
subgraph SupabaseDB ["Supabase"]
Auth["Supabase Auth<br/>Google OAuth"]
DB[("PostgreSQL<br> Tablas y relaciones")]
Storage[(Storage <br> Archivos estáticos)]
end
User -->|"Visita"| Landing
User -->|"Accede"| Registro
AdminUser -->|"Gestiona"| Admin
Frontend <-->|"Fetching"| API_Events
Frontend <-->|"Autenticación"| API_Auth
API_Auth <-->|"OAuth "| Auth
API_Events --- Services
Services <-->|Query / Update| DB
Services <-->|Query / Update| Storage
📁 Estructura del Proyecto
Sección titulada «📁 Estructura del Proyecto»El repositorio se encuentra en GitHub y está organizado de la siguiente manera:
Directoriopublic/ Archivos estáticos públicos: favicon, og, etc.
- …
Directoriosrc
Directorioassets/ Archivos estáticos internos: Tipos de letra, imágenes
- …
Directoriocomponents Componentes UI
Directorioevents Componentes específicos para eventos
Directorioio-extended-25
- Hero.astro Componente de un evento
Directorioui/ Componentes base shadcn/ui
- …
- Header.astro Componente global
Directoriolayout Estructura de las páginas
- BaseLayout.astro
Directoriolib Código compartido por componentes, páginas y endpoints
Directorioservices/ Servicios para conectar a supabase
- …
Directoriotemplates/ Plantillas de emails
- …
Directoriovalidators/ Schemas de zod para validación de datos
- …
Directoriopages Páginas y Endpoints
Directorioapi Endpoints
- register.ts
Directorioeventos
- devfest-25.astro Página de un evento
Directorioregistro
- [eventSlug].astro Página de registro según el evento
- index.astro Página principal
Directoriostyles
- global.css Estilos globales, fuente, colores, etc.
- .env Variables de entorno
- .gitignore
- README.md
🛠️ Configuración Inicial
Sección titulada «🛠️ Configuración Inicial»Para empezar a trabajar en el proyecto, sigue estos pasos:
1️⃣ Clona el Repositorio
Sección titulada «1️⃣ Clona el Repositorio»git clone https://github.com/jesulim/web-gdgsucrecd web-gdgsucre2️⃣ Instala las Dependencias
Sección titulada «2️⃣ Instala las Dependencias»Usamos Bun para manejar las dependencias:
bun install3️⃣ Ejecuta el Proyecto en Local
Sección titulada «3️⃣ Ejecuta el Proyecto en Local»Para correr la versión en desarrollo:
bun dev4️⃣ Abre el proyecto en el navegador
Sección titulada «4️⃣ Abre el proyecto en el navegador»El sitio estará disponible en http://localhost:4321 🎉
📄 Si necesitas conectarte a Supabase
Sección titulada «📄 Si necesitas conectarte a Supabase»Solicita el archivo .env con las credenciales.
🚀 Despliegue
Sección titulada «🚀 Despliegue»Cada rama se despliega automáticamente en Vercel.
- La rama
mainse despliega a www.gdgsucre.com - Las demás ramas se despliegan a un subdominio de Vercel. Cuando subas tu Pull Request a GitHub, tendrás un comentario del bot Vercel con el link.
📢 Cómo contribuir
Sección titulada «📢 Cómo contribuir»Si deseas contribuir al proyecto:
- Crea una nueva rama siguiendo las convenciones.
- Confirma tus cambios y sube un Pull Request (PR).
- Solicita la revisión y aprobación para hacer el merge a
main.
❓ Preguntas Frecuentes
Sección titulada «❓ Preguntas Frecuentes»No sé mucho sobre Astro, ¿puedo contribuir?
Sí, el proyecto busca que cualquier persona pueda aprender y aportar. Puedes empezar con documentación, corrección de errores o mejora del código existente.
¿Cómo puedo sugerir una nueva funcionalidad?
Contacta al equipo o crea un issue en GitHub explicando tu idea.
🎉 ¡Gracias por tu interés en contribuir en la Web del GDG Sucre! 🚀