O projeto "Mini Asaas" é uma aplicação de controle de recebíveis que oferece funcionalidades essenciais, como cadastro de pagadores, geração de cobranças e confirmação de pagamentos. Além disso, possui um sistema de notificações por e-mail, gestão multiusuário e mecanismos específicos no backend, como o uso do Spring Security para controle de conta e soft delete para registros no banco de dados.
- JDK 11
- Grails 5
- MySQL
-
Clone o repositório:
git clone https://github.com/L-W-payments/asaas-payment.git cd asaas-payment
-
Configure o banco de dados no arquivo
application.yml
:
-
Altere as variáveis
username
,password
eurl
para as credenciais do seu banco de dados.dataSource: pooled: true jmxExport: true driverClassName: com.mysql.cj.jdbc.Driver dialect: org.hibernate.dialect.MySQL8Dialect username: yourUsername password: yourPassword environments: development: dataSource: dbCreate: update url: yourDatabaseUrl
- Configure o smtp no arquivo
application.yml
:
-
Altere as variáveis
username
epassword
para as credenciais do seu email.grails: mail: host: "smtp.gmail.com" port: 587 username: "youremail@email.com" password: "yourAppPassowrd"
-
Execute o projeto:
grails run-app
-
Acesse a aplicação em
http://localhost:8080
- Deve ser possível um cliente se cadastrar;
- Deve ser possível um cliente se autenticar;
- Deve ser possível um cliente deletar sua conta;
- Deve ser possível um cliente atualizar seus dados;
- Deve ser possível um cliente criar uma cobrança;
- Deve ser possível um cliente listar todas as cobranças;
- Deve ser possível um cliente listar uma cobrança específica;
- Deve ser possível um cliente deletar uma cobrança;
- Deve ser possível um cliente restaurar uma cobrança;
- Deve ser possível um cliente selecionar um pagador para uma cobrança;
- Deve ser possível um cliente criar um pagador;
- Deve ser possível um cliente listar todos os pagadores;
- Deve ser possível um cliente listar um pagador específico;
- Deve ser possível um cliente atualizar um pagador;
- Deve ser possível um cliente deletar um pagador;
- Deve ser possível um cliente restaurar um pagador;
- Deve ser possível um cliente listar todas as notificações;
- Deve ser possível um cliente confirmar o recebimento em dinheiro de uma cobrança;
- Deve ser possível um pagador pagar uma cobrança;
- Deve ser possível um pagador ver o comprovante de pagamento;
- Deve ser possível receber um email após uma cobrança ser criada;
- Deve ser possível receber um email após uma cobrança ser deletada;
- Deve ser possível receber um email após uma cobrança ser vencida;
- Deve ser possível receber um email após uma cobrança ser paga;
- O cliente não deve se cadastrar com um email duplicado;
- O cliente não deve se cadastrar com um cpf ou cnpj duplicado;
- O cliente não deve se cadastrar com informações inválidas;
- O cliente não deve se cadastrar um pagador com informações inválidas;
- O cliente não deve deletar um pagador que possui cobranças em aberto;
- O cliente não deve alterar uma cobrança;
- O cliente não deve criar uma cobrança com data de vencimento menor que a data atual;
- O cliente não deve criar uma cobrança com data de vencimento maior que 6 meses;
- O cliente não deve criar uma cobrança com valor menor que R$ 10;
- O cliente não deve criar uma cobrança com valor maior que R$ 10.000;
- O cliente não deve criar uma cobrança com descrição maior que 500 caracteres;
- O cliente não deve criar uma cobrança sem uma forma de pagamento;
- O cliente não deve criar uma cobrança sem um pagador;
- O cliente não deve confirmar o recebimento em dinheiro de uma cobrança se ela não estiver pendente;
- O pagador não deve pagar uma cobrança recebida em dinheiro;
- A senha do cliente deve ser criptografada;
- Todos os domínios devem possuir um campo
dateCreated
,lastUpdated
edeleted
; - Todos os domínios que recebem informações de fora da aplicação devem possuir um adapter;
- Todos os services devem ser implementados de maneira explícita;
- Nenhum domínio deve ser deletado explicitamente;
- Os dados da aplicação devem estar persistido em um banco MySQL;
- A aplicação deve ser desenvolvida em Grails;
- A aplicação deve ser desenvolvida em Groovy;
- A aplicação deve ser desenvolvida com Spring Security;
- A aplicação deve ser desenvolvida com o Atlas;
- A aplicação deve utilizar repositórios para interação com domínios;
- A aplicação deve utilizar Jobs para vencer as cobranças;
Este projeto foi criado por Luiz Filipe e Wollace Buarque.