Pular para o conteúdo
b Fundamentos de aplicações web

a

Informações gerais

Este curso é uma introdução ao desenvolvimento web moderno com JavaScript. O foco principal é em Single-Page Aplications (SPA), ou seja, aplicações de página única, implementadas em React e com suporte a Serviços Web RESTful e GraphQL implementados em Node.js. O curso também aborda TypeScript, React Native e Integração Contínua.

Outros tópicos incluem depuração de aplicações, tecnologia de contêineres (containers), configuração, gerenciamento de ambientes de tempo de execução e banco de dados.

O curso é totalmente gratuito. Você poderá obter um certificado e até mesmo os créditos ECTS da Universidade de Helsinque, de graça.

Pré-requisitos

Espera-se que os participantes tenham boas habilidades de programação, conhecimento básico de programação web e banco de dados e saibam o básico do sistema de controle de versão Git. Também é esperado que você tenha perseverança e capacidade de resolver problemas e que saiba buscar informações de forma independente.

Conhecimento prévio em JavaScript ou outros tópicos do curso não é necessário.

Quanto de experiência em programação é necessário? É difícil dizer, mas você deveria estar bem fluente em sua própria linguagem de programação. Este nível de fluência normalmente é obtido com 100 a 200 horas de prática no desenvolvimento de software.

Conteúdo do curso

O conteúdo do curso deve ser lido parte por parte e em ordem.

O material contêm exercícios que são expostos de forma que a parte anterior forneça informações suficientes para que se consiga resolver o exercício posterior. É possível fazer os exercícios enquanto se passa pelo material, mas também pode ser benéfico ler todo o conteúdo da parte antes de começar os exercícios.

Em muitas partes do curso, os exercícios constroem uma aplicação maior a cada passo dado. Algumas das aplicações dos exercícios são desenvolvidas em várias partes.

O conteúdo do curso é baseado em aplicações de exemplo expandidas incrementalmente, que mudam de parte para parte. O melhor a se fazer é seguir o código enquanto se faz pequenas modificações de forma independente. O código das aplicações de exemplo para cada etapa de cada parte pode ser encontrado no GitHub.

Fazendo o curso

O curso contém quatorze partes, sendo a primeira numerada como "0" para manter consistência com as iterações anteriores. Uma parte corresponde de forma geral a uma semana (com média de 15-20 horas) de estudo, mas a velocidade de conclusão do curso é flexível.

É imprudente ir passando da parte n para a parte n+1 sem antes não se ter conhecimento suficiente dos tópicos na parte n. Em termos pedagógicos, o curso utiliza o método de Aprendizagem para o domínio (Mastery Learning), e você só deve prosseguir para a próxima parte assim que completar suficientemente os exercícios da parte anterior.

Entre as partes 1 a 4, espera-se que você complete, no mínimo, todos os exercícios não marcados com um asterisco (*). Os exercícios que são marcados com um asterisco melhoram a sua nota final, mas pular estes exercícios não impede a realização dos exercícios obrigatórios da próxima parte. Da parte 5 em diante, não há exercícios marcados com asterisco, pois sequer há esse tipo de dependência com partes anteriores.

A velocidade de conclusão do curso é flexível.

Estatísticas de tempo de conclusão dos exercícios podem ser encontradas através do sistema de envio de exercícios.

Canal do curso no Discord

Você pode discutir sobre o curso e tópicos relacionados em nosso grupo dedicado no Discord https://study.cs.helsinki.fi/discord/join/fullstack. O Discord possui os canais "fullstack_general" e os específicos das partes (nomes de canais com prefixo "fullstack") para discussões relacionadas ao curso. Observe que o chat do Discord não é adequado para discussões relacionadas ao curso. Venha participar da conversa conosco!

Como pedir ajuda no Discord

Ao pedir ajuda no grupo do Discord, sua pergunta deve ser a mais informativa e precisa possível. Se sua pergunta se parecer com isso:

A função de adicionar uma nova pessoa não funciona. Poderia me ajudar a resolver isso?

É muito provável que ninguém ligue em responder. O erro pode estar em todo lugar.

Uma boa pergunta poderia ser:

No exercício 2.15, quando eu tentei adicionar uma nova pessoa à aplicação, o servidor responde com status 403. Mesmo com essa requisição, parece que tudo está funcionando.

