Primeiro de tudo, a equipe de desenvolvedores da Ideoxan gostaria de agradecer pessoalmente por reservar um tempo para contribuir com nosso projeto e a comunidade!
Este documento contém todas as informações necessárias para contribuir para o projeto ideoxan. Se você tiver alguma dúvida, entre em contato conosco em [email protected].
Este projeto é mantido e governado de acordo com o código de conduta oficial do projeto. O acordo com seus termos e condições, juntamente com os Termos de Serviço Oficial da Ideoxan, a Política de Privacidade da Ideoxan e a licença incluída (MIT) é obrigada a contribuir para o projeto desta organização.
O tempo de execução do Node.js é necessário para executar o servidor de back -end (que é o que serve ao site). Versões acima 10.x são suportadas. Sugere -se usar o nó 13.x O NPM também é necessário, mas normalmente vem instalado com o Node.JS. Você pode verificar a versão Node.js fazendo
node -vA CLI Git é necessária para baixar o código do repositório.
Um navegador moderno que suporta as especificações do ES6 para JS é obrigado a visualizar o site Chrome/Chromium, Firefox e Safari.
Embora o MongoDB não seja 100% necessário para executar o site, sugerimos que você o instale de qualquer maneira, para que os logins e a verificação do usuário possam ser usados. Para instalar o MongoDB, consulte seu guia de documentação. Verifique se o servidor está em execução no localhost ou outro local especificado na lista local ou de sistema de variáveis de ambiente
Use o seguinte para baixar o repositório e instalar os pacotes necessários:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install O servidor suporta o uso de variáveis ambientais em todo o sistema e o ambiente. Se você não conseguir definir uma variável de ambiente em todo o sistema, crie um arquivo .env no diretório principal do ideoxan. Verifique se o ambiente do seu nó não está definido para production caso contrário, as variáveis de ambiente não serão usadas localmente. A seguir, é apresentada uma lista de variáveis de ambiente usadas. Se algum deles estiver conflitante, informe -nos.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH A variável de ambiente MONGO_URI é usada para definir o URI do banco de dados MongoDB. Este URI deve ser uma string monongouri válida. O padrão é mongodb://localhost:27017/ix
A variável EXPRESS_SESSION_SECRET Environment é o segredo de que todas as sessões autenticadas com esse servidor usarão. É melhor manter isso seguro e seguro, pois isso pode ser usado para invalidar, modificar e paródia sessões (o que não é bom). Mantenha isso o mais longo e complexo possível. Não há inadimplência devido a razões de segurança.
A variável de ambiente PWD_HASH é um valor inteiro usado para hash senhas no módulo BCRYPTJS. Mantenha o número alto o suficiente, onde as senhas são seguras, mas baixas o suficiente para que o servidor diminua a velocidade. Novamente, por razões de segurança, não há valor padrão.
Se você deseja contribuir para um curso ou aula, consulte nossos outros repositórios do GitHub com o prefixo do curriculum- . Todos os nossos guias de currículo são mantidos no GitHub (nem todos estão disponíveis ao público) e são armazenados a lado /static/curriculum e são solicitados pelo lado do cliente no diretório estático expresso ( /static ). O currículo não está incluído no editor, site ou qualquer um de seus conteúdos. No Git, esses cursos são incluídos como submódulos e podem ser instalados no diretório curricular usando o seguinte:
git submodule init
git submodule update --recursiveIsso clonará, buscará e puxará todos os cursos publicamente disponíveis. Se você deseja saber mais sobre os submódulos Git e como eles funcionam, clique aqui.
Existem dois ramos principais que são usados: master e prod . A filial prod é o que é enviado para produção e implantação. Tentamos atualizar apenas essa ramificação de vez em quando quando necessário (os hotfixes são mais lentos para serem mesclados). O ramo master é para onde a maioria de nossos novos começos vai. Pense nisso como um sistema de construção noturno fresco. Embora essa filial tenha o código mais recente, isso não significa que é o mais estável. Se você planeja usá -lo a longo prazo e não tiver vontade de atualizar a cada 20 minutos, sugerimos que você use a filial prod .
Existem três opções para executar o servidor.
Modo de desenvolvedor é o comando para executar o servidor em uma máquina de desenvolvimento. Isso permite fácil edição e inicialização rápida do servidor. Ele depende do pacote Nodemon, portanto, verifique se as dependências do desenvolvedor descritas no arquivo package.json estão instaladas via NPM.
Para executar o servidor, use localmente:
npm run devPara iniciar o servidor sem recursos adicionais, execute:
npm run startIsso atualiza automaticamente os submódulos incluídos e inicia o servidor. Como alternativa, o servidor pode ser iniciado como qualquer projeto normal Node.js:
node server.jsEste método não é sugerido para ser usado, pois esta opção é personalizada para servidores específicos usados pelo ideoxan.
Isso exige que o PM2 seja instalado globalmente .
npm run serverSe isso não funcionar, use:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " Em primeiro lugar, se você acredita que o problema é um referente à segurança, não abra um problema. Relate o bug diretamente para nós por e -mail
O problema que você está relatando é normalmente um problema de segurança quando ...
Se você experimentou alguma das opções acima, é provavelmente o resultado de um possível risco de segurança e deve ser relatado. O não relato pode resultar em uma possível ação legal em nosso nome.
Mesmo que seu problema não atenda ao acima e ainda acredite que é um problema relacionado à segurança, não hesite em nos enviar um e -mail. É melhor estar seguro do que se arrepender.
Verifique o seguinte para garantir que você esteja liberado para abrir um problema.
Se o seu problema tiver a ver com o tempo de execução do Node.js, qualquer um dos pacotes/software que não é coberto/mantido pelo Ideoxan, ou qualquer outra coisa, este não é o local adequado para apresentar seu problema. Se você precisar de ajuda para ser direcionado para o rastreador de bugs adequado ou o guia de solução de problemas, sinta -se à vontade para entrar em contato conosco. (Veja entre em contato conosco)
Se você modificou alguma fonte, há uma alta probabilidade de que o problema tenha sido causado por adulteração. Se o problema ainda persistir depois de reverter seu código, abra um problema.
Não suportamos software antigo. Verifique suas versões em relação às especificadas na master Branch package.json / package-lock.json e na seção Pré-requisitos em nosso guia contribuinte.
Se o problema já foi relatado e ainda está aberto em nosso github, comente seu problema em vez de abrir um novo problema. Se ainda não estiver aberto, verifique o status dele. Se tiver a tag wont-fix anexada ao problema, não a traga novamente, a menos que você a veja como um problema de destaque e uma quantidade significativa de tempo passou. Verifique também para ver se existe uma solução. Às vezes, os problemas serão fechados não porque foram marcados como inválidos ou uma solução foi alcançada, mas por falta de atividade. Se você achar que esse é o caso, sinta-se à vontade para solicitar que o problema seja reaberto.
Se você emitir relacionar -se à segurança, consulte Relatando problemas de segurança.
Se você seguiu o acima e atendeu aos requisitos, agora poderá abrir um problema. Certifique -se de usar um título descritivo e descreva claramente seu problema. Certifique -se de seguir o modelo de relatório de bugs (sugerido fortemente). Se você não descrever seu problema corretamente, seu problema será fechado sem explicação.
Se você estiver contribuindo para a base de código (não incluir documentação), siga nossos padrões.
Verifique se já existem problemas abertos que podem ser resolvidos. Caso contrário, verifique se uma solicitação de tração ainda não cobre o que você está tentando mesclar.
Se você tem certeza do exposto acima, abra uma solicitação de tração usando nosso modelo de relações públicas
Se você está sugerindo que o ideoxan adiciona um novo recurso ou se expanda a um existente, abra um problema usando o modelo de solicitação de recurso
Em breve
Se você tiver uma pergunta ou preocupação que não atenda ao acima, sinta -se à vontade para nos alcançar (veja entre em contato conosco)
Esse repositório se esforça para permitir compatibilidade, uniformidade e legibilidade geral. Sugerimos que, se você estiver tentando contribuir com a fonte deste projeto, que leia o seguinte.
Em breve
| Rótulo | Descrição | Procurar |
|---|---|---|
| Bug crítico | Um bug que dificulta o site completamente inútil e é fundamental para a operação/gerenciamento básico | ? |
| Bug (meio) | Um bug de severidade média que afeta uma parte significativa do site e/ou de seus usuários. | ? |
| Bug (baixo) | Um bug de baixa prioridade que quase não tem impacto no site e/ou em seus usuários | ? |
| Rótulo | Descrição | Procurar |
|---|---|---|
| Duplicado | Uma questão que é uma duplicata de uma questão anterior (resolvida), em questão aberta (pendente) ou uma solicitação de tração fechada | ? |
| Não vai consertar | Um problema não relacionado ao projeto ou em questão que não pode ser resolvida | ? |
| Inválido | Um problema que não tem prevalência para o projeto ou não pode ser replicado | ? |
| Pergunta | Mais informações devem ser fornecidas para que a pergunta seja válida | ? |
| Rótulo | Descrição | Procurar |
|---|---|---|
| Site | Um problema relacionado ao site | ? |
| Servidor | Um problema relacionado ao servidor | ? |
| Documentação | Uma questão relacionada à documentação do site, servidor ou API | ? |
| Outro | Um problema que não lida com o site, servidor ou documentação | ? |
| Aprimoramento | Uma sugestão para um novo recurso em consideração ou uma melhoria de uma já existente | ? |
| Rótulo | Descrição | Procurar |
|---|---|---|
| Procura-se ajuda | Uma tag dada a uma solicitação de problema ou puxão que precisa de revisão ou contribuição externa. Geralmente, se for dado, o problema está fora do escopo do conhecimento dos mantenedores ou não é da maior prioridade. | ? |
| Boa primeira edição | Se você é novo por aqui, este é um ótimo lugar para começar! Este é um problema ativo ou um bom exemplo de um problema para os recém -chegados abordarem. | ? |
Se você precisar entrar em contato, entre em contato conosco nos seguintes links abaixo
Mais plataformas serão adicionadas no futuro.