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.
- NestJS;
- Axios;
- TypeORM;
- Passport;
- TypeScript;
- AWS Client S3;
ℹ️ 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
.
Para rodar o projeto é necessário instalar o Docker
, Docker-Compose
e Make
.
- Manual de instalação do Docker, Docker-Compose e Make;
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.
- Renomeie o arquivo
.env.example
para.env
; - 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áriavelAWS_S3_BUCKET
; - O campo
HACKEREARTH_API_KEY
armazena a chave da API do HackerEarth que é utilizado para compilar e executar os códigos; - 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; - 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ãopostgresql://postgres:qAeMLDkV3&i274x1Yh@code-editor-database:5432
; - 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;
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
.