O código é este:

 // o código relevante é colado aqui
 // o código deve conter várias instruções 'console.log' para ajudar na depuração

O seguinte é impresso no console:

// dados impressos no console

A guia Rede (Network) no navegador exibe o seguinte:

[captura de tela da guia Rede (Network)]

Todo o código pode ser encontrado aqui (um link para o repositório no GitHub)

Das partes e da conclusão

Os estudos Full Stack consistem no curso principal e em várias extensões. Você pode concluir os estudos obtendo de 5 a 14 créditos.

Partes 0 a 5 (curso principal) - Desenvolvimento Web Full Stack (5 cr, CSM141081)

A quantidade de créditos e a nota para o curso são baseados no número total de exercícios enviados para as partes 0 a 7 (incluindo os exercícios marcados com um asterisco).

Os créditos e as notas são calculados da seguinte maneira:

Exercícios Créditos Nota
138 7 5
127 6 5
116 5 5
105 5 4
94 5 3
83 5 2
72 5 1

Assim que tiver completado exercícios suficientes para elevar sua nota, fica disponível para download o certificado de conclusão do curso pelo sistema de envio de exercícios.

Se deseja receber créditos universitários, você deve completar a prova do curso. A prova não conta para sua nota final, mas é necessário passar nela. Mais informações sobre a prova aqui.

Você só pode fazer a prova após entregar exercícios suficientes para cinco créditos. Não é aconselhável fazer a prova imediatamente após entregar o número exato de exercícios. A prova é a mesma para os créditos de 5 a 14 e não conta para sua nota.

Você não precisa fazer a prova do curso ou se inscrever no curso da Universidade Aberta para obter o certificado do curso.

Parte 6 - Desenvolvimento Web Full Stack, extensão 1 (1 cr, CSM141082)

Ao entregar pelo menos 127 dos exercícios das partes 0 a 7 ao avançar no curso principal, você pode receber crédito adicional através desta extensão.

Parte 7 - Desenvolvimento Full Stack, extensão 2 (1 cr, CSM141083)

Ao entregar pelo menos 138 dos exercícios das partes de 0 a 7 enquanto trabalha no curso principal, você pode receber crédito adicional através desta extensão.

Parte 8 - Desenvolvimento Full Stack: GraphQL (1 cr, CSM14113)

Ao entregar pelo menos 22 dos 26 exercícios da Parte 8 do curso, GraphQL, você pode obter 1 crédito adicional. A Parte 8 pode ser feita a qualquer momento depois da Parte 5, pois seu conteúdo é independente das partes 6 e 7.

Parte 9 - Desenvolvimento Full Stack: TypeScript (1 cr, CSM14110)

Ao entregar pelo menos 24 dos 27 exercícios da Parte 9 do curso, TypeScript, você pode obter 1 crédito adicional. É recomendado que você complete as partes de 0 a 7 antes de fazer a Parte 9.

Parte 10 - Desenvolvimento Full Stack: React Native (2 cr, CSM14111)

Ao entregar 25 exercícios da Parte 10 do curso de React Native, você pode ganhar 2 créditos adicionais. Mais informações sobre os pré-requisitos dessa parte, a entrega de exercícios e os créditos podem ser encontrados na Parte 10.

Parte 11 - Desenvolvimento Full Stack Web: Integração Contínua / Entrega Contínua (1 cr, CSM14112)

Ao entregar todos os exercícios da Parte 11 do curso de Integração/Entrega Contínua, você pode ganhar crédito adicional. Mais informações sobre os pré-requisitos desta parte e entrega de exercícios podem ser encontradas na Parte 11.

Parte 12 - Desenvolvimento Full Stack Web: Containers (1 cr, CSM141084)

Ao entregar todos os exercícios da parte 12 do curso sobre a tecnologia "Container", você pode ganhar créditos adicionais. Mais informações sobre os pré-requisitos desta parte e entrega de exercícios podem ser encontradas na Parte 12.

Parte 13 - Desenvolvimento Web Full Stack: Bases de Dados Relacionais (1 cr, CSM14114)

Ao entregar todos os exercícios da Parte 13 do curso sobre bancos de dados relacionais, você pode ganhar crédito adicional. Mais informações sobre os pré-requisitos desta parte e entrega de exercícios podem ser encontradas na Parte 13.

O curso em poucas palavras

