Informações OEB
Atualmente no Escritório Modelo estamos desenvolvendo um sistema chamado Observatório de Educação Básica - OEB. Este sistema tem o objetivo de extrair informações qualificadas sobre o ensino básico de Santa Catarina, e está dividido em três fases: Atos autorizativos, Censo escolar e Auto avaliação institucional. A plataforma é desenvolvida em cooperação com o Conselho Estadual de Educação de Santa Catarina.
Antes de começar é importante entender e organizar a sua máquina para poder desenvolver e trabalhar tanto no backend como no frontend.
Além disso, nesse artigo adicionamos várias dicas de cursos, tanto gratuitos quanto pagos.
Dependências
O projeto desenvolvido no OEB tem básicamente uma tecnologia tanto no backend como no frontend, o JavaScript. Utilizamos Node.js no lado do servidor e React.js no lado do cliente. Se você vai começar agora e não tem experiência prévia com JavaScript ou alguma das tecnologias que trabalhamos recomendamos que faça algum curso para não ficar muito perdido.
O MongoDB é o único banco de dados utilizado na aplicação, e a biblioteca mongoose serviu para manipular o banco de dados através do node.js, facilitando a consulta, criação, alteração e remoção das entidades na base de dados.
Node.js
Para instalar o Node.js visite a página de download. Dentro da mesma baixe o executável se você está no Windows.
Caso use Linux recomendamos fortemente instalar com o snap.
Yarn
O Yarn é um gerenciador de pacotes muito semelhante ao NPM. A grande diferença entre eles é a performance.
No projeto nós escolhemos utilizar o Yarn, portanto nunca instale bibliotecas com o NPM, sempre com o Yarn.
Se estiver no Windows clique nesse link para baixar o executável. No linux basta seguir esse tutorial.
Controle de versão
O git é o responsável por manter o controle de versão da aplicação, e de como o fluxo do desenvolvimento deve seguir. Nós organizamos as novas funcionalidades em branches separadas, e mantemos na branch master o código final, que deve ir para produção. Os repositórios estão mantidos no servidor do GitLab, para auxiliar na integração com o sistema em produção, e o controle das versões utilizadas.
Testes
Para os testes, implementamos os roteiros utilizando a biblioteca Jest. O Jest serve principalmente para criação de testes unitários e de integração, totalmente automatizados.O objetivo aqui é garantir a qualidade final do produto, e também garantir que o sistema sempre funcione como deveria.
Sistema em produção
Para testarmos como o sistema se comporta em produção, utilizamos os serviços do Heroku para hospedar o backend. Além disso, integramos o sistema com os serviços do Sentry, com o objetivo de nos notificar quando ocorre um erro no sistema em produção. Ao contrário do backend, resolvemos hospedar o frontend no Netlify, por ser uma ferramenta muito simples e gratuita para hospedagens de clientes web.
Começando
Antes de entrar nessa seção certifique se você tem acesso ao repositório do backend e do frontend.
*Obs.: Se não tiver acesso entre em contato com o coordenador do projeto ou com algum responsável que possa lhe adicionar.*
Backend
Uma vez que você tem acesso aos repositórios do projeto crie uma pasta com o nome `oeb` na sua máquina.
Com a pasta criada vá até o repositório do backend e faça um clone do mesmo.
Para subir o servidor leia as instruções neste link.
Frontend
Dentro da mesma pasta `oeb` faça um clone do repositório do frontend.
Para subir o cliente leia as instruções neste link.
Observações
- Evite trabalhar na master. Sempre que for trabalhar em uma nova feature abra um nova branch no seguinte padrão:
- Abreviação-do-nome/nome-da-feature
- Exemplo: jp/nova-rota-site
- Nós temos um Slack do time também. O link para acesso é https://escritriomode-agg1529.slack.com.
Cursos
Tem algum curso para recomendar? Adicione aqui.