Tout d'abord, l'équipe des développeurs d'Ideoxan tient à vous remercier personnellement d'avoir pris le temps de contribuer à notre projet et à la communauté!
Ce document contient toutes les informations nécessaires pour contribuer au projet Ideoxan. Si vous avez des questions, contactez-nous à [email protected].
Ce projet est maintenu et régi conformément au code de conduite officiel du projet. L'accord à ses termes et conditions, ainsi que les conditions d'utilisation officielles d'Ideoxan, la politique de confidentialité d'Ideoxan et la licence incluse (MIT) doivent contribuer au projet de cette organisation.
L'exécution Node.js est nécessaire pour exécuter le serveur backend (ce qui sert le site Web). Les versions ci-dessus 10.x sont prises en charge. Il est suggéré, d'utiliser le nœud 13.x Le NPM est également requis mais est généralement installé avec Node.js. Vous pouvez vérifier la version Node.js en faisant
node -vLe GIT CLI est tenu de télécharger le code du référentiel.
Un navigateur moderne qui prend en charge les spécifications ES6 pour JS doit afficher le site Web Chrome / Chromium, Firefox et Safari.
Bien que MongoDB ne soit pas nécessaire à 100% pour exécuter le site Web, nous vous suggérons de l'installer de toute façon afin que les connexions et la vérification des utilisateurs puissent être utilisées. Pour installer MongoDB, voir leur guide de documentation. Assurez-vous que le serveur s'exécute sur localhost ou un autre emplacement spécifié dans la liste locale ou système des variables d'environnement
Utilisez ce qui suit pour télécharger le référentiel et installer les packages nécessaires:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install Le serveur prend en charge l'utilisation à la fois des variables d'environnement à l'échelle du système et locales. Si vous n'êtes pas en mesure de définir une variable d'environnement à l'échelle du système, créez un fichier .env dans le répertoire d'ideoxan principal. Assurez-vous que votre environnement de nœud n'est pas défini sur production sinon les variables d'environnement ne seront pas utilisées localement. Ce qui suit est une liste des variables d'environnement utilisées. Si l'un d'eux est contradictoire, veuillez nous informer.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH La variable d'environnement MONGO_URI est utilisée pour définir l'URI de la base de données MongoDB. Cet URI doit être une chaîne Mongouri valide. La valeur par défaut est mongodb://localhost:27017/ix
La variable d'environnement EXPRESS_SESSION_SECRET est le secret que toutes les sessions authentifiées avec ce serveur utiliseront. Il est préférable de garder cela en sécurité et en sécurité car cela peut être utilisé pour invalider, modifier et parodier (ce qui n'est pas bon). Gardez cela aussi longtemps et aussi complexe que possible. Il n'y a pas de défaut pour des raisons de sécurité.
La variable d'environnement PWD_HASH est une valeur entière qui est utilisée pour hacher les mots de passe dans le module BCryptJS. Gardez le nombre suffisamment élevé lorsque les mots de passe sont sécurisés mais suffisamment bas pour que le serveur ne ralentisse pas le serveur. Encore une fois, pour des raisons de sécurité, il n'y a pas de valeur par défaut.
Si vous cherchez à contribuer à un cours ou à une leçon, veuillez consulter nos autres références GitHub avec le préfixe du curriculum- . Tous nos guides d'études sont conservés sur GitHub (tous ne sont pas accessibles au public) et sont stockés serveurs sous /static/curriculum et sont demandés par le côté client sous le répertoire express statique ( /static ). Le programme n'est pas inclus avec l'éditeur, le site Web ou l'un de ses contenus. Sous GIT, ces cours sont inclus sous forme de sous-modules et peuvent être installés sous le répertoire du programme en utilisant les éléments suivants:
git submodule init
git submodule update --recursiveCela clonera, récupérera et tirera tous les cours accessibles au public. Si vous souhaitez en savoir plus sur les sous-modules Git et comment ils fonctionnent, cliquez ici.
Il y a deux branches principales qui sont utilisées: master et prod . La succursale prod est ce qui est envoyé pour la production et le déploiement. Nous essayons de mettre à jour cette branche de temps en temps en cas de besoin (les hotfixes sont plus lents pour être fusionnés). La branche master est l'endroit où se déroulent une majorité de nos nouveaux engins. Considérez cela comme un système de construction nocturne frais. Bien que cette branche ait le code le plus récent, cela ne signifie pas que c'est le plus stable. Si vous prévoyez de l'utiliser à long terme et que vous n'avez pas envie de mettre à jour toutes les 20 minutes, nous vous suggérons d'utiliser la branche prod .
Il existe trois options pour exécuter le serveur.
Le mode développeur est la commande pour exécuter le serveur sur une machine de développement. Cela permet une modification facile et un démarrage rapide du serveur. Il s'appuie sur le package NODEMON, alors assurez-vous que les dépendances du développeur décrites dans le fichier package.json sont installées via NPM.
Pour exécuter le serveur à utiliser localement:
npm run devPour démarrer le serveur sans aucune fonctionnalité supplémentaire, exécutez:
npm run startCela met automatiquement à jour tous les sous-modules inclus, puis démarre le serveur. Alternativement, le serveur peut être démarré comme n'importe quel projet Node.js normal:
node server.jsCette méthode n'est pas suggérée pour être utilisée car cette option est personnalisée personnellement pour des serveurs spécifiques utilisés par l'idéoxane.
Cela nécessite que PM2 soit installé à l'échelle mondiale .
npm run serverSi cela ne fonctionne pas, utilisez:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " D'abord et avant tout, si vous croyez que la question est celle de la sécurité, n'ouvrez pas de problème. Signaler le bug directement à nous par e-mail
Le problème que vous signalez est généralement un problème de sécurité lorsque ...
Si vous avez connu l'un des éléments ci-dessus, cela est probablement le résultat d'un éventuel risque de sécurité et doit être signalé. Le non-rapport pourrait entraîner une éventuelle action en justice en notre nom.
Même si votre problème ne répond pas à ce qui précède et croit toujours qu'il s'agit d'un problème lié à la sécurité, n'hésitez pas à nous envoyer un e-mail. Il vaut mieux être en sécurité plutôt que d'être désolé.
Veuillez vérifier ce qui suit pour vous assurer que vous êtes effacé pour ouvrir un problème.
Si votre problème a à voir avec l'exécution Node.js, aucun des packages / logiciels qui ne sont pas couverts / entretenus par Ideoxan, ou quoi que ce soit d'autre, ce n'est pas l'endroit approprié pour déposer votre problème. Si vous avez besoin d'aide pour être dirigé vers le guide de tracker de bogue ou le guide de dépannage, n'hésitez pas à nous contacter. (Voir contactez-nous)
Si vous avez modifié l'une des sources, il y a une forte probabilité que le problème ait été causé par la falsification. Si le problème persiste après le retour de votre code, ouvrez un problème.
Nous ne prenons pas en charge les anciens logiciels. Veuillez vérifier vos versions par rapport à celles spécifiées dans le package.json de master Branch.json / package-lock.json et dans la section pré-requis dans notre guide de contribution.
Si le problème a déjà été signalé et qu'il est toujours ouvert sur notre github, veuillez commenter votre numéro plutôt que d'ouvrir un nouveau problème. S'il n'est pas encore ouvert, vérifiez son état. S'il a la balise de wont-fix le problème, ne le soulevez pas à moins que vous ne le voyiez comme un problème de premier plan et un délai important s'est écoulé. Vérifiez également s'il y a une solution. Parfois, les problèmes seront fermés non pas parce qu'ils étaient marqués comme invalides ou une solution a été atteinte, mais en raison d'un manque d'activité. Si vous trouvez que cela est le cas, n'hésitez pas à demander la réouverture du problème.
Si votre émission concerne la sécurité, veuillez consulter les problèmes de sécurité de la déclaration.
Si vous avez suivi ce qui précède et répond aux exigences, vous pouvez désormais ouvrir un problème. Assurez-vous d'utiliser un titre descriptif et décrivez clairement votre problème. Assurez-vous de suivre le modèle de rapport de bogue (fortement suggéré). Si vous ne décrivez pas correctement votre problème, votre problème sera fermé sans explication.
Si vous contribuez à la base de code (n'inclut pas la documentation), assurez-vous de suivre nos normes.
Veuillez vérifier s'il y a déjà des problèmes ouverts qui peuvent être résolus. Sinon, assurez-vous qu'une demande de traction ne couvre pas déjà ce que vous essayez de fusionner.
Si vous êtes sûr de ce qui précède, ouvrez une demande de traction en utilisant notre modèle de relations publiques
Si vous suggérez que l'idéoxan ajoute une nouvelle fonctionnalité ou développe une nouvelle fonctionnalité existante, veuillez ouvrir un problème en utilisant le modèle de demande de fonctionnalité
À venir
Si vous avez une question ou une préoccupation qui ne répond pas à ce qui précède, n'hésitez pas à nous contacter (voir contactez-nous)
Ce référentiel s'efforce de permettre la compatibilité, l'uniformité et la lisibilité globale. Nous suggérons que si vous essayez de contribuer à la source de ce projet, vous lisez ce qui suit.
À venir
| Étiquette | Description | Recherche |
|---|---|---|
| Bug critique | Un bug qui entrave le site Web complètement inutile et est essentiel à l'opération / gestion de base | ? |
| Bug (moyen) | Un bogue de gravité moyenne qui a un impact sur une partie importante du site et / ou de ses utilisateurs. | ? |
| Bug (bas) | Un bogue à faible priorité qui a à peine un impact sur le site et / ou ses utilisateurs | ? |
| Étiquette | Description | Recherche |
|---|---|---|
| Double | Un problème qui est un double d'un problème précédent (résolu), un problème ouvert (en attente) ou une demande de traction fermée | ? |
| Ne réparera pas | Un problème sans rapport avec le projet ou et le problème qui ne peuvent pas être résolus | ? |
| Invalide | Un problème qui n'a aucune prévalence au projet ou ne peut pas être reproduit | ? |
| Question | Plus d'informations doivent être fournies pour que la question soit valide | ? |
| Étiquette | Description | Recherche |
|---|---|---|
| Site web | Un problème lié au site Web | ? |
| Serveur | Un problème lié au serveur | ? |
| Documentation | Un problème lié à la documentation du site, du serveur ou de l'API | ? |
| Autre | Un problème qui ne traite ni le site Web, le serveur ou la documentation | ? |
| Renforcement | Une suggestion pour une nouvelle fonctionnalité considérée ou une amélioration d'une | ? |
| Étiquette | Description | Recherche |
|---|---|---|
| Aide recherchée | Une étiquette donnée à un problème ou à une demande de traction qui nécessite une révision ou une contribution externe. Habituellement, si elle est donnée, le problème est soit hors de l'étendue de la connaissance des mainteneurs, soit n'est pas de la plus haute priorité. | ? |
| Bon premier problème | Si vous êtes nouveau ici, c'est un excellent point de départ! Il s'agit soit d'un problème actif, soit d'un bon exemple de problème pour les nouveaux arrivants. | ? |
Si vous devez contacter, veuillez nous contacter aux liens suivants ci-dessous
Plus de plateformes seront ajoutées à l'avenir.