Como estudar no curso – instruções resumidas: curso básico de 5 créditos CSM141081

  • Faça os exercícios. Os exercícios são enviados através do GitHub e marcados como concluídos no sistema de envio de exercícios.

  • Se deseja obter os créditos da Universidade de Helsinque:

    • Inscreva-se no curso. Você receberá o link de inscrição por meio do sistema de envio de exercícios assim que concluir os exercícios suficientes. Leia mais aqui
    • Salve seu número de aluno. Após a inscrição no curso, salve seu número de identificação de aluno da Universidade de Helsinque no sistema de envio de exercícios.
    • Faça a prova online no sistema de envio de exercícios. Leia mais aqui
    • Marque o curso concluído no sistema de envio de exercícios. Leia mais aqui

Observe que se você fizer o "curso básico" com 6 ou 7 créditos, precisará de registros separados para os créditos extras. Consulte Partes e conclusão para saber mais.

Como estudar no curso – instruções resumidas: outras partes do curso

  • Faça os exercícios. Os exercícios são enviados por meio do GitHub e marcados como concluídos no sistema de envio de exercícios. Observe que as partes 8 a 13 têm uma instância separada no sistema de envio

  • Se você deseja obter créditos da Universidade de Helsinque

    • Inscreva-se no curso. Você pode se inscrever em cada parte através do link no material do curso (Das partes e conclusão). Inscreva-se em cada parte separadamente.
    • Marque a parte concluída no sistema de envio de exercícios. Leia mais aqui

Enviando exercícios

Os exercícios são enviados por meio do GitHub e marcados como concluídos na guia "my submissions" do submission application.

Se estiver enviando exercícios de diferentes partes para o mesmo repositório, use uma forma de nomeação apropriada para seus diretórios. Se preferir, você pode criar um repositório para cada parte. Se você estiver usando um repositório privado, adicione mluukkai como colaborador.

Os exercícios são enviados uma parte de cada vez. Depois de enviar exercícios para uma parte, você não poderá mais enviar exercícios para essa parte.

Um sistema de detecção de plágio é usado para verificar os exercícios enviados ao GitHub. Se o código encontrado bater com as respostas-modelo ou se vários alunos entregarem o mesmo código, a situação será tratada de acordo com a política de plágio da Universidade de Helsinque.

Muitos dos exercícios fazem com que a aplicação escale pouco a pouco. Nesses casos, basta enviar apenas a inscrição preenchida. Você pode fazer um commit após cada exercício, mas isso não é obrigatório.

A prova do curso

Para obter os créditos universitários oficiais, você precisa passar na prova do curso que abrange as partes de 1 a 5

  • Se você não passar na prova na primeira vez, é possível refazê-la após uma semana
  • Você pode continuar enviando os exercícios mesmo após ter feito a prova

A prova é feita no sistema de envio de exercícios. Siga as instruções abaixo para concluir a prova.

  • Inscreva-se no curso através da Universidade Aberta.
  • Você receberá o link de inscrição por meio do sistema de envio de exercícios depois de concluir os exercícios suficientes.
enroll in university credits

Após sua matrícula no curso, salve seu número de identificação de aluno da Universidade de Helsinque no sistema de envio de exercícios:

saving the student number

Leia mais aqui para obter informações sobre como descobrir seu número de identificação de aluno.

Após essas etapas, você já poderá fazer a prova do curso no sistema de envio de exercícios:

iniciar a prova do curso

Você terá 120 minutos para concluir a prova. Se tudo correr bem, você verá a seguinte confirmação:

confirmação da prova final

Se for reprovado, deverá aguardar uma semana para tentar novamente a prova.

Se você passou na prova e não deseja fazer mais exercícios, é possível voltar à guia de envio de exercícios e solicitar pelos créditos:

solicitar créditos de conclusão do curso

Lembre-se de apertar no botão azul grande para pedir o cadastro dos créditos.

Observe que você deve clicar no botão duas vezes:

pressionando o botão confirmar

Quando clicado duas vezes, deverá ser exibido o seguinte texto:

Crédito universitário em andamento...

Observação: se você já fez a prova do curso no Moodle, entre em contato com matti.luukkainen@helsinki.fi ou @mluukkai no Discord.

Como conseguir seus créditos

Se você deseja receber os créditos da Universidade de Helsinque, salve seu número de aluno da Universidade de Helsinque no sistema de envio de exercícios

salvando o número de identificação do aluno

