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.
Você pode visualizar e testar todos os endpoints diretamente pela interface Swagger:
O frontend está disponível online:
- Criação e Edição de Notas: Salve ideias, tarefas e compromissos com facilidade.
- Cronômetro Integrado: Monitore o tempo de forma prática.
- Calendário: Organize seus compromissos diretamente no app.
- Autenticação Segura: Com Spring Security e JWT.
- Banco de Dados Temporário: Utilização do H2 Database (em breve será substituído por uma solução permanente).
- Java 17 com Spring Boot
- Spring Security para autenticação e controle de acesso
- JWT (JSON Web Tokens)
- H2 Database para armazenamento temporário
- Angular Standalone (sem uso de
NgModules
) - Aplicação leve, moderna e responsiva
- Integração com API segura usando tokens JWT
- Hospedado via Netlify: securetimenotes.netlify.app
- JDK 17 ou superior
- Maven
- IDE como IntelliJ IDEA ou Eclipse
# Clone o repositório
git clone https://github.com/andrefelipebarros/SecureTimeNotes.git
# Acesse o diretório do projeto
cd SecureTimeNotes
# Compile o projeto
mvn clean install
# Execute o servidor
mvn spring-boot:run
Por padrão, o backend roda na porta
8080
, mas foi configurado para8081
noapplication.properties
.
Os principais endpoints disponíveis são:
Método | Endpoint | Descrição |
---|---|---|
POST | /auth/login |
Login do usuário (JWT) |
POST | /auth/register |
Registro de novo usuário |
GET | /user/notes |
Listar todas as notas |
POST | /user/notes |
Criar uma nova nota |
PUT | /user/notes/{id} |
Atualizar uma nota existente |
DELETE | /user/notes/{id} |
Deletar uma nota |
Todos os endpoints
/user/**
requerem autenticação via JWT 🔐
classDiagram
class User {
+id : String
+username : String
+password : String
+role : UserRole
+notes : List~Note~
}
class Note {
+id : Long
+content : String
+user : User
}
class UserRole {
<<enum>>
ADMIN
USER
}
User "1" --> "*" Note : notes
Note "*" --> "1" User : user
User --> UserRole : role
erDiagram
USERS {
STRING id PK
STRING username
STRING password
STRING role
}
NOTES {
INT id PK
STRING content
STRING user_id FK
}
USERROLE {
STRING role PK
}
USERS ||--o{ NOTES : has
NOTES }o--|| USERS : belongs_to
USERS }o--|| USERROLE : role_is
- Faça um fork do repositório
- Crie uma branch:
git checkout -b feature/minha-feature
- Commit suas mudanças:
git commit -m 'Minha contribuição'
- Push para o repositório:
git push origin feature/minha-feature
- Crie um Pull Request
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.
- Mais funcionalidades no frontend
- Compartilhamento de notas entre usuários
- Substituição do banco de dados H2 por uma solução permanente (PostgreSQL, por exemplo)
Em caso de dúvidas ou sugestões, abra uma issue ou envie um pull request.
Agradecemos por usar o SecureTimeNotes! ✨