{"id":26445248,"url":"https://github.com/andrefelipebarros/securetimenotes","last_synced_at":"2026-04-05T21:04:33.715Z","repository":{"id":281919335,"uuid":"946684809","full_name":"andrefelipebarros/SecureTimeNotes","owner":"andrefelipebarros","description":" This Repository contains a personal project.","archived":false,"fork":false,"pushed_at":"2025-04-08T19:30:41.000Z","size":343,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T19:46:28.485Z","etag":null,"topics":["angular","framework-angular","java","jdk17","nodejs","rxjs","spring-boot","spring-mvc","spring-security"],"latest_commit_sha":null,"homepage":"https://securetimenotes.netlify.app/","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/andrefelipebarros.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-03-11T14:18:00.000Z","updated_at":"2025-04-08T19:30:44.000Z","dependencies_parsed_at":"2025-03-11T21:23:56.345Z","dependency_job_id":"e1971960-93f1-48a1-96e1-c117fba15b6a","html_url":"https://github.com/andrefelipebarros/SecureTimeNotes","commit_stats":null,"previous_names":["andrefelipebarros/securetimenotes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrefelipebarros/SecureTimeNotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipebarros%2FSecureTimeNotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipebarros%2FSecureTimeNotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipebarros%2FSecureTimeNotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipebarros%2FSecureTimeNotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrefelipebarros","download_url":"https://codeload.github.com/andrefelipebarros/SecureTimeNotes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipebarros%2FSecureTimeNotes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264394699,"owners_count":23601350,"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":["angular","framework-angular","java","jdk17","nodejs","rxjs","spring-boot","spring-mvc","spring-security"],"created_at":"2025-03-18T11:16:31.191Z","updated_at":"2025-12-30T22:13:39.340Z","avatar_url":"https://github.com/andrefelipebarros.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SecureTimeNotes 📝⏱️\n\n**SecureTimeNotes** é um aplicativo de anotações seguro, projetado para ajudar usuários a criar, editar e organizar suas notas de maneira prática e eficiente. Ele também oferece um cronômetro integrado e diversas funcionalidades úteis, como um calendário para compromissos — tudo com foco em segurança e facilidade de uso.\n\n---\n\n## 🔗 Documentação da API (Swagger)\n\nVocê pode visualizar e testar todos os endpoints diretamente pela interface Swagger:\n\n👉 [Acesse o Swagger](https://securetimenotes.up.railway.app/swagger)\n\n---\n\n## 🌐 Acesse o Aplicativo\n\nO frontend está disponível online:\n\n👉 [Acesse o SecureTimeNotes](https://securetimenotes.netlify.app/)\n\n---\n\n## 📌 Funcionalidades\n\n- **Criação e Edição de Notas**: Salve ideias, tarefas e compromissos com facilidade.\n- **Cronômetro Integrado**: Monitore o tempo de forma prática.\n- **Calendário**: Organize seus compromissos diretamente no app.\n- **Autenticação Segura**: Com **Spring Security** e **JWT**.\n- **Banco de Dados Temporário**: Utilização do **H2 Database** (em breve será substituído por uma solução permanente).\n\n---\n\n## ⚙️ Tecnologias Utilizadas\n\n### Backend\n\n- **Java 17** com **Spring Boot**\n- **Spring Security** para autenticação e controle de acesso\n- **JWT** (JSON Web Tokens)\n- **H2 Database** para armazenamento temporário\n\n### Frontend\n\n- **Angular Standalone** (sem uso de `NgModules`)\n- Aplicação leve, moderna e responsiva\n- Integração com API segura usando tokens JWT\n- Hospedado via **Netlify**: [securetimenotes.netlify.app](https://securetimenotes.netlify.app)\n\n---\n\n## 🚀 Instalação\n\n### Pré-requisitos\n\n- JDK 17 ou superior\n- Maven\n- IDE como IntelliJ IDEA ou Eclipse\n\n### Passos para rodar localmente (Backend)\n\n```bash\n# Clone o repositório\ngit clone https://github.com/andrefelipebarros/SecureTimeNotes.git\n\n# Acesse o diretório do projeto\ncd SecureTimeNotes\n\n# Compile o projeto\nmvn clean install\n\n# Execute o servidor\nmvn spring-boot:run\n```\n\n\u003e Por padrão, o backend roda na porta `8080`, mas foi configurado para `8081` no `application.properties`.\n\n---\n\n## 📬 Endpoints\n\nOs principais endpoints disponíveis são:\n\n| Método | Endpoint             | Descrição                       |\n|--------|----------------------|---------------------------------|\n| POST   | `/auth/login`        | Login do usuário (JWT)          |\n| POST   | `/auth/register`     | Registro de novo usuário        |\n| GET    | `/user/notes`        | Listar todas as notas           |\n| POST   | `/user/notes`        | Criar uma nova nota             |\n| PUT    | `/user/notes/{id}`   | Atualizar uma nota existente    |\n| DELETE | `/user/notes/{id}`   | Deletar uma nota                |\n\n\u003e Todos os endpoints `/user/**` requerem autenticação via JWT 🔐\n\n---\n\n## 📊 Diagramas\n\n### Diagrama de Classes\n\n```mermaid\nclassDiagram\n    class User {\n        +id : String\n        +username : String\n        +password : String\n        +role : UserRole\n        +notes : List~Note~\n    }\n\n    class Note {\n        +id : Long\n        +content : String\n        +user : User\n    }\n\n    class UserRole {\n        \u003c\u003cenum\u003e\u003e\n        ADMIN\n        USER\n    }\n\n    User \"1\" --\u003e \"*\" Note : notes\n    Note \"*\" --\u003e \"1\" User : user\n    User --\u003e UserRole : role\n```\n\n### Diagrama do Schema (Banco de Dados)\n\n```mermaid\nerDiagram\n    USERS {\n        STRING id PK\n        STRING username\n        STRING password\n        STRING role\n    }\n\n    NOTES {\n        INT id PK\n        STRING content\n        STRING user_id FK\n    }\n\n    USERROLE {\n        STRING role PK\n    }\n\n    USERS ||--o{ NOTES : has\n    NOTES }o--|| USERS : belongs_to\n    USERS }o--|| USERROLE : role_is\n```\n\n---\n\n## 🤝 Contribuindo\n\n1. Faça um fork do repositório\n2. Crie uma branch: `git checkout -b feature/minha-feature`\n3. Commit suas mudanças: `git commit -m 'Minha contribuição'`\n4. Push para o repositório: `git push origin feature/minha-feature`\n5. Crie um Pull Request\n\n---\n\n## 📜 Licença\n\nEste projeto está licenciado sob a Licença MIT. Consulte o arquivo [LICENSE](LICENSE) para mais informações.\n\n---\n\n## 🔮 Futuras Funcionalidades\n\n- **Mais funcionalidades no frontend**\n- **Compartilhamento de notas entre usuários**\n- **Substituição do banco de dados H2 por uma solução permanente (PostgreSQL, por exemplo)**\n\n---\n\nEm caso de dúvidas ou sugestões, abra uma issue ou envie um pull request.\n\nAgradecemos por usar o **SecureTimeNotes**! ✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrefelipebarros%2Fsecuretimenotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrefelipebarros%2Fsecuretimenotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrefelipebarros%2Fsecuretimenotes/lists"}