Skip to content

FernasG/code-editor-nestjs

Repository files navigation

COM222 - Code Editor NestJS (Back-end)

alt last commit alt files in src

O Code Editor é um editor de código online, permitindo aos desenvolvedores criar, armazenar e executar seus projetos em diversas linguagens como JavaScript e Python, tirando o trabalho necessário para configurar um ambiente de desenvolvimento, tarefa que pode ser difícil e complexa para novos programadores.

Dependências

  • NestJS;
  • Axios;
  • TypeORM;
  • Passport;
  • TypeScript;
  • AWS Client S3;

Dependencies

Instalação

ℹ️ Esse repositório pode ser complementado com o Code Editor Frontend, mas você também pode utilizá-lo com alguma aplicação capaz de fazer requisições como Insomnia, Postman, Curl ou Wget.

Configuração de Ambiente

Para rodar o projeto é necessário instalar o Docker, Docker-Compose e Make.

Variáveis de Ambiente

Esse projeto utiliza Simple Storage Service da AWS para salvar os códigos na nuvem, portanto é preciso ter uma conta na AWS e gerar as credenciais para utilizar seus serviços.

  1. Renomeie o arquivo .env.example para .env;
  2. Ao abrir o arquivo insira nos campos com prefixo AWS as suas credenciais das AWS, você deve criar um bucket na S3 que ficará responsável por armazenar os códigos, o nome do bucket criado deve ser inserido na váriavel AWS_S3_BUCKET;
  3. O campo HACKEREARTH_API_KEY armazena a chave da API do HackerEarth que é utilizado para compilar e executar os códigos;
  4. A váriavel HACKEREARTH_CALLBACK_URL armazena a URL que recebe as requisições de resposta da API do HackerEarth, você pode usar o Ngrok para expor a porta 3000 da sua máquina, com a URL gerada basta adicionar o caminho /codespaces/callback ao fim da URL;
  5. No campo DATABASE_CONNECTION_URL você deve inserir a URL de conexão com o banco de dados, há uma instância do banco sendo criada dentro Docker, sua URL é por padrão postgresql://postgres:qAeMLDkV3&i274x1Yh@code-editor-database:5432;
  6. O campo JWT_SECRET_KEY refere-se a string que será utilizada para gerar os tokens de sessão dos usuários, você pode usar qualquer texto que quiser, porém recomendamos use algum gerador de string aleatório como o Random.org;

Execução

Com o ambiente configurado abra o terminal na raiz do projeto e execute o comando:

make up

Esse comando fará o build do projeto, após finalizar você verá a seguinte mensagem no terminal:

LOG [NestApplication] Nest application successfully started

Com o servidor rodando é preciso preparar o banco de dados, criando as tabelas que serão utilizadas pelo serviço, execute o comando abaixo para rodar as migrations:

make migration:run

Agora é possível interagir com a API através da URL localhost:3000.

Autores

Fernando Goulart