Zunächst möchte sich das Ideoxan -Entwicklerteam persönlich dafür bedanken, dass Sie sich die Zeit genommen haben, zu unserem Projekt und der Community beizutragen!
Dieses Dokument enthält alle erforderlichen Informationen, die zum iDeoxan -Projekt beitragen. Wenn Sie Fragen haben, kontaktieren Sie uns unter [email protected].
Dieses Projekt wird in Übereinstimmung mit dem offiziellen Verhaltenskodex des Projekts gepflegt und regiert. Die Vereinbarung über seine Bedingungen sowie die offiziellen Nutzungsbedingungen von Ideoxan, die Datenschutzrichtlinie von Ideoxan und die enthaltene Lizenz (MIT) sind verpflichtet , zum Projekt dieser Organisation beizutragen.
Die Laufzeit von Node.js ist erforderlich, um den Backend -Server (das der Website dient) auszuführen. Versionen über 10.x werden unterstützt. Es wird vorgeschlagen, Knoten 13.x zu verwenden. NPM ist ebenfalls erforderlich, wird jedoch in der Regel mit node.js. Sie können die Version node.js durchführen, indem Sie dies tun
node -vDie Git CLI muss den Code aus dem Repository herunterladen.
Ein moderner Browser, der die ES6 -Spezifikationen für JS unterstützt, müssen die Website Chrome/Chrom, Firefox und Safari anzeigen.
Während MongoDB nicht zu 100% benötigt wird, um die Website auszuführen, empfehlen wir, sie trotzdem zu installieren, damit Anmeldungen und Benutzerüberprüfung verwendet werden können. So installieren Sie MongoDB unter der Dokumentationshandbuch. Stellen Sie localhost
Verwenden Sie Folgendes, um das Repository herunterzuladen und die erforderlichen Pakete zu installieren:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install Der Server unterstützt sowohl systemweite als auch lokale Umgebungsvariablen. Wenn Sie keine systemweite Umgebungsvariable festlegen können, erstellen Sie eine .env Datei im Hauptverzeichnis der iDeoxan. Stellen Sie sicher, dass Ihre Knotenumgebung nicht auf production eingestellt ist. Andernfalls werden die Umgebungsvariablen nicht lokal verwendet. Im Folgenden finden Sie eine Liste gebrauchter Umgebungsvariablen. Wenn einer von ihnen widersprüchlich ist, informieren Sie uns bitte.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH Die Variable MONGO_URI -Umgebungsvariable wird verwendet, um die URI der MongoDB -Datenbank festzulegen. Dieser URI muss eine gültige Mongouri -Saite sein. Der Standard ist mongodb://localhost:27017/ix
Die Umgebungsvariable EXPRESS_SESSION_SECRET ist das Geheimnis, dass alle mit diesem Server authentifizierten Sitzungen verwendet werden. Es ist am besten, diesen sicher und sicher zu halten, da dies verwendet werden kann, um Sitzungen ungültig zu machen, zu ändern und zu fälschen (was nicht gut ist). Halten Sie dies so lang und komplex wie möglich. Aus Sicherheitsgründen gibt es keinen Ausfall.
Die Variable PWD_HASH -Umgebungsvariable ist ein ganzzahliger Wert, der verwendet wird, um Kennwörter im BCryptjs -Modul zu hasht. Halten Sie die Zahl hoch genug, wo die Passwörter sicher sind, aber niedrig genug sind, damit der Server nicht verlangsamt wird. Auch aus Sicherheitsgründen gibt es keinen Standardwert.
Wenn Sie zu einem Kurs oder einer Lektion beitragen möchten, sehen Sie sich unsere anderen Github-Repos mit dem Präfix des curriculum- an. Alle unsere Lehrplanführer werden auf Github gehalten (nicht alle sind öffentlich verfügbar) und Serverside unter /static/curriculum gespeichert und werden von der Client -Seite unter dem statischen Express -Verzeichnis ( /static ) angefordert. Der Lehrplan ist weder im Herausgeber, der Website oder eines seiner Inhalte enthalten. Unter Git sind diese Kurse als Submoduls enthalten und können unter dem Lehrplanverzeichnis unter Verwendung der folgenden Installation installiert werden:
git submodule init
git submodule update --recursiveDies wird alle öffentlich verfügbaren Kurse klonen, holen und ziehen. Wenn Sie mehr über Git -Submodules und ihre Funktionsweise erfahren möchten, klicken Sie hier.
Es werden zwei Hauptzweige verwendet, die verwendet werden: master und prod . Die prod -Niederlassung ist das, was für die Produktion und Bereitstellung gesendet wird. Wir versuchen, diesen Zweig nur so oft bei Bedarf zu aktualisieren (Hotfixes sind langsamer zu verschmelzen). In der master -Niederlassung geht es in einem Großteil unserer neuen Commits. Stellen Sie sich dies als ein frisches nächtes Bausystem vor. Während dieser Zweig den neuesten Code hat, heißt das nicht, dass er am stabilsten ist. Wenn Sie dies langfristig verwenden möchten und nicht alle 20 Minuten aktualisieren möchten, empfehlen wir Ihnen, den prod -Zweig zu verwenden.
Es gibt drei Optionen, um den Server auszuführen.
Der Entwicklermodus ist der Befehl zum Ausführen des Servers auf einer Entwicklungsmaschine. Dies ermöglicht eine einfache Bearbeitung und ein schnelles Start von Server. Es stützt sich auf das Nodemon -Paket. Stellen Sie daher sicher, dass die im package.json -Datei beschriebenen Entwicklerabhängigkeiten über NPM installiert werden.
Um den Server lokal auszuführen, verwenden Sie:
npm run devUm den Server ohne zusätzliche Funktionen zu starten, führen Sie aus:
npm run startDies aktualisiert automatisch alle enthaltenen Submodule und startet dann den Server. Alternativ kann der Server wie jedes normale Node.js -Projekt gestartet werden:
node server.jsEs wird nicht vorgeschlagen, dass diese Option verwendet werden soll, da diese Option persönlich auf bestimmte Server zugeschnitten ist, die von Ideoxan verwendet werden.
Dies erfordert, dass PM2 global installiert wird.
npm run serverWenn das nicht funktioniert:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " In erster Linie eröffnen Sie, wenn Sie das Problem für die Sicherheit haben, kein Problem. Melden Sie den Fehler uns direkt per E -Mail an uns
Das Problem, das Sie berichten, ist in der Regel ein Sicherheitsproblem, wenn ...
Wenn Sie eines der oben genannten erlebt haben, ist dies höchstwahrscheinlich das Ergebnis eines möglichen Sicherheitsrisikos und sollte gemeldet werden. Wenn Sie nicht berichten, kann dies zu möglichen rechtlichen Schritten in unserem Namen führen.
Auch wenn Ihr Problem nicht das oben genannte erfüllt und immer noch der Meinung ist, dass es sich um ein Sicherheitsproblem handelt, zögern Sie nicht, uns eine E -Mail zu senden. Es ist besser, sicher zu sein, als sich zu entschuldigen.
Bitte überprüfen Sie Folgendes, um sicherzustellen, dass Sie gelöscht werden, um ein Problem zu eröffnen.
Wenn Ihr Problem mit der Laufzeit von Node.js zu tun hat, ist eine der Pakete/Software, die nicht von iDeoxan oder irgendetwas anderem abgedeckt/gepflegt wird, oder dann nicht der richtige Ort, mit dem Sie Ihr Problem einreichen können. Wenn Sie Hilfe benötigen, um an den richtigen Bug -Tracker oder die Fehlerbehebung der Fehlerbehebung gerichtet zu werden, können Sie uns gerne kontaktieren. (Siehe Kontaktieren Sie uns)
Wenn Sie die Quelle geändert haben, besteht eine hohe Wahrscheinlichkeit, dass das Problem durch Manipulationen verursacht wurde. Wenn das Problem nach der Rückkehr Ihres Codes weiterhin besteht, öffnen Sie ein Problem.
Wir unterstützen keine alte Software. Bitte überprüfen Sie Ihre Versionen mit den angegebenen package.json der master package-lock.json Filiale.
Wenn das Problem bereits gemeldet wurde und in unserem GitHub noch offen ist, kommentieren Sie bitte Ihr Problem, anstatt ein neues Problem zu eröffnen. Wenn es noch nicht geöffnet ist, überprüfen Sie den Status. Wenn es das wont-fix -Tag an das Problem angehängt hat, bringen Sie es nicht erneut auf, es sei denn, Sie sehen es als ein herausragendes Problem und es ist eine erhebliche Zeitspanne verabschiedet. Überprüfen Sie auch, ob es eine Lösung gibt. Manchmal werden Probleme nicht geschlossen, weil sie als ungültig markiert oder eine Lösung erreicht wurden, sondern aufgrund mangelnder Aktivität. Wenn Sie dies für den Fall finden, können Sie das Problem anfordern, das wiedereröffnet zu werden.
Wenn Sie sich auf die Sicherheit beziehen, finden Sie in den Berichterstattung über Sicherheitsprobleme.
Wenn Sie die oben genannten befolgt und die Anforderungen erfüllt haben, können Sie jetzt ein Problem eröffnen. Stellen Sie sicher, dass Sie einen beschreibenden Titel verwenden und Ihr Problem klar beschreiben. Folgen Sie unbedingt der Fehlerberichtsvorlage (stark vorgeschlagen). Wenn Sie Ihr Problem nicht ordnungsgemäß beschreiben, wird Ihr Problem ohne Erläuterung geschlossen.
Wenn Sie zur Codebasis beitragen (enthält keine Dokumentation), verfolgen Sie bitte unsere Standards.
Bitte überprüfen Sie, ob bereits Probleme offen sind, die gelöst werden können. Wenn nicht, stellen Sie sicher, dass eine Pull -Anfrage noch nicht abdeckt, was Sie verschmelzen.
Wenn Sie sich der oben genannten sicher sind, öffnen Sie eine Pull -Anfrage mit unserer PR -Vorlage
Wenn Sie vorschlagen, dass Ideoxan eine neue Funktion hinzufügt oder auf ein vorhandenes erweitert wird, öffnen Sie bitte ein Problem mit der Feature -Anfrage -Vorlage
Bald kommen
Wenn Sie eine Frage oder Bedenken haben, die die oben genannten nicht erfüllt, können Sie uns gerne an uns wenden (siehe uns kontaktieren Sie uns).
Dieses Repository ist bestrebt, Kompatibilität, Gleichmäßigkeit und allgemeine Lesbarkeit zu ermöglichen. Wir schlagen vor, wenn Sie versuchen, zur Quelle dieses Projekts beizutragen, dass Sie Folgendes lesen.
Bald kommen
| Etikett | Beschreibung | Suchen |
|---|---|---|
| Kritischer Fehler | Ein Fehler, der die Website völlig nutzlos behindert und für den grundlegenden Betrieb/Management von entscheidender Bedeutung ist | ? |
| Fehler (mittel) | Ein Fehler mit mittlerer Schwere, der sich auf einen erheblichen Teil der Website und/oder dessen Benutzer auswirkt. | ? |
| Fehler (niedrig) | Ein Fehler mit geringem Priorität, der kaum Auswirkungen auf die Website und/oder ihre Benutzer hat | ? |
| Etikett | Beschreibung | Suchen |
|---|---|---|
| Duplikat | Ein Problem, das ein Duplikat eines früheren, geschlossenen (gelösten) Problems, offenen (ausstehenden) Problems oder geschlossener Pull -Anfrage darstellt | ? |
| Wird nicht reparieren | Ein Problem, das nicht mit dem Projekt oder und dem Problem zu tun hat, das nicht gelöst werden kann | ? |
| Ungültig | Ein Problem, das keine Prävalenz des Projekts hat oder nicht repliziert werden kann | ? |
| Frage | Weitere Informationen müssen bereitgestellt werden, damit die Frage gültig ist | ? |
| Etikett | Beschreibung | Suchen |
|---|---|---|
| Webseite | Ein auf Website bezogenes Problem | ? |
| Server | Ein serverbezogenes Problem | ? |
| Dokumentation | Ein Problem im Zusammenhang mit der Dokumentation der Website, des Servers oder der API | ? |
| Andere | Ein Problem, das weder mit der Website, dem Server noch mit der Dokumentation befasst ist | ? |
| Erweiterung | Ein Vorschlag für ein neues Merkmal oder eine Verbesserung eines bereits vorhandenen | ? |
| Etikett | Beschreibung | Suchen |
|---|---|---|
| Stellenangebote | Ein Tag, das einem Problem oder einer Pull -Anfrage zur Verfügung gestellt wird, die eine externe Überprüfung oder einen Beitrag benötigt. Normalerweise liegt das Problem entweder aus dem Wissensumfang der Wartenden oder nicht von höchster Priorität. | ? |
| Gute erste Ausgabe | Wenn Sie hier neu sind, ist dies ein großartiger Ort, um anzufangen! Dies ist entweder ein aktives Problem oder ein gutes Beispiel für ein Problem, das Neuankömmlinge angehen können. | ? |
Wenn Sie sich erreichen müssen, kontaktieren Sie uns bitte unter folgenden Links unten
In Zukunft werden weitere Plattformen hinzugefügt.