Saltar al contenido principal

Contribuir a Ambrosia POS

¡Gracias por tu interés en contribuir a Ambrosia POS! Nos encanta la colaboración comunitaria. Ya sea que estés corrigiendo un error, añadiendo una funcionalidad, mejorando la documentación o ayudando con el soporte a la comunidad, tu ayuda es bienvenida para construir el futuro de los pagos con Bitcoin.

Tabla de Contenidos

Código de Conducta

Este proyecto se adhiere a nuestro Código de Conducta. Al participar, se espera que cumplas con este código. Por favor, informa de comportamientos inaceptables a contact@ambrosiapay.com.

Primeros Pasos

Requisitos Previos

Antes de comenzar, asegúrate de tener instaladas las dependencias necesarias. Por favor, consulta nuestra Guía de Dependencias del Proyecto para instrucciones detalladas sobre la instalación de:

  • Java 21 (JDK)
  • Node.js
  • Docker
  • Gradle

Colaboradores por primera vez

Si eres nuevo en el código abierto, echa un vistazo a:

Cómo Contribuir

Tipos de Contribuciones

Aceptamos varios tipos de contribuciones:

  • 🔍 Revisar nuestro código en GitHub

  • 🐛 Reportar errores o sugerir mejoras

  • 💡 Contribuir con ideas para nuevas funcionalidades

  • 🧪 Probar la beta e informar de problemas

  • 📝 Documentación: Mejorar nuestros documentos, README o comentarios de código

  • 🍴 Hacer un fork del repositorio y enviar tus Pull Requests (PRs)

Antes de Empezar

  1. Busca problemas existentes para evitar duplicados.
  2. Discute cambios mayores abriendo un problema (issue) primero.

Configuración del Entorno de Desarrollo

Una guía clara y ordenada para trabajar en Ambrosia‑POS usando herramientas nativas.

Requisitos:

  • SDKMAN (oficial: https://sdkman.io/)
    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh"
  • Java 21 (Temurin):
    sdk list java
    sdk install java 21-tem
    java -version
  • Gradle:
    sdk install gradle
    gradle -v
  • Node.js >= 18 y npm.
  • phoenixd (Lightning):
    curl -fsSL https://raw.githubusercontent.com/olympus-btc/ambrosia-dev/master/scripts/install.sh | bash -s -- --yes

Verificación rápida

java -version && gradle -v | head -n1 && node -v && npm -v

Pasos de Configuración

  1. Haz un fork del repositorio en GitHub.

  2. Clona tu fork localmente:

    git clone https://github.com/TU-USUARIO/ambrosia.git
    cd ambrosia
  3. Paso 1 · Iniciar phoenixd Tras la instalación, asegúrate de que el servicio esté corriendo y que ~/.phoenix esté inicializado según la guía de Mastering phoenixd.

  4. Paso 2 · Servidor / Backend (Kotlin/Ktor):

    cd server
    ./gradlew run # API en :9154
    • Tests: ./gradlew test
  5. Paso 3 · Cliente / Frontend (Next.js):

    cd client
    npm install
    npm run dev # web en :3000
    • Lint: npm run lint
    • Tests: npm test
  6. Paso 4 · Configuración de Electron (Escritorio):

    cd electron
    npm install
    npm run dev

    (Consulta el README de Electron para más detalles)

Endpoints locales

Solución de problemas

Consejos
  • Usa el wrapper ./gradlew para evitar problemas de PATH.
  • Si algún puerto está ocupado, cambia 3000/9154 o detén el proceso en conflicto.
  • phoenixd: valida que corre y que ~/.phoenix contiene la configuración esperada.

Estándares de Código

Guía de Estilo

  • Cliente: Sigue las prácticas estándar de React/Next.js. Usa npm run lint para verificar problemas de estilo.
  • Servidor: Sigue las convenciones estándar de Kotlin.
  • Commits: Escribe mensajes de commit significativos.

Formato de Mensajes de Commit

Recomendamos usar Conventional Commits:

tipo(ámbito): descripción

Ejemplos:

  • feat(auth): add login support
  • fix(server): resolve null pointer exception
  • docs(readme): update installation steps

Pruebas (Testing)

Cliente (Frontend)

Dentro de client/:

npm test

Servidor (Backend)

Dentro de server/:

./gradlew test

Pruebas E2E

El proyecto incluye pruebas de extremo a extremo (E2E) para la API del servidor escritas en Python. Para instrucciones detalladas, consulta el README de Pruebas E2E.

Proceso de Pull Request

¿Cómo enviar un Pull Request?

  1. Crea una rama para tu cambio (git checkout -b feature/funcionalidad-increible).
  2. Realiza tus modificaciones y haz commit de ellas.
  3. Ejecuta las pruebas para asegurar que no haya regresiones.
  4. Sube a tu fork y envía un Pull Request al repositorio principal.

Lista de verificación

  • El código sigue las guías de estilo
  • Las pruebas pasan localmente
  • La documentación está actualizada si es necesario

Reporte de Problemas

  • Reportes de Errores: Incluye pasos claros para reproducirlo, comportamiento esperado frente al real y detalles del entorno.
  • Solicitudes de Funcionalidades: Describe la funcionalidad propuesta, el caso de uso y la motivación.

Recursos de Desarrollo

Estructura del Proyecto

  • client/ - Aplicación frontend (Next.js/React).
  • server/ - Aplicación backend (Kotlin/Ktor).
  • electron/ - Envoltorio de escritorio (Electron).
  • doc/ - Documentación del proyecto.
  • scripts/ - Scripts de utilidad e instalación.

Comandos Útiles

Servidor:

./gradlew run   # Ejecutar servidor
./gradlew jar # Construir JAR

Cliente:

npm run dev     # Iniciar servidor de desarrollo
npm run build # Construir para producción
npm start # Iniciar servidor de producción

Comunidad

¡Mantente conectado!

Síguenos en nuestras redes sociales y únete a la comunidad de desarrolladores y emprendedores que están construyendo el futuro de los pagos con Bitcoin.