Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📅 Java Event Planner

Aplicação desktop para gerenciamento de eventos com calendário interativo.


💡 Sobre o Projeto

O Java Event Planner é uma aplicação desktop completa para gerenciamento de eventos em um calendário mensal interativo. Desenvolvido em Java com Swing, o projeto aplica o padrão MVC (Model-View-Controller) para separação de responsabilidades, além de conceitos de herança, polimorfismo e persistência de dados.

🎯 Principais Características

  • POO & Polimorfismo: Modelagem orientada a objetos com classes especializadas de eventos (MeetingEvent, BirthdayEvent, AppointmentEvent), enums e composição.
  • Padrão MVC: Separação clara entre modelos de dados, controladores, serviços de negócio e visão.
  • Persistência Customizada: Leitura e escrita estruturada em arquivo local para persistência de dados.
  • Interface Desktop Completa: Interface gráfica construída em Java Swing com calendário interativo, diálogos modais e formulários.

⚙️ Arquitetura

O projeto segue o padrão MVC com uma camada de serviço adicional:

flowchart TB
    subgraph View
        A[EventPlannerApp] --> B[CalendarPanel]
        A --> C[EventListPanel]
        A --> D[EventDialog]
    end
    subgraph Controller
        E[EventManager]
    end
    subgraph Service
        F[EventService]
    end
    subgraph Model
        G[Event]
        G --> H[MeetingEvent]
        G --> I[BirthdayEvent]
        G --> J[AppointmentEvent]
        K[Attendee]
        L[Category]
        M[Recurrence]
    end
    subgraph Util
        N[EventStorage]
    end

    A <--> E
    E <--> F
    F <--> N
    F <--> G
    N <-->|data/events.txt| O[(Arquivo)]
Loading
Camada Responsabilidade
model/ Classes de domínio — Event, Attendee, Category, Recurrence
view/ Componentes Swing — calendário, diálogos, painéis
controller/ Comunicação entre View e Service
service/ Regras de negócio e operações CRUD
util/ Leitura e gravação do arquivo de dados

🚀 Funcionalidades

Funcionalidade Descrição
📆 Calendário interativo Navegação mensal com indicação visual de eventos
➕ CRUD de eventos Criar, editar, excluir e visualizar eventos
🏷️ Categorias Meeting, Birthday, Appointment — cada uma com cor distinta
🎨 Cores por categoria Identificação visual rápida no calendário
👥 Participantes Nome e e-mail dos convidados
🔔 Lembretes Alertas pré-definidos para eventos
🔁 Recorrência None, Daily, Weekly, Monthly
💾 Persistência Dados salvos em data/events.txt

🏗️ Estrutura do Projeto

JavaEventPlanner/
├── src/eventplanner/
│   ├── controller/
│   │   └── EventManager.java          # Controlador principal
│   ├── model/
│   │   ├── Event.java                 # Classe base (herança)
│   │   ├── MeetingEvent.java          # Reuniões
│   │   ├── BirthdayEvent.java         # Aniversários
│   │   ├── AppointmentEvent.java      # Compromissos
│   │   ├── Attendee.java              # Participantes
│   │   ├── Category.java              # Enum de categorias
│   │   └── Recurrence.java            # Enum de recorrência
│   ├── service/
│   │   └── EventService.java          # Regras de negócio
│   ├── util/
│   │   └── EventStorage.java          # Persistência em arquivo
│   └── view/
│       ├── EventPlannerApp.java        # Janela principal
│       ├── CalendarPanel.java          # Componente do calendário
│       ├── EventDialog.java           # Formulário de evento
│       └── EventListPanel.java         # Lista lateral de eventos
├── data/
│   └── events.txt                      # Dados persistidos
├── sources.txt
└── README.md

🛠️ Como Executar

Pré-requisito: Java JDK 17 ou superior.

# 1. Clone o repositório
git clone https://github.com/Pedrosasouza/JavaEventPlanner.git
cd JavaEventPlanner

# 2. Compile
javac -d out '@sources.txt'

# 3. Execute
java -cp out eventplanner.view.EventPlannerApp

📖 Como Usar

  1. Selecione uma data no calendário
  2. Clique em Add para criar um evento
  3. Preencha título, data, hora, local, categoria e descrição
  4. Adicione participantes e configure recorrência (opcional)
  5. Clique em Save para salvar
  6. Selecione um evento na lista lateral para ver detalhes
  7. Use Edit ou Delete para gerenciar

📚 Aprendizados

  • Aplicação prática de herança e polimorfismo em Java
  • Implementação do padrão MVC com separação de responsabilidades
  • Desenvolvimento de interfaces gráficas com Java Swing
  • Persistência de dados com manipulação de arquivos (I/O)
  • Uso de Enums para modelar categorias e recorrências

📝 Licença

Este projeto é de uso acadêmico e pessoal.


Desenvolvido por Pedro Santos Souza · USP São Carlos

About

📅 Sistema de planejamento de eventos em Java Swing — Padrão MVC com POO

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages