Ir para o conteúdo

EduConnect — Sistema de Gestão Educacional

Java JDK OOP Status

Repositório


Visão Geral

Sistema de Gestão Educacional completo em Java demonstrando arquitetura em 3 camadas, princípios SOLID e todos os pilares da Programação Orientada a Objetos.

Contexto

Projeto desenvolvido para a disciplina de Imersão Profissional — Aplicando Orientação a Objetos (Unicesumar), com foco em arquitetura profissional em Java.


Arquitetura em 3 Camadas

┌─────────────────────────────────────────────────┐
│         CAMADA UI (Apresentação)                │
│    Menu.java - Interface com Usuário            │
└──────────────┬──────────────────────────────────┘
               │
┌──────────────▼──────────────────────────────────┐
│       CAMADA SERVICE (Lógica de Negócio)        │
│  AlunoService · ProfessorService · CursoService │
│  TurmaService · SistemaService                  │
└──────────────┬──────────────────────────────────┘
               │
┌──────────────▼──────────────────────────────────┐
│   CAMADA REPOSITORY (Persistência/Dados)        │
│  AlunoRepository · ProfessorRepository          │
│  CursoRepository · TurmaRepository              │
└─────────────────────────────────────────────────┘

Funcionalidades

  • Cadastro e busca de alunos e professores
  • Cursos presenciais e EAD
  • Criação e gerenciamento de turmas
  • Registro e validação de avaliações (0–10)
  • Cálculo automático de médias e situação acadêmica
  • Relatório por aluno, professor, curso ou turma
  • Relatório completo do sistema com estatísticas
  • Dados pré-carregados para demonstração
  • Três perfis: Aluno, Professor, Administrador
  • Controle de permissões por nível de acesso
  • Validação de login/senha

Conceitos OOP Aplicados

// Encapsulamento — atributo privado com acesso controlado
private double nota;

public boolean atribuirNota(double valor) {
    if (valor >= 0 && valor <= 10) {
        this.nota = valor;
        return true;
    }
    return false;
}
// Herança
public class CursoPresencial extends Curso { ... }
public class Aluno extends Usuario { ... }

// Interface
public interface Autenticavel {
    boolean autenticar(String login, String senha);
}

// Classe abstrata
public abstract class Usuario implements Autenticavel, Relatorio {
    public abstract String obterPerfil();
    public abstract void gerarRelatorio();
}

Estatísticas do Projeto

Métrica Valor
Total de classes 24
Linhas de código ~3.500+
Interfaces implementadas 2
Classes abstratas 1
Métodos implementados 150+

Evoluções Futuras

  • [ ] Integração com banco de dados (PostgreSQL)
  • [ ] API REST para integração com outros sistemas
  • [ ] Autenticação JWT
  • [ ] Interface gráfica (JavaFX)
  • [ ] Relatórios em PDF