Skip to content

Commit b5d42bb

Browse files
docs: Update README.md
1 parent 7c49650 commit b5d42bb

File tree

1 file changed

+168
-130
lines changed

1 file changed

+168
-130
lines changed

README.md

+168-130
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,181 @@
11
# SecureTimeNotes 📝⏱️
22

3-
**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.
4-
5-
## Funcionalidades 🌟
6-
7-
- **Criação e Edição de Notas** 📝: Salve suas ideias, pensamentos e compromissos com facilidade.
8-
- **Cronômetro** ⏱️: Um cronômetro simples para monitorar o tempo enquanto trabalha ou realiza outras atividades.
9-
- **Calendário** 📅: Organize seus compromissos e eventos importantes diretamente no aplicativo.
10-
- **Autenticação e Segurança** 🔐: Sistema de autenticação robusto com **Spring Security**, baseado em **JWT** (JSON Web Tokens) para garantir a segurança de dados do usuário.
11-
- **Banco de Dados Temporário** 🗃️: Utilização do **H2 Database** para armazenamento temporário das notas e outros dados. O banco será eventualmente substituído por uma solução permanente.
12-
13-
## Tecnologias Utilizadas ⚙️
14-
15-
- **Backend**:
16-
- **Java Spring Boot** (JDK 17) ☕
17-
- **Spring Security** 🔒 para autenticação e controle de acesso
18-
- **JWT** (JSON Web Tokens) 💻 para segurança
19-
- **H2 Database** 🗃️ para armazenamento temporário
20-
21-
- **Frontend**: O frontend será desenvolvido posteriormente, com o objetivo de criar uma interface de usuário limpa e funcional.
22-
23-
## Instalação 🚀
24-
25-
### Pré-requisitos 🔧
26-
27-
Antes de começar, tenha o seguinte instalado:
28-
- JDK 17 ou superior ☕
29-
- Maven 📦
30-
- IDE como **IntelliJ IDEA** ou **Eclipse** 💻 para desenvolvimento
31-
32-
### Passos ⬇️
33-
34-
1. Clone o repositório para sua máquina local:
35-
```bash
36-
git clone https://github.com/andrefelipebarros/SecureTimeNotes.git
37-
```
38-
39-
2. Navegue até o diretório do projeto:
40-
```bash
41-
cd SecureTimeNotes
42-
```
43-
44-
3. Compile o projeto:
45-
```bash
46-
mvn clean install
47-
```
48-
49-
4. Execute o servidor Spring Boot:
50-
```bash
51-
mvn spring-boot:run
52-
```
53-
54-
5. O backend estará rodando localmente na porta `8080` por padrão. 🌐
55-
(⚠OBS: Alterei no properties para porta 8081)
56-
57-
## Rotas e Endpoints 🚏
58-
59-
- **POST** `auth/login` 🔑: Realiza o login do usuário e retorna um token JWT.
60-
- **POST** `auth/register` 🖊️: Registra um novo usuário.
61-
- **GET** `user/notes` 📋: Retorna todas as notas do usuário autenticado.
62-
- **POST** `user/notes` ✍️: Cria uma nova nota.
63-
- **PUT** `user/notes/{id}` 🔄: Atualiza uma nota existente.
64-
- **DELETE** `user/notes/{id}` 🗑️: Deleta uma nota.
65-
66-
Esses endpoints são protegidos por **Spring Security** 🔐 e requerem um token JWT válido para acessar.
67-
68-
## Diagramas 📊
69-
Aqui está o **Diagrama de Classes**:
70-
71-
```mermaid
72-
classDiagram
73-
class User {
74-
+id : String
75-
+username : String
76-
+password : String
77-
+role : UserRole
78-
+notes : List~Note~
79-
}
80-
81-
class Note {
82-
+id : Long
83-
+content : String
84-
+user : User
85-
}
86-
87-
class UserRole {
88-
<<enum>>
89-
ADMIN
90-
USER
91-
}
92-
93-
User "1" --> "*" Note : notes
94-
Note "*" --> "1" User : user
95-
User --> UserRole : role
96-
```
97-
98-
Aqui está o diagrama do **SchemaDB** para ilustrar a estrutura do banco de dados:
3+
**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.
4+
5+
---
6+
7+
## 🔗 Documentação da API (Swagger)
8+
9+
Você pode visualizar e testar todos os endpoints diretamente pela interface Swagger:
10+
11+
👉 [Acesse o Swagger](https://securetimenotes.up.railway.app/swagger)
12+
13+
---
14+
15+
## 🌐 Acesse o Aplicativo
16+
17+
O frontend está disponível online:
18+
19+
👉 [Acesse o SecureTimeNotes](https://securetimenotes.netlify.app/)
20+
21+
---
22+
23+
## 📌 Funcionalidades
24+
25+
- **Criação e Edição de Notas**: Salve ideias, tarefas e compromissos com facilidade.
26+
- **Cronômetro Integrado**: Monitore o tempo de forma prática.
27+
- **Calendário**: Organize seus compromissos diretamente no app.
28+
- **Autenticação Segura**: Com **Spring Security** e **JWT**.
29+
- **Banco de Dados Temporário**: Utilização do **H2 Database** (em breve será substituído por uma solução permanente).
30+
31+
---
32+
33+
## ⚙️ Tecnologias Utilizadas
34+
35+
### Backend
36+
37+
- **Java 17** com **Spring Boot**
38+
- **Spring Security** para autenticação e controle de acesso
39+
- **JWT** (JSON Web Tokens)
40+
- **H2 Database** para armazenamento temporário
41+
42+
### Frontend
43+
44+
- **Angular Standalone** (sem uso de `NgModules`)
45+
- Aplicação leve, moderna e responsiva
46+
- Integração com API segura usando tokens JWT
47+
- Hospedado via **Netlify**: [securetimenotes.netlify.app](https://securetimenotes.netlify.app)
48+
49+
---
50+
51+
## 🚀 Instalação
52+
53+
### Pré-requisitos
54+
55+
- JDK 17 ou superior
56+
- Maven
57+
- IDE como IntelliJ IDEA ou Eclipse
58+
59+
### Passos para rodar localmente (Backend)
60+
61+
```bash
62+
# Clone o repositório
63+
git clone https://github.com/andrefelipebarros/SecureTimeNotes.git
64+
65+
# Acesse o diretório do projeto
66+
cd SecureTimeNotes
67+
68+
# Compile o projeto
69+
mvn clean install
70+
71+
# Execute o servidor
72+
mvn spring-boot:run
73+
```
74+
75+
> Por padrão, o backend roda na porta `8080`, mas foi configurado para `8081` no `application.properties`.
76+
77+
---
78+
79+
## 📬 Endpoints
80+
81+
Os principais endpoints disponíveis são:
82+
83+
| Método | Endpoint | Descrição |
84+
|--------|----------------------|---------------------------------|
85+
| POST | `/auth/login` | Login do usuário (JWT) |
86+
| POST | `/auth/register` | Registro de novo usuário |
87+
| GET | `/user/notes` | Listar todas as notas |
88+
| POST | `/user/notes` | Criar uma nova nota |
89+
| PUT | `/user/notes/{id}` | Atualizar uma nota existente |
90+
| DELETE | `/user/notes/{id}` | Deletar uma nota |
91+
92+
> Todos os endpoints `/user/**` requerem autenticação via JWT 🔐
93+
94+
---
95+
96+
## 📊 Diagramas
97+
98+
### Diagrama de Classes
9999

100100
```mermaid
101-
erDiagram
102-
USERS {
103-
STRING id PK
104-
STRING username
105-
STRING password
106-
STRING role
107-
}
108-
109-
NOTES {
110-
INT id PK
111-
STRING content
112-
STRING user_id FK
113-
}
114-
115-
USERROLE {
116-
STRING role PK
117-
}
118-
119-
USERS ||--o{ NOTES : has
120-
NOTES }o--|| USERS : belongs_to
121-
USERS }o--|| USERROLE : role_is
101+
classDiagram
102+
class User {
103+
+id : String
104+
+username : String
105+
+password : String
106+
+role : UserRole
107+
+notes : List~Note~
108+
}
109+
110+
class Note {
111+
+id : Long
112+
+content : String
113+
+user : User
114+
}
115+
116+
class UserRole {
117+
<<enum>>
118+
ADMIN
119+
USER
120+
}
121+
122+
User "1" --> "*" Note : notes
123+
Note "*" --> "1" User : user
124+
User --> UserRole : role
122125
```
123-
## Contribuindo 🤝
124126

125-
1. Faça um fork deste repositório 🍴.
126-
2. Crie uma branch com sua feature ou correção (`git checkout -b feature/nova-feature`).
127-
3. Faça o commit das suas mudanças (`git commit -am 'Adicionar nova feature'`).
128-
4. Envie a branch para o seu repositório remoto (`git push origin feature/nova-feature`).
129-
5. Abra um Pull Request no repositório original.
127+
### Diagrama do Schema (Banco de Dados)
130128

131-
## Licença 📜
129+
```mermaid
130+
erDiagram
131+
USERS {
132+
STRING id PK
133+
STRING username
134+
STRING password
135+
STRING role
136+
}
137+
138+
NOTES {
139+
INT id PK
140+
STRING content
141+
STRING user_id FK
142+
}
143+
144+
USERROLE {
145+
STRING role PK
146+
}
147+
148+
USERS ||--o{ NOTES : has
149+
NOTES }o--|| USERS : belongs_to
150+
USERS }o--|| USERROLE : role_is
151+
```
132152

133-
Distribuído sob a licença MIT. Veja [LICENSE](LICENSE) para mais informações.
153+
---
134154

135-
## Futuras Funcionalidades 🚧
155+
## 🤝 Contribuindo
136156

137-
- **Frontend** 🖥️: Desenvolvimento de uma interface de usuário intuitiva.
138-
- **Suporte a múltiplos usuários** 👥: Expandir o sistema para permitir que várias pessoas acessem e compartilhem notas e compromissos.
139-
- **Banco de Dados Permanente** 💾: Substituir o banco de dados H2 por uma solução de banco de dados mais robusta e escalável.
157+
1. Faça um fork do repositório
158+
2. Crie uma branch: `git checkout -b feature/minha-feature`
159+
3. Commit suas mudanças: `git commit -m 'Minha contribuição'`
160+
4. Push para o repositório: `git push origin feature/minha-feature`
161+
5. Crie um Pull Request
140162

141163
---
142164

143-
Para dúvidas ou sugestões, fique à vontade para abrir uma issue ou pull request. Esperamos que o **SecureTimeNotes** seja útil para o seu dia a dia! ✨
165+
## 📜 Licença
166+
167+
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo [LICENSE](LICENSE) para mais informações.
168+
169+
---
170+
171+
## 🔮 Futuras Funcionalidades
172+
173+
- **Mais funcionalidades no frontend**
174+
- **Compartilhamento de notas entre usuários**
175+
- **Substituição do banco de dados H2 por uma solução permanente (PostgreSQL, por exemplo)**
176+
177+
---
178+
179+
Em caso de dúvidas ou sugestões, abra uma issue ou envie um pull request.
180+
181+
Agradecemos por usar o **SecureTimeNotes**! ✨

0 commit comments

Comments
 (0)