Este repositório se refere ao backend do aplicativo USPolis, destinado a ajudar os alunos da Poli a encontrar suas aulas e alocação de salas.
O serviço foi desenvolvido com as seguintes tecnologias:
- NodeJS
- Express
- Typescript
O banco de dados está na máquina da USPolis na nuvem da USP, e não está exposto por usuário e senha. A conexão deve ser feita por SSH, com tunelamento de porta. Uma possível forma de fazer isso:
- Baixar a extensão de SSH da Microsoft no VSCode
- Conectar o VSCode na máquina remota (credenciais estão no Notion, aba Recursos)
- Abrir um terminal no VSCode remoto, e abrir a aba
Ports
- Adicionar porta 27017 (porta padrão do MongoDB)
- Criar um arquivo
.env
local com a configDATABASE_URL="mongodb://localhost:27017/uspolis"
- Selecionar a versão certa do NodeJS:
nvm use
- Instalar as dependências:
npm i
- Para rodar o servidor de desenvolvimento com fast reload (utilizando Nodemon):
npm run start:dev
Sempre que houver alguma mudança no arquivo schema.prisma
, é necessário atualizar os modelos rodando npx prisma generate
Na máquina da USP, rodar:
cd ~/USPolis-Mobile-Backend/
git pull origin
./start_uspolis_mobile_back.sh
O script de rodar o servidor termina o processo anterior na porta (versão anterior da aplicação) e levanta um novo build.
Um ponto em que pode haver algum problema é no servidor da USP (que tem pouco espaço, só 10 gigas de storage). Então, pode ser que o espaço seja completo e, com isso, os sistemas saiam do ar (como por exemplo o banco de dados).
Um comando útil para descobrir onde estão os maiores arquivos e diretórios é du -a /var/log | sort -n -r | head -n 20
, que mostra os 20 maiores ocupantes de espaço no sistema (nesse caso, na pasta /var/log
)
Outro comando útil é o journalctl --vacuum-time=5d
, que limpa os journals do sistema (nesse caso, apaga arquivos de mais de 5 dias). Fazendo isso, liberamos cerca de 1 giga de espaço no servidor.
O comando df -h
mostra o espaço disponível e ocupado no sistema.