Se você não é aluno da Universidade de Helsinque, pode obter um número de aluno registrando-se no curso através da Universidade Aberta. Entre aqui para mais informações.

Você receberá seus créditos depois de enviar exercícios suficientes para sua aprovação, passar na prova e nos informar através do sistema de envio de exercícios que você concluiu o curso:

pedir créditos de conclusão do curso

Lembre-se de apertar o botão azul para pedir o cadastro dos créditos.

Note que você deve clicar no botão duas vezes:

pressionando o botão confirmar

Quando clicado duas vezes, você deve ver o seguinte texto:

Crédito universitário em andamento...

Note que para obter créditos universitários, você precisa de um registro de cada parte concluída. Consulte mais informações sobre o registro.

Você já poderá ver sua nota no SISU da Universidade de Helsinque e no Opintopolku aproximadamente quatro semanas após nos notificar.

Quando o registro é feito, o seguinte texto aparece no sistema de envio de exercícios:

Créditos universitários registrados! Consulte a página do curso para obter uma transcrição, caso necessite.

Onde obtenho meu número de identificação de aluno da Universidade de Helsinque

Se e quando você se matricular pela primeira vez em um curso através da Universidade Aberta, será gerado automaticamente um número de identificação de aluno da Universidade de Helsinque. Certifique-se de estar matriculado no curso antes de tentar descobrir qual é o seu número de identificação de aluno.

Note que você não precisa se matricular na Universidade Aberta para obter o certificado do curso!

Você consegue saber do seu número de identificação de aluno através de uma das opções abaixo:

A) SISU

Se você tiver uma conta de usuário da Universidade de Helsinque, poderá encontrar seu número de identificação de aluno em seu perfil no sistema de informações de estudo da Universidade de Helsinque SISU:

  • Faça login no SISU com seu nome de usuário e senha da Universidade de Helsinque;
  • Selecione: Meu perfil; e
  • Selecione: Informações pessoais.

B) E-mail de confirmação de matrícula

Após a matrícula no curso, você receberá um e-mail de confirmação no endereço de e-mail que você inseriu no formulário de inscrição. Esta mensagem contém diretamente o seu número de identificação de aluno ou inclui um link que o leva a uma página que exibe seu número de identificação de aluno da Universidade de Helsinque.

C) Entre em contato com o Serviço de Alunos

Se você tiver problemas para descobrir seu número de identificação de aluno pelos meios listados acima, envie um e-mail para os Serviços Estudantis da Universidade de Helsinque. Certifique-se de estar matriculado no curso pela Universidade Aberta antes de enviar o e-mail!

Em seu e-mail, inclua as seguintes informações:

  • Nome do curso em que se inscreveu;
  • Seu nome; e
  • Sua data de nascimento.

Endereço de e-mail dos Serviços Estudantis: avoin-student@helsinki.fi

Mais um lembrete: certifique-se de ter se matriculado no curso pela Universidade Aberta antes de enviar o e-mail.

Certificado do curso

Mesmo que você não se registre na Universidade Aberta para fazer a prova e obter os créditos, você ainda poderá baixar o certificado do curso na guia "my submissions" no sistema de envio de exercícios depois de concluir os exercícios suficientes para passar de ano.

Há um certificado para as partes básicas (0 a 7) do curso e, depois disso, um certificado separado para cada parte do curso.

Solicite a transcrição dos estudos

Você pode solicitar uma transcrição verificada depois que seus créditos universitários forem registrados. Para solicitar uma transcrição oficial, entre em contato com avoin-student@helsinki.fi.

  • Ao solicitar uma transcrição oficial, lembre-se de mencionar

    • O nome do curso;
    • Seu nome completo;
    • Sua data de nascimento; e
    • O idioma da transcrição.

A transcrição será entregue a você via e-mail, eletronicamente. Apresente este documento em sua instituição para ter os créditos incluídos em seu diploma. A decisão de incluir os créditos será tomada pela sua instituição de origem.

Não há mais versões anuais

Não há mais "versões anuais" — o curso está aberto o tempo todo. Cada parte é atualizada uma ou duas vezes por ano. As atualizações são em princípio pequenas: as versões da biblioteca são atualizadas e a clareza do texto é melhorada. No entanto, também pode haver algumas mudanças maiores.

