Skip to content

Aplicação de Quiosque interativo em C# desenvolvido profissionalmente.

License

Notifications You must be signed in to change notification settings

Tiago-Daniel-Guerreiro/AppDeQuiosque

Repository files navigation

Aplicação de Quiosque

Language .NET Framework Status

Esta é uma aplicação de quiosque interativo desenvolvida como projeto final da Formação em Contexto de Trabalho (FCT) na NOVA School of Law. O seu principal objetivo é fornecer um ponto de suporte autónomo para alunos, professores e funcionários, reduzindo a carga de trabalho da equipa de TI ao responder a perguntas frequentes.

O grande diferencial do projeto é a sua arquitetura flexível e configurável, permitindo que toda a aparência, layout e funcionalidades da aplicação sejam geridas dinamicamente através de ficheiros JSON, sem necessidade de qualquer alteração no código-fonte.

🚀 Tecnologias Utilizadas

  • Linguagem e Framework: C# e Windows Forms (.NET Framework)
  • IDE: Visual Studio 2019
  • Formato de Configuração: Ficheiros JSON
  • Controlo de Versões: Git e GitHub

🎯 Objetivo Principal

O objetivo era desenvolver uma aplicação de suporte que pudesse ser facilmente gerida pela equipa de TI da instituição, sem depender de um programador para fazer alterações. Os objetivos-chave foram:

  • Flexibilidade Máxima: Criar um menu cujos botões, textos, ações e layout fossem totalmente definidos por um ficheiro de configuração externo.
  • Autonomia para o Gestor: Permitir que a equipa de TI pudesse adicionar, remover ou modificar conteúdos (links, PDFs, guias passo a passo) através de uma interface de configurações gráfica e intuitiva.
  • Personalização Visual: Permitir a criação de múltiplos perfis e temas visuais (cores, fontes, transparência, imagens de fundo) para adaptar a aplicação a diferentes contextos ou necessidades de branding.

❓ O Problema

A Divisão de Informática e Comunicações de uma instituição de ensino recebe um volume elevado de pedidos de suporte repetitivos, como configuração de redes Wi-Fi, recuperação de passwords ou acesso a plataformas. Esta situação consome um tempo valioso da equipa técnica, que poderia ser alocado a tarefas mais complexas. Era necessária uma solução que automatizasse o acesso a estas informações de forma centralizada, disponível em um quiosque físico.

✔️ A Solução

A solução foi uma aplicação para Windows totalmente orientada a configurações, onde a lógica e a apresentação são separadas de forma clara:

  • Arquitetura Baseada em Perfis JSON: Toda a estrutura da aplicação – desde o número de botões no menu, as suas ações (PDF, LINK, FORMS), os seus estilos visuais, até aos textos e imagens dos guias passo a passo – é lida de um ficheiro JSON. Isto permite criar múltiplos perfis com comportamentos e aparências completamente distintas.
  • Janela de Configurações Avançada (Protótipo): Para permitir a gestão por utilizadores não-técnicos, foi desenhada prototipada uma janela de gestão avançada. A interface utiliza uma TreeView que espelha a estrutura do objeto de configuração, e para cada propriedade, apresenta o seu valor atual e uma descrição. Embora o conceito esteja funcional e demonstre a viabilidade da edição visual, a implementação não está completa, com algumas funcionalidades de edição ainda por desenvolver.
  • Sistema de Personalização Visual Dinâmico: A aplicação foi projetada para suportar múltiplos temas visuais, com o objetivo de aplicar todas as configurações em tempo real. Muitos aspetos, como imagens de fundo e a opacidade das janelas, já funcionam dinamicamente. No entanto, devido a limitações de tempo e à complexidade da gestão de estado dos controlos em Windows Forms, existem algumas inconsistências conhecidas: certas configurações visuais (como a aplicação de cores ou fontes em controlos específicos) podem não ser refletidas corretamente após uma alteração.
  • Biblioteca Auxiliar (BibliotecaAuxiliarForms): Para promover a reutilização de código e a separação de responsabilidades, foi desenvolvida uma biblioteca de classes que encapsula funcionalidades transversais.
  • Funcionalidades de Usabilidade: Foram adicionados um ícone na barra de sistema (TrayIcon) e botões flutuantes para controlar a aplicação.

👤 O Meu Papel

Como projeto de FCT, fui responsável pelo ciclo de vida completo do desenvolvimento desta aplicação, desde a conceção inicial e planeamento até à implementação, testes e documentação. As minhas principais tarefas incluíram:

  • Desenhar a arquitetura de software, com foco na modularidade e na separação entre a lógica e a configuração.
  • Implementar todas as funcionalidades principais: o menu dinâmico, o sistema de perfis em JSON, a janela de configurações e a biblioteca auxiliar.
  • Colaborar com o meu tutor e colegas para recolher feedback e integrar novas ideias e requisitos ao longo do projeto.

⚙️ Principais Desafios

  • Criar a Janela de Configurações: Mapear uma estrutura de objeto complexa (classes aninhadas, listas, dicionários) para uma TreeView interativa e garantir que a edição de cada propriedade fosse segura e intuitiva foi o maior desafio técnico do projeto.
  • Evolução da Arquitetura: A decisão de migrar o armazenamento de ficheiros .txt simples para uma estrutura JSON completa no início do projeto foi crucial, mas exigiu uma refatoração significativa para garantir a escalabilidade.
  • Gestão de Tempo e Prioridades: Equilibrar o desenvolvimento de novas funcionalidades com a necessidade de refatorar e organizar o código existente foi um desafio constante, ensinando-me a importância do planeamento e da gestão de expectativas.

✅ Resultados

  • Solução de Alta Flexibilidade: A capacidade de alterar toda a aplicação através de um ficheiro de configuração é o maior sucesso do projeto, garantindo a sua longevidade e utilidade para a equipa de TI.
  • Crescimento Técnico e Pessoal: O projeto permitiu-me aprofundar drasticamente os meus conhecimentos em C#, .NET, padrões de design de software e boas práticas de desenvolvimento, ao mesmo tempo que desenvolvi competências de comunicação, responsabilidade e adaptação em ambiente profissional.

🔮 Próximos Passos

Algumas das possíveis evoluções futuras para o projeto são:

  • Finalizar a Janela de Configurações: Concluir a implementação de todas as funcionalidades de edição na interface de gestão, tornando-a totalmente funcional e robusta para utilizadores não-técnicos.
  • Robustecer o Sistema de Personalização Visual: Garantir que todas as configurações de tema (cores, fontes, etc.) sejam aplicadas de forma consistente e em tempo real em todos os controlos da aplicação, resolvendo as inconsistências conhecidas.
  • Suporte a Múltiplos Idiomas: Integrar um sistema de internacionalização para que os textos da interface e dos conteúdos possam ser traduzidos.
  • Formulário de Pedidos: Adicionar uma funcionalidade para que os utilizadores possam submeter pedidos de suporte diretamente através da aplicação, com envio de e-mail automático para a equipa de TI.
  • Instalador: Criar um pacote de instalação (ex: usando WiX Toolset ou Inno Setup) para facilitar a distribuição e implementação da aplicação nos quiosques.
  • Testes Automatizados: Implementar testes unitários para validar a lógica da biblioteca auxiliar e do sistema de configurações.

About

Aplicação de Quiosque interativo em C# desenvolvido profissionalmente.

Topics

Resources

License

Stars

Watchers

Forks

Languages