Projeto Final
Objetivo
Desenvolver uma aplicação web completa que inclua tanto o frontend quando o backend. O backend será desenvolvido utilizando Node.js e Express para criar uma API REST, enquanto o frontend será construído em Vue.js.
A temática do projeto deve possuir viés de extensão. Se você precisa de inspiração confira a página HubEx, que contém ideias de projetos de extensão.
O trabalho pode ser feito em equipe
Requisitos mínimos
Frontend
- O frontend deve ser uma SPA – Single Page Application e sua página principal deve exibida automaticamente ao acessar a raiz da aplicação (/).
- O frontend da aplicação web deve ser implementado utilizando a Composition API do Vue com Vite.
Não serão aceitos trabalhos implementados usando Option API. Para mais detalhes leia este artigo.
- O frontend da aplicação web deve ser implementado fazendo OBRIGATORIAMENTE uso das bibiliotecas VueRouter e Pinia.
- As rotas do frontend não podem ser todas públicas.
Não serão aceitos trabalhos implementados usando VUEX.
- O fronted deve ser modularizar os trechos de HTML usados em várias páginas.
- Exemplo: Deixar cabeçalho e rodapé em arquivos separados e incluí-los nas páginas onde serão necessários.
Backend
- O backend (API REST) com o qual a sua aplicação deve se comunicar deve ser construído utilizando o Express.
- O backend deverá ter pelos um endpoint com paginação
- O backend deverá ter pelos um endpoint com opção de filtragem
- O backend deve forncener um serivço de autenticação e autorização via JWT.
- Os dados da aplição devem ser armezandos em um banco de dados SQLITE.
Conjunto da obra
- A sua aplicação deve possuir pelo menos x entidades (tabelas), onde :
- A aplicação deve implementar os CRUDs de pelo menos DUAS dessas tabelas.
- Uma das entidades deve ser dependende da outra, os CRUDs não podem ser totalmente independentes
- Para trabalhos em equipe com mais de dois membros, as regras de negócio serão avaliada para verificar a elegibilidade do projeto.
- A aplicação deve possuir pelo menos 3 papéis de usuários de forma que todos os papéis possuam permissões diferentes.
- A aplicação deve possuir uma área pública com páginas/serviços acessíveis a todos; e uma área restrita com páginas/serviços acessíveis somente a usuários autenticados.
- A página de login e cadastro de usuários não é considerada uma área pública nessa contexto.
Atenção
O código do projeto que vai ser desenvolvido deve ser hospedado no GitHub.
Caso o trabalho seja feito em equipe, cada membro da equipe deve usar seu próprio usuário para escrever código.
Não serão aceitos trabalhos implementados em um único commit.
TODOS os membros da equipe devem se envolver em atividades que incluem a ESCRITA de código HTML, CSS e principalmente JavaScript ou TypeScript.
Critérios de avaliação
- Implementação correta e completa dos requisitos funcionais definidos
- Utlização adequada dos conceitos e tecnologias discutidos ao longo do curso
- Boas práticas de desenvolvimento, incluindo organização do código, padrões de nomenclatura, e legibilidade
- Funcionalidade e desempenho da aplicação
- Qualidade da apresentação do trabalho
Entregas
Em construção
Apresentação do trabalho
O trabalho também deverá necessariamente ser apresentado conforme cronograma da disciplina. A não apresentação do trabalho pelo aluno em sua anulação.