Apesar das mudanças, todos os exercícios enviados permanecem válidos, e o curso pode ser continuado sem se preocupar com as atualizações. A política para obter certificados, créditos universitários etc, também permanecerá a mesma, não importa o que aconteça.

Principais mudanças recentes:

  • Parte 2 (18 de janeiro de 2023): A ordem dos exercícios foi alterada: os exercícios 2.11 a 2.13 foram movidos para o final da parte;
  • Parte 6 (30 de janeiro de 2023): A seção sobre Redux connect foi substituída por uma nova seção sobre React Query, useReducer e React context;
  • Parte 8 (5 de fevereiro de 2023): O back-end atualizado para usar o Apollo Server 4.0; e
  • Parte 9 (12 de fevereiro de 2023): Conteúdo elucidado: a estrutura da aplicação de exemplo do Patientor foi refatorada em um formato muito mais simples.

Aproveitamento de um curso concluído anteriormente

Se você já fez um curso como MOOC ou outro curso universitário, você pode reaproveitar seu curso.

Aproveitamento no curso Full Stack aberto

Basta continuar de onde parou! Se deseja reenviar uma parte inteira, entre em contato com o pessoal do curso via email ou no Discord mluukkai, com seu nome de usuário do GitHub e quais partes você gostaria ter excluído de seus envios.

Aproveitamento dos créditos deste curso da Universidade de Helsinque

Isso também é possível, basta entrar em contato com o pessoal do curso via email ou no Discord mluukkai.

Projeto Full Stack

Um projeto full stack no valor de 5, 7 ou 10 créditos estará disponível na Universidade Aberta.

O objetivo do projeto é implementar uma aplicação em React e/ou Node, embora também seja possível implementar um aplicação móvel em React Native.

O número de créditos é baseado nas horas de trabalho realizadas. Um crédito equivale a aproximadamente 17,5 horas de trabalho. O trabalho é classificado como aprovado/reprovado.

É possível concluir o projeto em dupla ou em grupo.

Veja mais informações sobre o projeto.

Promessa de entrevista

Nossos parceiros Houston Inc., Terveystalo e Smartly.io, prometeram uma entrevista de emprego para todos que concluírem o curso e o trabalho do projeto com o máximo de créditos (14 + 10).

Isso significa que o aluno pode, se assim desejar, inscrever-se para uma entrevista de emprego com um colaborador que tenha feito a promessa. O professor do curso, Matti Luukkainen, enviará instruções ao aluno após a conclusão dos cursos com o máximo de créditos.

Você precisa residir na Finlândia para participar dessas entrevistas.

Antes que você comece

O uso do navegador Chrome é recomendado para este curso porque fornece as melhores ferramentas para desenvolvimento web. Outra alternativa é o Firefox Developer Edition, que oferece a mesma variedade de recursos.

Os exercícios do curso são submetidos ao GitHub, portanto o Git deve estar instalado e você deve saber como utilizá-lo. Para mais instruções, consulte o Tutorial do Git e do GitHub para iniciantes.

Instale um editor de texto adequado que suporte desenvolvimento web. O editor Visual Studio Code é altamente recomendado.

Não programe com nano, bloco de notas ou Gedit. O NetBeans também não é muito bom para desenvolvimento web. Também é bastante pesado em comparação com o Visual Studio Code.

Além disso, instale o Node.js. O material foi feito utilizando a versão 16.13.2, portanto não instale nenhuma versão anterior a essa. Consulte as instruções de instalação do Node.js.

O gerenciador de pacotes do Node npm será instalado automaticamente com o Node.js. Usaremos ativamente o npm ao longo do curso. O Node também vem com npx, o qual utilizaremos algumas vezes.

Erros de digitação no material

Se você encontrar algum erro de digitação no material, ou algo que foi expresso de forma pouco clara, ou com erros gramaticais, solicite um pull request no material do curso no repositório. Por exemplo, o código-fonte markdown desta página pode ser encontrado no repositório em https://github.com/fullstack-hy2020/fullstack-hy2020.github.io/edit/source/src/content/0/ptbr/part0a.md.

No canto inferior de cada parte deste material, há um link para propor alterações no material. Você pode editar o código-fonte da página clicando no link.

Há também muitos links para vários tipos de material de apoio. Se você perceber que um link está quebrado (isso acontece com muita frequência...), proponha uma alteração ou fale conosco no Discord, se não encontrar um link substituto para o link quebrado.