Skip to content

Uma plataforma similiar a Netflix, porém de assinatura de livros.

Notifications You must be signed in to change notification settings

L-Marcel/netbooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sumário

Instruções para devs (geral)

Deixo como recomendação a utilização do VSCode para todo o projeto.

Para manter o projeto por inteiro rodando, será necessário manter os três servidores rodando (banco de dados, backend e frontend).

Fique atento ao momento de gerar os commits, faça isso com frequência. Atenção, segue abaixo as tags padrões de nomeação de commits:

Commits

  • [feat] -> Implementação parcial ou completa de uma determinada funcionalidade;
  • [merge] -> União de duas branchs;
  • [fix] -> Correção de um erro antigo;
  • [docs] -> Alterações envolvendo documentação ou comentários;
  • [style] -> Formatação de código;
  • [refactor] -> Refatoração de código, melhorias que não alteram a funcionalidade;
  • [test] -> Testes de qualquer tipo;
  • [init] -> Código inicial do projeto, normalmente gerado por alguma ferramenta;
  • [chore] -> Vamos definir aqui como tudo que não se encaixar nas definições anteriores.

Meu conselho é inverter a lógica. Geralmente, pensamos no nome na hora de realizar o commit (eu faço assim). Agora, vamos pensar no nome antes (não por completo, apenas a tag).

Exemplo

Estou entrando para começar a implementação de uma nova funcionalidade, que envolve criar uma sala.

O commit: [feat] Iniciando implementação de criação de salas.

O nome já sugere que não terminei. Vamos supor que seja porque eu encontrei um bug no caminho. Então agora tenho que resolver esse bug.

O commit: [fix] Corrigindo erro de salas duplicadas.

Agora estou indo terminar a funcionalidade.

O commit: [feat] Implementando criação de salas.

Agora todos sabemos que a funcionalidade foi implementada.

Justificativa

É chato manter esse padrão, mas assim conseguimos manter o histórico do código organizado, bem definido e separado.

Branchs

Crie uma branch sempre que for inicializar uma nova funcionalidade. O nome dela tem que ser sugestivo, de modo que possamos identificar a funcionalidade. Assim que terminar, abra um Pull Request para a branch main e aguarde avaliação.

Exemplo

Estou indo implementar a criação de canais. Logo criarei a branch criação-canais.

Instruções para devs (backend)

Certifique-se de ter o Java (v21 - LTS) instalado. Além disso, é bom ter o Maven também.

Para executar a aplicação Java, estou utilizando o pacote de extensões Extension Pack for Java. Com ela, basta abrir o arquivo backend/src/main/java/app/netbooks/backend/BackendApplication.java e você verá um botão de play no canto superior esquerdo.

Instruções para devs (database)

Estaremos utilizando estritamente o MySQL Workbench, para aproveitar nossos modelos conceituais e relacionais desenvolvidos nele, que se encontram na pasta database/model. Também estamos armazenando as principais queries dentro da pasta database/queries, assim todos nós conseguiremos utilizar.

Também certifique-se de ter o Docker. Pode ser meio complicado, deixo esse manual como recomendação.

Também deixo como recomendação instalar a extensão MySQL. Para operações que não envolvem sincronizações/alterações no modelo relacional, como consultas, você pode acabar preferindo ela ao invés do MySQL Workbench. E vale destacar que é possível linkar nossos arquivos de query nele.

Para inicializar o banco de dados MySQL através do Docker, execute:

cd backend
docker-compose up -d

Uma vez inicializado o container, você pode se conectar ao servidor pelo MySQL Workbench utilizando os dados abaixos:

username: root
password: admin
port: 3307
hostname: 127.0.0.1

Assim que se conectar, crie dois schemas: netbooks e tests. Feito isto, importe no MySQL Workbench o arquivo do nosso modelo relacional database/models/relational.mwb e aplique o database -> forward engineer no schema netbooks.

Para que possa realizar os testes, aplique o database -> synchronize model do mesmo arquivo de modelo no schema tests.

Atenção: ele vai tentar aplicar no schema netbooks, para alterar para tests você terá que selecionar esse schema em uma etapa especifica da operação de sincronização que te dá a opção de sobrescrever o schema alvo de sincronização.

Observação: repare que nosso modelo relacional já acompanha as restrições desejadas e não é composto apenas pelas relações (tabelas).

Instruções para devs (frontend)

O gerenciador de pacotes utilizado no frontend é o pnpm. Portanto, o instale. Talvez seja necessário instalar o node (v22.14.0 - LTS) antes também.

Deixo como recomendação de extensões: SCSS Intellisense e Tailwind CSS Intellisense.

Um vez que tenha instalado tudo, execute os seguintes comandos dentro da raíz do projeto clonado:

cd frontend
pnpm install

Para executar, uma vez dentro da pasta frontend, basta:

pnpm dev

About

Uma plataforma similiar a Netflix, porém de assinatura de livros.

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages