{"id":29269697,"url":"https://github.com/raphaelamonteiro/gestaocursosalunos","last_synced_at":"2025-07-04T21:08:28.864Z","repository":{"id":300516415,"uuid":"1006272915","full_name":"raphaelamonteiro/GestaoCursosAlunos","owner":"raphaelamonteiro","description":"m sistema em Java com interface gráfica e persistência dos dados em MySQL e também em arquivo texto, utilizando programação orientada a objetos.","archived":false,"fork":false,"pushed_at":"2025-06-22T05:45:07.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T06:29:51.027Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphaelamonteiro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T22:06:03.000Z","updated_at":"2025-06-22T05:45:10.000Z","dependencies_parsed_at":"2025-06-22T06:40:07.123Z","dependency_job_id":null,"html_url":"https://github.com/raphaelamonteiro/GestaoCursosAlunos","commit_stats":null,"previous_names":["raphaelamonteiro/gestaocursosalunos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raphaelamonteiro/GestaoCursosAlunos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelamonteiro%2FGestaoCursosAlunos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelamonteiro%2FGestaoCursosAlunos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelamonteiro%2FGestaoCursosAlunos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelamonteiro%2FGestaoCursosAlunos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphaelamonteiro","download_url":"https://codeload.github.com/raphaelamonteiro/GestaoCursosAlunos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelamonteiro%2FGestaoCursosAlunos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263619806,"owners_count":23489563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-04T21:08:27.981Z","updated_at":"2025-07-04T21:08:28.855Z","avatar_url":"https://github.com/raphaelamonteiro.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sistema de Gestão de Cursos e Alunos\n\n## 📋 Descrição\nEste projeto é um sistema de gestão acadêmica que permite o cadastro e gerenciamento de cursos e alunos, com persistência em banco de dados MySQL e arquivos de texto. Desenvolvido com Java e JavaFX.\n\n---\n\n## 🎯 Funcionalidades\n\n### Curso\n- Cadastrar, editar, excluir, desabilitar e reabilitar cursos.\n- Listar todos os cursos (ativos e inativos).\n- Limitar o número de alunos por curso.\n- Listar alunos matriculados em um curso.\n\n### Aluno\n- Cadastrar, editar, excluir, desabilitar e reabilitar alunos.\n- Associar cada aluno a apenas um curso.\n- Validar CPF, nome, email e idade mínima (16 anos).\n\n### Relatórios\n- Exportar alunos ativos por curso (arquivo texto).\n- Exportar alunos inativos por curso.\n\n\n\n## 💾 Persistência de Dados\n- Banco de dados MySQL (via JDBC).\n- Exportação de relatórios em arquivos `.txt`.\n\n---\n\n## 📁 Estrutura de Pacotes\n\n```\n\nsrc/\n├── factory/    → Conexão com banco\n├── modelo/     → Classes Aluno e Curso\n├── dao/        → Classes DAO (CRUD)\n├── gui/        → Interface gráfica JavaFX\n├── util/       → Validações, manipuladores\n\n````\n\n\n## 🛠️ Tecnologias Utilizadas\n\n- Java 17+\n- JavaFX\n- MySQL\n- JDBC\n- Maven (opcional)\n- CSS (para estilização)\n\n---\n\n## ⚙️ Como Executar\n\n### Pré-requisitos\n- Java JDK 17 ou superior\n- MySQL Server\n- IDE (Eclipse, IntelliJ, NetBeans)\n\n### Passos\n\n1. Clone o projeto:\n   ```bash\n   git clone https://github.com/seuusuario/SistemaGestaoCursosAlunos.git\n````\n\n2. Execute o script SQL:\n\n   * Local: `database/script.sql`\n   * Cria tabelas `curso` e `aluno`.\n\n3. Configure a conexão com MySQL:\n\n   * Arquivo: `factory/ConnectionFactory.java`\n   * Adapte `URL`, `usuário` e `senha`.\n\n4. Compile e execute:\n\n   * Rode a classe `MenuPrincipal.java` (JavaFX)\n\n---\n\n## 📄 Scripts SQL\n\n```sql\nCREATE DATABASE gestao_academica;\n\nUSE gestao_academica;\n\nCREATE TABLE curso (\n  id INT PRIMARY KEY AUTO_INCREMENT,\n  nome VARCHAR(100) NOT NULL,\n  cargaHoraria INT NOT NULL,\n  limiteAlunos INT NOT NULL,\n  ativo BOOLEAN DEFAULT TRUE\n);\n\nCREATE TABLE aluno (\n  id INT PRIMARY KEY AUTO_INCREMENT,\n  cpf VARCHAR(11) NOT NULL UNIQUE,\n  nome VARCHAR(100) NOT NULL,\n  email VARCHAR(100) NOT NULL,\n  dataNascimento DATE NOT NULL,\n  idCurso INT,\n  ativo BOOLEAN DEFAULT TRUE,\n  FOREIGN KEY (idCurso) REFERENCES curso(id) ON DELETE CASCADE\n);\n```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelamonteiro%2Fgestaocursosalunos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphaelamonteiro%2Fgestaocursosalunos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelamonteiro%2Fgestaocursosalunos/lists"}