\section{Introdução}
O objetivo deste projeto é desenhar e implementar um aplicação web que consiga gerir cursos, as respetivas cadeiras, os alunos inscritos e toda a informação necessária para que ambos alunos e professores consigam gerir a informação relacionada com o contexto em que se encontram. Para desenvolver a aplicação é necessário estabelecer alguns parâmetros primeiro. Cada curso é descrito pelo seu número total de ECTS, número de anos que demora a ser realizado e um conjunto de cadeiras. Cada cadeira tem um identificador único, um nome, uma descrição e um conjunto de professores. Para além disso, uma cadeira pode ter várias edições, cada edição corresponde a um semestre e a um ano letivo, e diferentes professores em cada edição da cadeira.
Um estudante é identificado por um número e tem ainda um conjunto de atributos, como por exemplo, e-mail pessoal, e-mail da faculdade, morada, fotografia, as edições em que se encontra inscrito e as edições concluídas. Cada estudante deve, numa determinada cadeira em que se encontre inscrito, ter notas associadas a avaliações (testes, exames e projetos). Os Professores são identificados por nome de utilizador, e tem um conjunto de atributos, como o email pessoal e uma fotografia, e podem estar associados a várias cadeiras desempenhando diferentes funções: professor ou assistente. 
\newline

Em relação a funcionalidades necessárias para os professores temos:

\begin{itemize}
	\item Apresentar toda a informação pessoal do mesmo, assim como possibilitar a alteração de alguns parâmetros.
	\item Apresentar as edições em que está associado.
	\item Para uma dada edição deve ser possível ver todas as atividades agendadas, como testes, exames, aulas práticas, assim como possibilitar a alteração, adição e remoção das mesmas.
	\item Para uma dada edição deve ainda ser possível adicionar e remover alunos, assim como atribuir notas aos mesmos (caso seja professor e não assistente dessa edição).
	\item Para uma dada edição deve ser possível adicionar novos professores (caso seja professor e não assistente dessa edição)
\end{itemize}

Para estudantes são necessárias as seguintes funcionalidades:

\begin{itemize}
	\item Apresentar toda a informação pessoal do mesmo, assim como possibilitar a alteração de alguns parâmetros.
	\item Apresentar notificações e futuros eventos.
	\item Apresentar as edições em que se encontra inscrito e as que já concluiu, assim como os ECTS dessa cadeira e a nota final.
	\item Para edições que já tenha concluído deve ser possível visualizar as notas que o aluno teve em testes, exames e trabalhos.
\end{itemize}