Skip to content

NunoVilhenaSantos/SchoolProject

Repository files navigation

SchoolProject

No âmbito das unidades de formação Programação Web – Server side – e Client side, propõem- se a conceção de uma aplicação web asp.net de um sistema de informação para uma Escola.

A referida aplicação deverá fazer uso de:

  • ASP.NET Core com arquitetura MVC (Model-View-Controller) com autenticação;

  • Padrão repository;

  • Entity Framework Core para a criação e toda a gestão da base de dados em SQL Server;

  • Repositório no github.

Funcionalidades gerais

  • Implementação de todos os CRUD’s;

  • Sistema completo de autenticação (login/logout, registo de novos utilizadores, recuperação de password por email, etc);

  • Criação de Roles com um mínimo de 4 tipos de utilizadores (administrador de toda a plataforma, funcionário, aluno e utilizador anónimo);

  • Utilização de pelo menos dois controlos de terceiros que não se deverão repetir entre formandos (syncfusion por exemplo);

  • A aplicação deverá estar funcional e online quando for testada e apresentada;

  • A aplicação não pode em caso algum rebentar nem mostrar os ecrãs de erros de desenvolvimento, devendo criar todas as views para a gestão de erros e conflitos dos crud’s.

  • Sistema de front-end original e adaptado ao projeto.

Funcionalidades especificas

  • Implementação de um módulo de Alunos onde serão inseridos e manipulados todos os seus dados.

  • Implementação de um módulo de Turmas e suas disciplinas.

  • Implementação de um módulo de Notas.

  • Implementação do módulo de Consultas de alunos, turmas e notas.

  • Administrador do sistema apenas gere os restantes utilizadores, criando-lhes as contas para estes posteriormente poderem entrar na plataforma. Irá também disponibilizar os cursos e disciplinas.

Atenção que no processo de criação da conta, qualquer utilizador criado no ponto anterior, irá receber primeiro um email onde deverá alterar a sua password.

Deverá também haver um utilizador funcionário, que irá criar o curso e escolher as respetivas disciplinas disponíveis. Este tipo de utilizador irá também ser responsável pela inserção dos alunos e de todas as notas.

Finalmente irão existir os alunos, que além de poderem alterar o seu perfil irão poder consultar as suas notas e o seu estado (aprovado/reprovado) numa determinada disciplina.

Os utilizadores anónimos apenas podem consultar os cursos, turmas disponíveis, bem como as disciplinas que as compõem.

Matriz de funcionalidades

Funcionalidade Admin Funcionário Aluno Anónimo
Login X X X
Criar contas e adicionar outros utilizadores X
CRUD de cursos X
CRUD de disciplinas / ufcd’s X X
CRUD de alunos e notas X
Modificar perfil X X X
Recuperar password X X X
Consultar notas X
Consultar as suas notas X
Visualizar cursos e disciplinas disponíveis X

Outros aspetos relevantes

  • Todo o utilizador com exceção dos anónimos deverá ser dado a possibilidade de ter foto de perfil.

  • Para os alunos essa foto é obrigatória e é diferenciada da foto de perfil que também poderão ter.

  • O administrador quando se autentica deverá ser logo direcionado para um dashboard onde deverão aparecer os alertas lançados pelos funcionários relatando possíveis problemas da plataforma, como por exemplo, faltar algum curso ou disciplina necessária para este.

  • Todos os alunos terão também um campo de faltas por disciplina que mediante configuração de uma percentagem pelo administrador, permite obter o estado de excluído por faltas, a essa mesma disciplina.

  • Deverá haver o respeito por não apagar e atualizar em cascata, sendo necessária a comunicação entre os diversos utilizadores.

  • Deverá também ser criada e publicada uma web API que envie todos os alunos de uma turma pedida.

Avaliação

  • Aplicação de todas as funcionalidades mínimas descritas anteriormente – 15 valores

  • Commits semanais (todas as segundas-feiras, em período de formação, a partir do dia 19/06) – 2 valores

  • Funcionalidades extra – 3 valores

  • Será descontado 1 valor por cada dia depois do prazo de entrega.

Calendarização

  • Limite de entrega – 15/09/2023
  • Apresentação será agendada posteriormente.