En primer lugar, ¡el equipo de desarrolladores de Idoxan le gustaría agradecerle personalmente por tomarse el tiempo para contribuir a nuestro proyecto y a la comunidad!
Este documento contiene toda la información necesaria para contribuir al proyecto Ideoxan. Si tiene alguna pregunta, contáctenos en [email protected].
Este proyecto se mantiene y se rige de acuerdo con el código de conducta oficial del proyecto. Se requiere un acuerdo sobre sus términos y condiciones, junto con los Términos de servicio oficiales de Ideoxan, la Política de privacidad de Ideoxan y la Licencia incluida (MIT) para contribuir al proyecto de esta organización.
Se requiere el tiempo de ejecución de Node.js para ejecutar el servidor de backend (que es lo que sirve al sitio web). Las versiones superiores a 10.x son compatibles. Se sugiere que use el nodo 13.x También se requiere NPM, pero generalmente viene instalado con Node.js. Puede verificar la versión node.js haciendo
node -vSe requiere la CLI GIT para descargar el código del repositorio.
Se requiere un navegador moderno que admite las especificaciones de ES6 para JS para ver el sitio web Chrome/Chromium, Firefox y Safari.
Si bien MongoDB no se necesita 100% para ejecutar el sitio web, le sugerimos que lo instale de todos modos para que se puedan utilizar los inicios de sesión y la verificación del usuario. Para instalar MongoDB, consulte su guía de documentación. Asegúrese de que el servidor se esté ejecutando en localhost u otra ubicación especificada en la lista local o de sistema de variables de entorno
Use lo siguiente para descargar el repositorio e instalar los paquetes necesarios:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install El servidor es compatible con las variables de entorno locales de todo el sistema y de todo el sistema. Si no puede establecer una variable de entorno de todo el sistema, cree un archivo .env en el directorio ideoxan principal. Asegúrese de que el entorno de su nodo no esté configurado para production de lo contrario, las variables de entorno no se utilizarán localmente. La siguiente es una lista de variables de entorno usadas. Si alguno de ellos está en conflicto, infórmenos.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH La variable de entorno MONGO_URI se utiliza para establecer el URI de la base de datos MongoDB. Este URI debe ser una cadena Mongouri válida. El valor predeterminado es mongodb://localhost:27017/ix
La variable de entorno EXPRESS_SESSION_SECRET es el secreto que todas las sesiones se autenticaron con ese servidor utilizarán. Es mejor mantener esto seguro y seguro, ya que esto se puede usar para invalidar, modificar y fallar sesiones (que no es buena). Mantenga esto lo más largo y complejo posible. No hay incumplimiento debido a razones de seguridad.
La variable de entorno PWD_HASH es un valor entero que se utiliza para las contraseñas hash dentro del módulo BCRYPTJS. Mantenga el número lo suficientemente alto donde las contraseñas son seguras pero lo suficientemente bajas como para que no haga que el servidor disminuya la velocidad. Nuevamente, por razones de seguridad, no hay valor predeterminado.
Si está buscando contribuir a un curso o lección, consulte nuestros otros reposadores de GitHub con el prefijo del curriculum- . Todas nuestras guías curriculares se mantienen en GitHub (no todas están disponibles públicamente) y están almacenados como servidores en /static/curriculum y son solicitados por el lado del cliente bajo el directorio expreso estático ( /static ). El plan de estudios no está incluido con el editor, el sitio web o cualquiera de sus contenidos. Bajo GIT, estos cursos se incluyen como submódulos y se pueden instalar en el directorio curricular utilizando lo siguiente:
git submodule init
git submodule update --recursiveEsto clonará, buscará y tirará todos los cursos disponibles públicamente. Si desea saber más sobre los submódulos Git y cómo funcionan, haga clic aquí.
Hay dos ramas principales que se utilizan: master y prod . La sucursal prod es lo que se envía para la producción y el despliegue. Intentamos actualizar solo esta rama de vez en cuando cuando sea necesario (las hotías son más lentas para fusionarse). La rama master es donde van la mayoría de nuestros nuevos compromisos. Piense en esto como un sistema de construcción nocturno fresco. Si bien esta rama tiene el código más nuevo, no significa que sea el más estable. Si planea usar esto a largo plazo y no tiene ganas de actualizarse cada 20 minutos, le sugerimos que use la rama prod .
Hay tres opciones para ejecutar el servidor.
El modo de desarrollador es el comando para ejecutar el servidor en una máquina de desarrollo. Esto permite una fácil edición e inicio rápido del servidor. Se basa en el paquete Nodemon, así que asegúrese de que las dependencias del desarrollador se describan en el archivo package.json se instalen a través de NPM.
Para ejecutar el servidor de uso local:
npm run devPara iniciar el servidor sin ninguna característica adicional, ejecute:
npm run startEsto actualiza automáticamente cualquier submódulos incluidos y luego inicia el servidor. Alternativamente, el servidor se puede iniciar como cualquier proyecto Node.js normal:
node server.jsNo se sugiere que este método se use ya que esta opción se adapta personalmente a servidores específicos utilizados por IDEOXAN.
Esto requiere que PM2 se instale a nivel mundial .
npm run serverSi eso no funciona, use:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " En primer lugar, si cree que el problema es uno relacionado con la seguridad, no abra un problema. Informe el error directamente a nosotros por correo electrónico
El problema que informa es típicamente un problema de seguridad cuando ...
Si ha experimentado alguno de los anteriores, esto es probablemente el resultado de un posible riesgo de seguridad y debe informarse. No informar podría dar lugar a posibles acciones legales en nuestro nombre.
Incluso si su problema no cumple con lo anterior y aún cree que es un problema relacionado con la seguridad, no dude en enviarnos un correo electrónico. Es mejor estar a salvo en lugar de lamentarlo.
Verifique lo siguiente para asegurarse de que se aclare para abrir un problema.
Si su problema tiene que ver con el tiempo de ejecución de Node.js, cualquiera de los paquetes/software que no está cubierto/mantenido por Idoxan, o cualquier otra cosa, entonces este no es el lugar adecuado para presentar su problema. Si necesita ayuda para ser dirigido al rastreador de errores adecuado o la guía de solución de problemas, no dude en contactarnos. (Ver Contáctenos)
Si ha modificado alguna de la fuente, existe una alta probabilidad de que el problema haya sido causado por la manipulación. Si el problema aún persiste después de revertir su código, abra un problema.
No admitimos software antiguo. Consulte sus versiones con las que se especifican en el package.json de la rama master / package-lock.json y en la sección de requisitos previos en nuestra guía contribuyente.
Si el problema ya se ha informado y todavía está abierto en nuestro GitHub, comente su problema en lugar de abrir un nuevo problema. Si aún no está abierto, verifique el estado de él. Si tiene la etiqueta wont-fix adjunta al problema, no lo vuelva a mencionar a menos que lo vea como un problema destacado y ha pasado una cantidad significativa de tiempo. También verifique si hay una solución. A veces, los problemas se cerrarán no porque se marcaran como inválidos o se alcanzó una solución, sino por falta de actividad. Si considera que este es el caso, no dude en solicitar que se vuelva a abrir el problema.
Si su problema se relaciona con la seguridad, consulte los problemas de seguridad de informes.
Si siguió lo anterior y cumplió los requisitos, ahora puede abrir un problema. Asegúrese de usar un título descriptivo y describe claramente su problema. Asegúrese de seguir la plantilla de informe de errores (fuertemente sugerida). Si no describe su problema correctamente, su problema se cerrará sin explicación.
Si está contribuyendo a la base de código (no incluye documentación), asegúrese de seguir nuestros estándares.
Compruebe si ya hay problemas abiertos que se puedan resolver. Si no, asegúrese de que una solicitud de extracción ya no cubra lo que está intentando fusionarse.
Si está seguro de lo anterior, abra una solicitud de extracción con nuestra plantilla de PR
Si está sugiriendo que Ideoxan agrega una nueva característica o se expande a una existente, abra un problema utilizando la plantilla de solicitud de función
Muy pronto
Si tiene una pregunta o una preocupación que no cumple con lo anterior, no dude en comunicarse con nosotros (ver contáctenos)
Este repositorio se esfuerza por permitir la compatibilidad, la uniformidad y la legibilidad general. Sugerimos si está intentando contribuir a la fuente de este proyecto, que lea lo siguiente.
Muy pronto
| Etiqueta | Descripción | Buscar |
|---|---|---|
| Error crítico | Un error que impide que el sitio web sea completamente inútil y es crítico para la operación/administración básica | ? |
| Error (medio) | Un error de gravedad media que afecta una parte significativa del sitio y/o sus usuarios. | ? |
| Error (bajo) | Un error de baja prioridad que apenas tiene impacto en el sitio y/o sus usuarios | ? |
| Etiqueta | Descripción | Buscar |
|---|---|---|
| Duplicado | Un problema que es un duplicado de un problema anterior, cerrado (resuelto), problema abierto (pendiente) o una solicitud de extracción cerrada | ? |
| No se arreglará | Un problema no relacionado con el proyecto o el problema que no se puede resolver | ? |
| Inválido | Un problema que no tiene prevalencia en el proyecto o que no se puede replicar | ? |
| Pregunta | Se debe proporcionar más información para que la pregunta sea válida | ? |
| Etiqueta | Descripción | Buscar |
|---|---|---|
| Sitio web | Un problema relacionado con el sitio web | ? |
| Servidor | Un problema relacionado con el servidor | ? |
| Documentación | Un problema relacionado con la documentación del sitio, el servidor o la API | ? |
| Otro | Un problema que no trata con el sitio web, el servidor o la documentación | ? |
| Realce | Una sugerencia para una nueva característica bajo consideración o una mejora de una ya existente | ? |
| Etiqueta | Descripción | Buscar |
|---|---|---|
| Se busca ayudante | Una etiqueta dada a un problema o solicitud de extracción que necesita una revisión o contribución externa. Por lo general, si se da, el problema está fuera del alcance del conocimiento de los mantenedores o no es de la más alta prioridad. | ? |
| Buen primer problema | Si eres nuevo por aquí, ¡este es un gran lugar para comenzar! Este es un problema activo o un buen ejemplo de un problema para los recién llegados. | ? |
Si necesita comunicarse, contáctenos en los siguientes enlaces a continuación
Se agregarán más plataformas en el futuro.