Este boilerplate foi criado em 2025.1 com a proposta de trazer a frente mobile para o Processo de Treinamento de Área (PTA) do CITi. Ele foi desenvolvido com base no boilerplate utilizado nos processos seletivos de 2022 e atualizado em 2023.2, que tinha como objetivo aproximar as pessoas aspirantes da realidade dentro da empresa. Esta nova versão mantém esse propósito, ao mesmo tempo em que amplia a capacitação técnica, alinhando-se às demandas atuais da empresa.
Explore the docs »
·
Report Bug
·
Request Feature
Esse boilerplate foi criado durante o processo seletivo de 2022 do CITi e ele tem o intuito de aproximar as pessoas aspirantes à realidade dentro do CITi. O boilerplate será usado durante a última etapa do processo seletivo, a qual tem o objetivo de capacitar tecnicamente as pessoas que entrarão no CITi. O template foi criado em um monorepo e está estruturado em cliente (mobile) e servidor.
O server contém uma estrutura base de código voltada à construção de uma API, incluindo uma abstração pensada para facilitar o contato inicial das pessoas aspirantes com o desenvolvimento de back-end. Já o cleint, apresenta uma base de código para a construção de toda a interface web da aplicação. A nova pasta mobile traz uma estrutura inicial para o desenvolvimento da versão mobile da aplicação, ampliando o escopo técnico e alinhando-se às frentes utilizadas em projetos reais do CITi.
-
Certifique-se que o node e o pnpm estejam devidamente instalados.
npm i -g pnpm
-
Clone o repositório
git clone URL_DO_REPOSITÓRIO
-
Entre na pasta /server do repositório
-
Abra a pasta /server no vscode
-
Vá em terminal e abra o novo terminal
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
pnpm install
ou
pnpm i
-
Certifique-se que o docker esteja devidamente instalado
-
Com a pasta /server aberta no vscode, crie um novo arquivo e o nomeie de ".env"
-
Dentro desse novo arquivo criado, coloque esse texto abaixo
# ###### GENERAL SETTINGS ####### PROJECT_NAME=pta SERVER_PORT=3001 # ###### DATABASE SETTINGS ####### DATABASE_TYPE=postgres DATABASE_HOST=${PROJECT_NAME}-db DATABASE_PORT=5432 DATABASE_USER=postgres DATABASE_PASSWORD=docker DATABASE_DB=${PROJECT_NAME} DATABASE_URL=${DATABASE_TYPE}://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DB}
-
Abra um novo terminal no vscode
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
docker-compose up
ou
docker compose up
-
Espere que o terminal esteja dessa maneira
-
Com este terminal rodando, abra outro terminal, ainda na pasta /server, e rode essa sentença abaixo
pnpm migration
OBS. 1: Ao aparecer o campo "Enter a name for the new migration:", digite uma frase rápida que indique o que foi feito (ex.: add model user). A migration é como se fosse o commit do banco de dados.
OBS. 2: É necessário que esse comando seja rodado a cada vez que você modificar o arquivo
schema.prisma
Essa função verifica se existe um valor undefined passando no argumento.
-
Observação: Essa função recebe quantos argumentos forem preciso.
Retorna o booleano true caso exista valores undefnined
Retorna o booleano false caso exista valores undefnined
Exemplo:
Essa função tem a finalidade de inserir um valor de modelo dentro de um banco de dados.
- Observação: Essa função recebe o novo objeto a ser inserido como argumentos.
Retorna https 201 caso o procedimento ocorra de forma correta
Retorna https 400 caso o procedimento NÃO ocorra de forma correta
Exemplo:
Essa função tem a finalidade de pegar TODOS os valores de modelo dentro de um banco de dados.
- Observação: Essa função não tem argumentos.
Retorna https 200 caso o procedimento ocorra de forma correta
Retorna https 400 caso o procedimento NÃO ocorra de forma correta
Exemplo:
Essa função tem a finalidade de procurar um valor de modelo dentro de um banco de dado, utilizando o ID.
- Observação: Essa função recebe o ID como argumento.
Retorna o valor procurado caso o procedimento ocorra de forma correta
Retorna undefined caso o procedimento NÃO ocorra de forma correta
Exemplo:
Essa função tem a finalidade de deletar um valor de modelo dentro de um banco de dado, utilizando o ID.
- Observação: Essa função recebe o ID como argumento.
Retorna https 200 caso o procedimento ocorra de forma correta
Retorna https 400 caso o procedimento NÃO ocorra de forma correta
Exemplo:
Essa função tem a finalidade de atualizar um valor de modelo dentro de um banco de dado, utilizando o ID.
- Observação: Essa função recebe o ID e os novos valores como argumentos.
Retorna https 200 caso o procedimento ocorra de forma correta
Retorna https 400 caso o procedimento NÃO ocorra de forma correta
Exemplo:
-
Entre na pasta /client do repositório
-
Abra a pasta /client no vscode
-
Vá em terminal e abra o novo terminal
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
pnpm install
ou
pnpm i
-
Entre na pasta /client do repositório
-
Abra a pasta /client no vscode
-
Vá em terminal e abra o novo terminal
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
pnpm run dev
-
Espere que o terminal esteja dessa maneira
-
Entre na pasta /mobile do repositório
-
Abra a pasta /mobile no vscode
-
Vá em terminal e abra o novo terminal
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
pnpm install
ou
pnpm i
-
Certifique-se de que o aplicativo Expo Go esteja instalado em seu celular (disponível para Android e iOS)
-
Entre na pasta /mobile do repositório
-
Abra a pasta /mobile no vscode
-
Vá em terminal e abra o novo terminal
-
Com o terminal aberto, escreva essa sentença abaixo e dê enter
pnpm run start
-
No terminal, aparecerá um QR Code. Escaneie esse código com o aplicativo Expo Go no seu celular para abrir o app. Obs: seu computador e celular devem estar na mesma rede Wi-Fi
Não instale novas dependências sem a autorização da pessoa gerente do projeto. Caso seja preciso, converse com gerentes e peça direcionamento de como faz para adicionar.
- Alex Damascena, líder de desenvolvimento em 2022.1 - apfd@cin.ufpe.br
- Tiago Lima, líder de desenvolvimento em 2023.2 - tmsl@cin.ufpe.br
- Thaís Neves, líder de desenvolvimento em 2025.1 - tns2@cin.ufpe.br