# Padrão de Projeto

# GITHUB

### GITHUB **BASICS**

- #### Ao criar um projeto no GitHub, é INDISPENSÁVEL que o perfil do LJIT seja utilizado para criar e administrar o projeto ([ljitdpdf@gmail.com](https://bookstack.ljit.com.br/books/senhas-de-uso-geral/page/e-mail-ljit) #clique no link para informações#).
- #### Uma vez criado o repositório, os demais membros do projeto devem ser adicionados.
- #### Todo projeto deve ser **PRIVADO!!!!!!!!!!!**.
- #### Um ou mais membros da equipe devem ficar responsáveis por aceitar todo tipo de request na "main" e outras branches importantes, como a "develop", assim como a criação de tags diversas, etc.   
    Sempre busquem conversar com o responsável pela PR ou MR antes de aceitarem qualquer requisição.

# PROJETO

### **COMEÇO DE PROJETO**

- #### Em geral, os projetos do laboratório utilizam Node.js no backend e React.js no frontend. Isso não é uma regra e pode variar de projeto para projeto.
- #### A grande maioria dos projetos utilizará bancos de dados do tipo relacional, normalmente o SQL Server da Microsoft (algumas vezes o PostgreSQL).
- #### Os projetos normalmente contam com equipes distintas para cada parte da aplicação.   
    O time de banco de dados e backend deve trabalhar junto como um só time; o time de frontend deve se comunicar ativamente com o time de backend para padronizar requisições, rotas e afins. Idealmente, todo projeto contará com pelo menos um profissional full stack, que será responsável por entender o projeto como um todo e padronizá-lo para que banco, frontend e backend possam interagir de forma correta.
- #### Normalmente, o projeto se inicia com a modelagem do banco de dados. A pessoa ou o grupo responsável pelo banco deve definir, em conjunto com o restante do grupo de trabalho, as tipagens de cada item, assim como os nomes das tabelas, etc.
- #### Uma vez feita a modelagem do banco, ela será submetida à avaliação do sênior responsável pela manutenção dos bancos de dados de produção, para que ele possa guiar e auxiliar em possíveis mudanças (apenas em projetos maiores e/ou destinados à Sede da Defensoria).
- #### Todo projeto deve ser dockerizado, tanto frontend quanto backend. Os responsáveis pela dockerização ficam à criterio do grupo.

# KANBAN

### **O BOARD do laboratório**

- #### O uso do Kanban é obrigatório para projetos destinados à produção. Através do "board", os mentores são capazes de atualizar os desenvolvedores da Sede da Defensoria sobre os status dos projetos do laboratório.
- #### O Kanban do laboratório está disponível através do link [https://board.ljit.com.br/board](https://board.ljit.com.br/board).
- #### No quadro, ficam divididas as tarefas (tasks) de cada integrante do projeto. Idealmente, o profissional full stack será responsável por administrar as tasks, mas não obrigatoriamente.
- #### Lembrem-se de manter o quadro sempre atualizado e de mover as tarefas à medida que avançarem para outras etapas.