-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #25 from ufcg-lsd/updating-to-java-21
Updating to java 21
- Loading branch information
Showing
78 changed files
with
2,291 additions
and
1,928 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"java.configuration.updateBuildConfiguration": "automatic" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,72 +1,128 @@ | ||
# Ambiente de Estudo ao Pensamento Computacional 1.0 | ||
# 📚 ComPensar | ||
|
||
## Iniciando | ||
**Ambiente de Estudo ao Pensamento Computacional 1.1** | ||
|
||
Essas instruções vão ajudar você a utilizar o projeto e rodar em sua máquina local para desenvolvimento e testes. | ||
**ComPensar** é uma plataforma voltada para auxiliar o ensino de **Pensamento Computacional (PC)** no contexto da educação básica, com foco na resolução de problemas matemáticos. O sistema oferece ferramentas que permitem a criação, avaliação e publicação de questões alinhadas com as competências do PC, promovendo o desenvolvimento do raciocínio lógico e da capacidade de abstração dos alunos. | ||
|
||
### Pré-Requisitos | ||
O Pensamento Computacional é uma habilidade fundamental na educação moderna, pois facilita a aplicação de técnicas e conceitos computacionais para resolver problemas de diversas áreas, incluindo a matemática. Através do ComPensar, educadores podem avaliar o progresso dos alunos em competências essenciais como a decomposição de problemas, reconhecimento de padrões, abstração e criação de algoritmos. | ||
|
||
É necessário que você execute os comandos contidos no seguinte arquivo para utilizar um banco de dados MongoDB. Pode ser utilizado ainda uma interface MongoDB, como o Robo3T, para melhor interação com os dados. | ||
## ⚙️ Tecnologias utilizadas | ||
|
||
``` | ||
aepc/backend/src/main/resources/import.sql | ||
``` | ||
| Tecnologia | Versão | | ||
| --------------------------------- | ------- | | ||
| [Node.js](https://nodejs.org/en/) | v22.2.0 | | ||
| [Java](https://www.java.com/) | v21 | | ||
| Spring Boot | v3.3.3 | | ||
| MongoDB | v7.0.2 | | ||
|
||
### Executar | ||
Para executar o projeto execute como JavaApplication a seguinte classe: | ||
## 🚀 Como levantar o projeto? | ||
|
||
``` | ||
aepc/backend/src/main/java/springboot/AepcApplication.java | ||
``` | ||
- **Clone o repositório:** | ||
|
||
## Testando a Aplicação | ||
```bash | ||
git clone https://github.com/ufcg-lsd/compensar-legacy.git | ||
``` | ||
|
||
### Segurança | ||
### Frontend | ||
|
||
A segurança nos endpoints está implemetada utilizando HTTP Basic e busca dos usuários no banco de dados utilizando o serviço que implementa UserDetailsService, do Spring Security. Cada usuário possui uma determinada permissão. | ||
1. **Instale as dependências:** | ||
|
||
Usuários para testes pré-defindos com um tipo de permissão se encontram também no seguinte arquivo: | ||
```bash | ||
cd frontend | ||
npm install | ||
``` | ||
|
||
``` | ||
aepc/backend/src/main/resources/import.sql | ||
``` | ||
2. **Execute a aplicação:** | ||
|
||
Obs.: Há endpoints específicos para criação de um usuário, e de adição de uma permissão a um usuário (Mais a frente) | ||
```bash | ||
npm start | ||
``` | ||
|
||
### Backend | ||
|
||
Para login e acesso aos endpoints, é utilizado o email e senha de três digitos. No mesmo arquivo se encontram a inserção de alguns usuários exemplo. | ||
1. **Instale as dependências:** | ||
|
||
```bash | ||
cd backend | ||
mvn clean install # Se os testes falharem e você queira rodar assim mesmo, adicione a flag -DskipTests | ||
``` | ||
|
||
### API REST | ||
Para obter uma visualização interativa da API com os endpoints acesse, localmente, o seguinte endereço: | ||
2. **Execute a aplicação:** | ||
|
||
``` | ||
http://localhost:8080/swagger-ui.html | ||
``` | ||
```bash | ||
mvn spring-boot:run | ||
``` | ||
|
||
É possível realizar requisições para testar os endpoints utilizando a interação citada acima, se preferir, existem outras ferramentas (Ex.: Postman). | ||
## 🛠️ Arquitetura | ||
|
||
### Endpoint Base | ||
Abaixo está o diagrama da arquitetura geral da aplicação: | ||
|
||
``` | ||
http://localhost:8080/api/... | ||
``` | ||
![Diagrama de Arquitetura](./docs/images/architecture-diagram.png) | ||
|
||
### Testes de Unidade | ||
### Diagrama de Caso de Uso | ||
|
||
Para execução dos testes de unidade execute como JunitTest o seguinte pacote: | ||
O diagrama de caso de uso ilustra as interações entre os usuários e o sistema: | ||
|
||
![Diagrama de Caso de Uso](./docs/images/use-case-diagram.png) | ||
|
||
### 📚 Documentação Adicional | ||
|
||
Para mais detalhes sobre a aplicação, como a listagem completa dos requisitos funcionais e não funcionais, acesse a pasta [**/docs**](./docs). Você pode explorar os seguintes conteúdos: | ||
|
||
- [Listagem de Requisitos](./docs/requirements.md) | ||
|
||
|
||
<!-- ## 🧪 Como testar | ||
|
||
1. **Testes unitários:** | ||
|
||
```bash | ||
npm test | ||
``` | ||
|
||
2. **Cobertura de testes:** | ||
|
||
```bash | ||
npm run coverage | ||
``` | ||
|
||
3. **Testes end-to-end:** | ||
```bash | ||
npm run e2e | ||
``` --> | ||
|
||
## 🏗️ Estrutura de pastas | ||
|
||
```plaintext | ||
├── frontend # Diretório contendo o projeto AngularJS (Está pra ser reescrito em Next.JS em outro repositório) | ||
├── backend # Diretório contendo o projeto Spring | ||
``` | ||
aepc/backend/src/test/java/springboot/aepcinitializr | ||
``` | ||
|
||
## Construído Com | ||
<!-- ## 📄 Licença | ||
|
||
Este projeto está sob a licença [MIT](LICENSE). | ||
|
||
### Dicas Adicionais: | ||
|
||
* [SpringBoot](https://spring.io/projects/spring-boot) - O Framework Web usado | ||
* [Maven](https://maven.apache.org/) - Gerenciamento de dependências | ||
* [Swagger](https://swagger.io/) - Construção de API | ||
1. **Badges**: Você pode adicionar badges no topo para status do build, cobertura de testes, últimas versões, etc. | ||
2. **Screenshots**: Inclua capturas de tela para ilustrar o funcionamento da aplicação. | ||
3. **Guia de Contribuição**: Se você espera contribuições externas, inclua uma seção explicando como as pessoas podem contribuir. --> | ||
|
||
## Variáveis que possivelmente precisarão de modificação | ||
- URI do mongodb: | ||
`spring.data.mongodb.uri` em `backend/src/main/resources/application-<dev_or_prod>.properties` | ||
|
||
> P: "Mas eu substituo pelo quê?" | ||
> | ||
> R: Se por algum motivo não conseguir acesso ao BD, colocar o uri do (novo) banco de dados que queira apontar. | ||
|
||
|
||
- Google Sign-In Client ID: | ||
- backend: `CLIENT_ID` na classe `GoogleIdVerifier` | ||
- frontend: frontend > index.html em dois lugares | ||
- `<meta name="google-signin-client_id" content="<aqui>" data-callback="onSignIn" />` | ||
- `<div id="g_id_onload" data-client_id="<aqui>" />` | ||
|
||
> P: "Mas eu substituo pelo quê?" | ||
> | ||
> R: Se por algum motivo a autenticação não funcionar, talvez as credenciais estejam vencidas ou inacessíveis por algum motivo. Nesse caso, criar novas usando o Google Cloud e substituir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.