{"id":28764890,"url":"https://github.com/0nf1rey/serenitas-system","last_synced_at":"2026-05-02T05:32:00.215Z","repository":{"id":299352193,"uuid":"1001834972","full_name":"0nF1REy/serenitas-system","owner":"0nF1REy","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-16T04:15:43.000Z","size":883,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-16T05:26:22.001Z","etag":null,"topics":["apache-ant","css","html","java","jsp","tomcat"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0nF1REy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-14T06:04:58.000Z","updated_at":"2025-06-16T04:15:46.000Z","dependencies_parsed_at":"2025-06-16T05:26:55.277Z","dependency_job_id":"c69dc7d0-b2c4-4c24-b1d9-47463edf1a88","html_url":"https://github.com/0nF1REy/serenitas-system","commit_stats":null,"previous_names":["0nf1rey/serenitas-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0nF1REy/serenitas-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0nF1REy%2Fserenitas-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0nF1REy%2Fserenitas-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0nF1REy%2Fserenitas-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0nF1REy%2Fserenitas-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0nF1REy","download_url":"https://codeload.github.com/0nF1REy/serenitas-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0nF1REy%2Fserenitas-system/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260336372,"owners_count":22993742,"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":["apache-ant","css","html","java","jsp","tomcat"],"created_at":"2025-06-17T10:12:34.573Z","updated_at":"2026-05-02T05:32:00.208Z","avatar_url":"https://github.com/0nF1REy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/0nF1REy/serenitas-system\" target=\"_blank\"\u003e\n    \u003cimg src=\"./readme_images/serenitas-system-logo.png\" width=\"200\" alt=\"Serenitas System Logo\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  ![Maintained](https://img.shields.io/maintenance/yes/2025?style=for-the-badge)\n  ![License MIT](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)\n  ![Status](https://img.shields.io/badge/status-Conclu%C3%ADdo-brightgreen?style=for-the-badge)\n\n\u003cbr /\u003e\n\n  ![Java 8 ou superior](https://img.shields.io/badge/Java-8%2B-blue?style=for-the-badge\u0026logo=openjdk)\n  ![Build com Apache Ant](https://img.shields.io/badge/Build-Apache%20Ant-red?style=for-the-badge\u0026logo=apacheant)\n  ![Plataforma Web](https://img.shields.io/badge/Plataforma-Web-lightgrey?style=for-the-badge\u0026logo=html5)\n  ![Database MySQL](https://img.shields.io/badge/Database-MySQL-orange?style=for-the-badge\u0026logo=mysql)\n  ![Servidor Tomcat](https://img.shields.io/badge/Servidor-Tomcat-yellow?style=for-the-badge\u0026logo=apachetomcat)\n  ![Contribuições bem-vindas](https://img.shields.io/badge/Contribui%C3%A7%C3%B5es-Welcome-brightgreen?style=for-the-badge\u0026logo=github)\n\n\u003c/div\u003e\n\n## 🧭 Guia de Navegação (Índice)\n\n- **[📖 Descrição](#descricao)** \n- **[🎯 Propósito do Projeto](#proposito)** \n- **[✨ Funcionalidades e Abordagem Técnica](#funcionalidades)** \n- **[💻 Tecnologias Utilizadas](#tecnologias)** \n- **[📸 Capturas de Tela](#capturas)** \n- **[🔧 Pré-requisitos](#requisitos)** \n- **[⚙️ Execução](#execucao)** \n- **[🌐 Acesso](#acesso)** \n- **[📁 Estrutura](#estrutura)**\n- **[👤 Desenvolvedor](#desenvolvedor)**\n- **[📫 Contribuir](#contribuicao)** \n- **[📜 Licença](#licenca)**\n\n\u003ch1 align=\"center\"\u003e\n  Serenitas System\n\u003c/h1\u003e\n\n## 📖 Descrição \u003ca name=\"descricao\"\u003e\u003c/a\u003e\n\nO Serenitas System é um sistema web para gerenciamento de produtos e controle de estoque. Ele oferece funcionalidades essenciais como operações CRUD (Criar, Ler, Atualizar, Excluir) e importação em massa de dados via arquivos CSV. A aplicação foi desenvolvida com um stack clássico de Java para Web, utilizando JSP (JavaServer Pages) para processar a lógica de negócio e renderizar as views, com persistência de dados em MySQL via JDBC.\n\n## 🎯 Propósito do Projeto \u003ca name=\"proposito\"\u003e\u003c/a\u003e\n\nO **Serenitas System** foi criado com um duplo propósito, servindo tanto como uma ferramenta funcional quanto como um recurso de aprendizado.\n\n- **Como Ferramenta:** Prover uma solução web funcional e intuitiva para gerenciamento de produtos, com operações essenciais para controle de estoque.\n\n- **Como Recurso Educacional:** Servir como um exemplo prático de uma aplicação Java Web construída com a arquitetura MVC Modelo 1, onde as páginas JSP concentram tanto a lógica de controle quanto a de apresentação. É um excelente ponto de partida para entender os fundamentos de JSP e JDBC antes de avançar para arquiteturas mais complexas como o MVC Modelo 2.\n\n\u003e 🏛️ **Ideal para Fins Acadêmicos e de Portfólio:** A simplicidade estrutural e a clareza do código tornam o Serenitas System uma ótima base para projetos acadêmicos e para demonstrar competências fundamentais no ecossistema Java Web.\n\n## ✨ Funcionalidades e Abordagem Técnica \u003ca name=\"funcionalidades\"\u003e\u003c/a\u003e\n\nEste projeto implementa funcionalidades de gestão de produtos utilizando uma abordagem direta e focada nas tecnologias essenciais.\n\n- **Operações CRUD Completas:** Implementação de todas as operações de criação, leitura, atualização e exclusão para a gestão de produtos.\n\n- **Importação em Massa:** Funcionalidade para cadastro de múltiplos produtos de uma só vez a partir de arquivos no formato .csv.\n\n- **Arquitetura MVC Modelo 1:** A lógica de controle e a de apresentação são centralizadas nas páginas JSP. Cada JSP é responsável por receber a requisição, processar os dados, interagir com o banco e gerar a resposta HTML.\n\n- **Persistência com JDBC Puro:** A conexão e a manipulação do banco de dados MySQL são feitas diretamente nos JSPs utilizando a API JDBC (Java Database Connectivity) e scriptlets Java (`\u003c% ... %\u003e`).\n\n- **Renderização no Servidor com JSP:** A interface de usuário é construída e renderizada dinamicamente no lado do servidor utilizando JSP.\n\n- **Automação de Build com Apache Ant:** Utilização do Apache Ant para automatizar o processo de compilação, gerenciamento de dependências e empacotamento da aplicação em um arquivo .war.\n\n- **Externalização de Configuração:** As credenciais do banco de dados são mantidas em um arquivo .env externo, separado do código-fonte, para maior segurança e portabilidade.\n\n- **Deploy em Contêiner de Servlets:** O projeto é empacotado como um arquivo WAR (Web Application Archive), pronto para ser implantado em qualquer contêiner de Servlets, como o Apache Tomcat.\n\n## 💻 Tecnologias Utilizadas \u003ca name=\"tecnologias\"\u003e\u003c/a\u003e\n\n| Tecnologia | Descrição |\n|------------|-----------|\n| Java 8+ (via JSP)                     | *Linguagem utilizada dentro dos JSPs (scriptlets) para a lógica de negócio.*|\n| JSP (JavaServer Pages)                       | *Tecnologia central para processar requisições e renderizar as páginas web.* |\n| JDBC (Java Database Conn.)   | *API nativa para conectividade com o banco de dados.* |\n| MySQL                | *Banco de dados relacional para persistência de dados.*|\n| Apache Tomcat                | *Contêiner de Servlets para execução da aplicação web.*|\n| Apache Ant                   | *Ferramenta para automação de build e empacotamento (.war).* |\n\n## 📸 Capturas de Tela \u003ca name=\"capturas\"\u003e\u003c/a\u003e\n\n*   ### *Apresentação:*\n\n\u003cimg src=\"./readme_images/pagina-principal.png\" alt=\"Apresentação\"/\u003e\n\n*   ### *Cadastro de Produtos:*\n\n\u003cimg src=\"./readme_images/cadastro-de-produtos.png\" alt=\"Cadastro de Produtos\"/\u003e\n\n*   ### *Listagem de Produtos:*\n\n\u003cimg src=\"./readme_images/listagem-de-produtos.png\" alt=\"Listagem de Produtos\"/\u003e\n\n*   ### *Consultar Produtos:*\n\n\u003cimg src=\"./readme_images/consultar-produtos.png\" alt=\"Consultar Produtos\"/\u003e\n\n*   ### *Cadastrar via CSV:*\n\n\u003cimg src=\"./readme_images/cadastrar-via-csv.png\" alt=\"Cadastrar via CSV\"/\u003e\n\n## 🚀 Começando\n\nOs seguintes softwares precisam estar instalado em seu sistema antes de você poder executar o Serenitas System:\n\n\u003cdiv align=\"center\"\u003e\n\n## 🔧 Pré-requisitos \u003ca name=\"requisitos\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://git-scm.com/\" target=\"_blank\"\u003e\n  \u003cimg src=\"./readme_images/git-logo.png\" width=\"200\" alt=\"Git Logo\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://ant.apache.org/\" target=\"_blank\"\u003e\n  \u003cimg src=\"./readme_images/apache-ant-logo.png\" width=\"200\" alt=\"Apache Ant Logo\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.oracle.com/java/\" target=\"_blank\"\u003e\n  \u003cimg src=\"./readme_images/java-jdk-logo.png\" width=\"200\" alt=\"Java JDK Logo\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.mysql.com/\" target=\"_blank\"\u003e\n  \u003cimg src=\"./readme_images/mysql-logo.png\" width=\"200\" alt=\"MySQL Logo\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://tomcat.apache.org/\" target=\"_blank\"\u003e\n  \u003cimg src=\"./readme_images/apache-tomcat-logo.png\" width=\"200\" alt=\"Apache Tomcat Logo\" /\u003e\n\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n*   **Git:** Para clonar o repositório. [https://git-scm.com/](https://git-scm.com/)\n*   **Apache Ant:** Para compilar o projeto. [https://ant.apache.org/](https://ant.apache.org/)\n*   **Java JDK:** Kit de Desenvolvimento Java 8 ou superior. [https://www.oracle.com/java/](https://www.oracle.com/java/)\n*   **MySQL:** Servidor MySQL. [https://www.mysql.com/](https://www.mysql.com/)\n*   **Apache Tomcat:** Contêiner de Servlets para executar a aplicação. [https://tomcat.apache.org/](https://tomcat.apache.org/)\n\n---\n\n## ⚙️ Como Executar o Projeto \u003ca name=\"execucao\"\u003e\u003c/a\u003e\n\nPara executar o **Serenitas System** localmente, siga estes passos:\n\n1.  **Clone o repositório:**\n\n    ```bash\n    git clone https://github.com/0nF1REy/serenitas-system.git\n    cd serenitas-system\n    ```\n\n2.  **Importe o banco de dados:** \n\n    ```bash\n    # Exemplo com MySQL:\n    mysql -u root -p \u003c database/serenitas.sql\n    ```\n\n3.  **Configure a conexão com o banco de dados**\n\n    No arquivo de configuração **.env** localizado na pasta **web/**, ajuste as variáveis de ambiente para conectar ao seu banco de dados **MySQL**. Exemplo de conteúdo do arquivo **.env**:\n\n    ```bash\n    # URL de conexão com o banco de dados MySQL\n    DB_URL=jdbc:mysql://localhost:3306/serenitas_db\n\n    # Usuário do banco de dados\n    DB_USER=root\n\n    # Senha do banco de dados\n    DB_PASSWORD=verysecret\n    ```\n\n4.  **Compilar e Empacotar o Projeto:** \n\n    ```bash\n    ant clean dist\n    ```\n\n5.  **Determinar o caminho do webapps:** \n\n    ```bash\n    # Exemplo para Arch Linux:\n    pacman -Ql tomcat10 | grep webapps\n\n    # Exemplo para Debian/Ubuntu:\n    dpkg -L tomcat10 | grep webapps\n\n    # Exemplo para Fedora/CentOS/RHEL/openSUSE e Mageia:\n    rpm -ql tomcat | grep webapps\n\n    # Exemplo para Alpine Linux:\n    apk info -q tomcat* --files | grep webapps\n\n    # Exemplo para Gentoo:\n    equery files tomcat | grep webapps\n\n    # Exemplo para Void Linux:\n    xbps-query -f tomcat | grep webapps\n\n    # Exemplo para Amazon Linux:\n    rpm -ql tomcat | grep webapps\n    ```\n\n6.  **Implantar o WAR no Tomcat:** \n\n    ```bash\n    # Copie serenitas-system.war para o diretório webapps do Tomcat.\n    sudo cp dist/serenitas-system.war /var/lib/tomcat10/webapps/\n    ```    \n\n7.  **Reiniciar e iniciar o Tomcat:** \n\n    ```bash\n    sudo systemctl stop tomcat10\n    sudo systemctl start tomcat10\n    ```\n\n## 🌐 Acesso à Aplicação \u003ca name=\"acesso\"\u003e\u003c/a\u003e\n\nApós a implantação bem-sucedida no **Tomcat**, acesse o **Serenitas System** diretamente pelo seu navegador:\n\n- 🔗 **URL de acesso: ```http://localhost:8080/serenitas-system/```**\n  \nSe tudo estiver configurado corretamente, essa URL carregará a interface principal do sistema, onde você poderá gerenciar seus produtos com facilidade.\n\n---\n\n## 📁 Estrutura do Projeto \u003ca name=\"estrutura\"\u003e\u003c/a\u003e\n\nO **Serenitas System** segue uma estrutura típica de projetos Java Web baseados em JSP. A lógica de negócio e o acesso a dados estão contidos diretamente nos arquivos .jsp.\n\n  ```\n  serenitas-system\n  ├── build.xml                   # Script de build para Apache Ant\n  ├── database/                   # Contém o script .sql para criar o banco de dados\n  ├── lib/                        # Dependências .jar (drivers, bibliotecas) usadas no projeto\n  ├── LICENSE                     # Licença do projeto\n  ├── README.md                   # Documentação e instruções do projeto\n  ├── src/                        # Código-fonte Java\n  │   └── .gitkeep                # Mantém o diretório versionado mesmo quando vazio\n  └── web/                        # Raiz da aplicação web\n      ├── *.jsp                   # Páginas que contêm a lógica e a apresentação\n      ├── *.html                  # Páginas estáticas\n      ├── assets/                 # Recursos de imagem\n      ├── styles/                 # Arquivos de estilo CSS\n      ├── .env                    # Arquivo de configuração de ambiente\n      └── WEB-INF/                # Diretório protegido da aplicação\n          ├── web.xml             # Descritor de implantação da aplicação\n          └── lib/                # Local onde as dependências são copiadas durante o build\n  ```\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## 👤 Sobre o Desenvolvedor \u003ca name=\"desenvolvedor\"\u003e\u003c/a\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/0nF1REy\" target=\"_blank\"\u003e\n        \u003cimg src=\"./readme_images/alan-ryan.jpg\" height=\"160px\" style=\"border-radius: 50%; border: 3px solid #0077B5;\" alt=\"Foto de Alan Ryan\"/\u003e\u003cbr\u003e\n        \u003cb\u003eAlan Ryan\u003c/b\u003e\n      \u003c/a\u003e\n      \u003cp\u003e\n        ☕ Peopleware | Tech Enthusiast | Code Slinger ☕\u003cbr\u003e\n        Apaixonado por código limpo, arquitetura escalável e experiências digitais envolventes.\n      \u003c/p\u003e\n      \u003cp style=\"font-weight: bold; color: #0077B5;\"\u003e\n        Conecte-se comigo:\n      \u003c/p\u003e\n      \u003cp\u003e\n        \u003ca href=\"https://github.com/0nF1REy\" target=\"_blank\"\u003e\n          \u003cimg src=\"https://img.shields.io/badge/GitHub-0nF1REy-181717?style=for-the-badge\u0026logo=github\" alt=\"GitHub\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://gitlab.com/alanryan619\" target=\"_blank\"\u003e\n          \u003cimg src=\"https://img.shields.io/badge/GitLab-@0nF1REy-FCA121?style=for-the-badge\u0026logo=gitlab\" alt=\"GitLab\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://www.linkedin.com/in/alan-ryan-b115ba228\" target=\"_blank\"\u003e\n          \u003cimg src=\"https://img.shields.io/badge/LinkedIn-Alan_Ryan-0077B5?style=for-the-badge\u0026logo=linkedin\" alt=\"LinkedIn\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"mailto:alanryan619@gmail.com\" target=\"_blank\"\u003e\n          \u003cimg src=\"https://img.shields.io/badge/Email-alanryan619@gmail.com-D14836?style=for-the-badge\u0026logo=gmail\" alt=\"Email\"\u003e\n        \u003c/a\u003e\n      \u003c/p\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c/div\u003e\n\n---\n\n## 📫 Contribuir \u003ca name=\"contribuicao\"\u003e\u003c/a\u003e\n\nContribuições são muito bem-vindas! Se você deseja contribuir com o projeto, por favor, siga estes passos:\n\n1.  **Faça um Fork** do repositório.\n\n2.  **Crie uma nova Branch** para sua feature ou correção: \n\n    ```bash\n    git checkout -b feature/nome-da-feature\n    ```\n\n3.  **Faça suas alterações** e realize o commit:\n\n    ```bash\n    git commit -m \"feat: Adiciona nova feature\"\n    ```\n\n4.  **Envie suas alterações** para o seu fork:\n\n    ```bash\n    git push origin feature/nome-da-feature\n    ```\n\n5.  **Abra um pull request** para a branch `main` do repositório original.\n\n### Recursos Úteis\n\n- **\u003ca href=\"https://www.atlassian.com/br/git/tutorials/making-a-pull-request\" target=\"_blank\"\u003e📝 Como criar um Pull Request\u003c/a\u003e**\n\n- **\u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0/\" target=\"_blank\"\u003e💾 Padrão de Commits Convencionais\u003c/a\u003e**\n\n## 📜 Licença \u003ca name=\"licenca\"\u003e\u003c/a\u003e\n\nEste projeto está sob a **licença MIT**. Consulte o arquivo **[LICENSE](LICENSE)** para obter mais detalhes.\n\n\u003e ℹ️ **Aviso de Licença:** © 2025 Alan Ryan da Silva Domingues. Este projeto está licenciado sob os termos da licença MIT. Isso significa que você pode usá-lo, copiá-lo, modificá-lo e distribuí-lo com liberdade, desde que mantenha os avisos de copyright.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0nf1rey%2Fserenitas-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0nf1rey%2Fserenitas-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0nf1rey%2Fserenitas-system/lists"}