Bienvenido al repositorio del sitio web de SIAFI. Este proyecto está desarrollado con React y Next.js, y tiene como objetivo proporcionar información sobre la Sociedad de Inteligencia Artificial y sus actividades.
Puedes ver el sitio web en acción en siafi-unam.org.
Para entrar al CMS de Sanity, ve a siafi-unam.org/studio (necesitas credenciales para acceder).
- React: Biblioteca de JavaScript para construir interfaces de usuario.
- Next.js: Framework de React para aplicaciones web.
- Sanity.io: CMS (Plataforma de gestión de contenido) para administrar el contenido de forma code-less.
- CSS Modules: Para el estilo de los componentes.
- Vercel: Plataforma de despliegue y hosting del sitio.
- Bootstrap: Framework de CSS para el diseño de la página (principalmente utilizado para el layout).
Para instalar y ejecutar este proyecto localmente, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/SIAFI-UNAM/siafi-website.git
-
Navega al directorio del proyecto:
cd siafi-website
-
Instala las dependencias (debes tener Node.js instalado previamente):
npm install
-
Duplica el archivo
.env.example
y renombralo a.env.local
en la raíz del proyecto.cp .env.example .env.local
-
Agrega los tokens necesarios en el archivo
.env.local
. (Psst: Si eres un SIAFIto y quieres hacer cambios, puedes preguntarle al líder de proyectos por los tokens 😉) -
Ejecuta el servidor de desarrollo:
npm run dev
-
Abre tu navegador y ve a http://localhost:3000 para ver el sitio web en acción.
La estructura principal del proyecto es la siguiente:
siafi-website/
├── public/ # Archivos públicos (favicon, imágenes públicas, etc.)
├── src/
│ ├── components/ # Componentes React organizados por sección o "General" para componentes reutilizables
│ ├── styles/ # Archivos de estilo (CSS Modules)
│ ├── sanity/ # Configuración, tipos de contenido y más del CMS Sanity
│ ├── assets/ # Archivos de imágenes, fuentes, etc.
│ ├── lib/ # Funciones y utilidades
│ |── app/ # App router de Next.js con layouts y rutas
│── (sanity) # Configuración de Sanity para la vista del CMS
└── (webpage) # Vistas de la página de SIAFI
│ └── image-paths.ts # Paths de imágenes del proyecto para facilitar su uso
├── .gitignore # Archivos y directorios ignorados por Git
├── package.json # Dependencias y scripts del proyecto
└── README.md # Este archivo
Las contribuciones son bienvenidas. Si deseas contribuir, por favor sigue estos pasos (seas o no miembro de SIAFI):
-
Haz un fork del repositorio.
-
Crea una nueva rama siguiendo la metodología GitFlow. Por ejemplo:
feature/add-dark-mode
. -
Realiza tus cambios y utiliza Conventional Commits para tus mensajes de commit. (Ya es un plus si usas también gitmoji 😄).
💡 Te recomiendo esta extensión de VSCode para tus commits 👉🏼 Conventional Commits
-
⚠️ Actualiza el archivoCHANGELOG.md
con tus cambios y si es necesario el archivo.env.example
con el nombre de las nuevas variables de entorno.Nota: Aún no le coloques versión a el archivo CHANGELOG, escribe tus cambios debajo de UNRELEASED CHANGES y cuando sea mezclado se le colocara el versioning
-
Sube tus cambios a tu fork.
-
Abre un Pull Request de tu rama en tu fork a la rama
development
en este repositorio. NO LO HAGAS A LA RAMAmain
. -
Los miembros de SIAFI revisarán tu Pull Request y te darán retroalimentación.
-
Una vez que tu Pull Request sea aprobado, será fusionado a la rama
development
y se desplegará en producción (main) más adelante. 🚀 -
Un miembro de SIAFI se encargará de actualizar el archivo
CHANGELOG.md
con la versión correspondiente, actualizar la versión delpackage.json
(npm version [major/minor/patch]
) y de hacer el despliegue a producción.
Este proyecto fue originalmente desarrollado con ❤️ por Christian Leyva, antiguo miembro de SIAFI.
El sitio web está inspirado en el diseño Influencer Meet Tech creado por Andikan Bassey y otros diseñadores (el diseño esta licenciado sobre CC BY 4.0).