diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index f6904d52..02866a53 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,11 +1,17 @@
# Responsável pelo diretório frontend
-/frontend/ @cleytonjesus07
+/frontend/ @cleytonjesus07
# Responsável pelo diretório backend
-/backend/ @Bruno-Pimenta
+/backend/ @Bruno-Pimenta
-# Responsável pelo arquivo de configuração geral
-/config.yml @Alan-oliveir
+# Responsável pelo diretório docs
+/docs/ @Alan-oliveir
+
+# Responsável pelo diretório project_docs
+/project_docs/ @Alan-oliveir
+
+# Responsável pelas configurações do GitHub
+/.github/ @Alan-oliveir
# Responsável por todo o repositório (fallback)
-* @Alan-oliveir
+* @Alan-oliveir
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..8d4e2bd4
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,127 @@
+name: CI
+
+on:
+ pull_request:
+ branches:
+ - develop
+
+jobs:
+ frontend:
+ name: Frontend (React)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22
+
+ - name: Install dependencies (frontend)
+ run: |
+ cd frontend
+ npm install
+
+ - name: Run Lint (frontend)
+ run: |
+ cd frontend
+ npm run lint || echo "Lint warnings only"
+
+ - name: Run Tests (frontend)
+ run: |
+ cd frontend
+ npm run test -- --run --coverage || echo "No tests or tests failed (not blocking)"
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v4
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
+ directory: frontend/coverage
+ continue-on-error: true
+
+ backend:
+ name: Backend (Spring Boot)
+ runs-on: ubuntu-latest
+
+ services:
+ postgres:
+ image: postgres:15
+ env:
+ POSTGRES_USER: postgres
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_DB: app_db
+ ports:
+ - 5432:5432
+ options: >-
+ --health-cmd="pg_isready -U postgres"
+ --health-interval=10s
+ --health-timeout=5s
+ --health-retries=5
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ distribution: temurin
+ java-version: 21
+
+ - name: Cache Maven dependencies
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-maven-${{ hashFiles('backend/finboostplus_teste/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: Run Lint (backend - Checkstyle)
+ run: |
+ cd backend/finboostplus_teste
+ mvn checkstyle:check || echo "Checkstyle warnings only"
+
+ - name: Run Tests (backend)
+ run: |
+ cd backend/finboostplus_teste
+ mvn test || echo "JUnit tests failed or not found (not blocking)"
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v4
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
+ directory: backend/finboostplus_teste/target/site/jacoco
+ continue-on-error: true
+
+ sonarcloud:
+ name: SonarCloud Analysis
+ runs-on: ubuntu-latest
+ needs: [frontend, backend]
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Shallow clones should be disabled for better analysis
+
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ distribution: temurin
+ java-version: 21
+
+ - name: Cache Maven dependencies
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-maven-${{ hashFiles('backend/finboostplus_teste/pom.xml') }}
+
+ - name: SonarCloud Scan
+ uses: SonarSource/sonarcloud-github-action@v2
+ with:
+ projectBaseDir: .
+ env:
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/sync-wiki.yml b/.github/workflows/sync-wiki.yml
new file mode 100644
index 00000000..f92758fc
--- /dev/null
+++ b/.github/workflows/sync-wiki.yml
@@ -0,0 +1,70 @@
+name: Sync Wiki from docs/wiki
+
+on:
+ push:
+ branches:
+ - main
+ - feature/**
+ paths:
+ - 'docs/wiki/**'
+ - 'docs/assets/**'
+ - '.github/workflows/sync-wiki.yml'
+
+permissions:
+ contents: write
+
+jobs:
+ sync-wiki:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Configure Git
+ run: |
+ git config user.name "github-actions[bot]"
+ git config user.email "github-actions[bot]@users.noreply.github.com"
+
+ - name: Checkout Wiki repository
+ run: |
+ git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.wiki.git" wiki
+ # Verificar se o clone foi bem-sucedido
+ if [ ! -d wiki/.git ]; then
+ echo "Erro: Falha ao clonar o repositório wiki"
+ exit 1
+ fi
+
+ - name: Sync files to Wiki
+ run: |
+ # Verificar se docs/wiki existe antes de sincronizar
+ if [ ! -d docs/wiki ]; then
+ echo "Erro: Diretório docs/wiki não encontrado"
+ exit 1
+ fi
+ rsync -av --delete --exclude '_Sidebar.md' --exclude '_Footer.md' docs/wiki/ wiki/
+ # Copy assets (images) to a subfolder in the wiki
+ mkdir -p wiki/assets/images
+ if [ -d docs/assets/images ]; then rsync -av docs/assets/images/ wiki/assets/images/; fi
+
+ - name: Ensure Sidebar/Footer
+ run: |
+ # If sidebar/footer exist in docs/wiki, copy; otherwise keep existing
+ if [ -f docs/wiki/_Sidebar.md ]; then cp docs/wiki/_Sidebar.md wiki/_Sidebar.md; fi
+ if [ -f docs/wiki/_Footer.md ]; then cp docs/wiki/_Footer.md wiki/_Footer.md; fi
+
+ - name: Commit & Push changes (if any)
+ working-directory: wiki
+ run: |
+ # Verificar qual branch está sendo usado no wiki
+ WIKI_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null || echo "master")
+ echo "Wiki branch detectado: $WIKI_BRANCH"
+
+ if [ -n "$(git status --porcelain)" ]; then
+ git add .
+ git commit -m "chore(wiki): sync from docs/wiki @ $GITHUB_SHA"
+ git push origin HEAD:$WIKI_BRANCH
+ else
+ echo "No changes to sync."
+ fi
diff --git a/.gitignore b/.gitignore
index 844d4780..58edfeb0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,9 +13,11 @@ frontend/.DS_Store
frontend/.eslintcache
# IntelliJ/WebStorm/Vscode (IDE/Editor)
-.idea/
.vscode/
+.idea/
+*.iws
*.iml
+*.ipr
# Logs
logs/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..101492d8
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,370 @@
+# 🤝 Guia de Contribuição - FinBoost+
+
+
+
+
+
+
+
+Obrigado por considerar contribuir para o **FinBoost+**! Este guia ajudará você a entender nosso processo de desenvolvimento e como fazer contribuições efetivas.
+
+---
+
+## 📚 Sumário
+
+
+Clique aqui para visualizar
+
+- [Como Contribuir](#-como-contribuir)
+- [Padrões de Desenvolvimento](#-padrões-de-desenvolvimento)
+ - [Convenções de Commit](#️-convenções-de-commit)
+ - [Estratégia de Branches](#-estratégia-de-branches)
+ - [Padrões de Código](#-padrões-de-código)
+- [Testes](#-testes)
+- [Estrutura de Arquivos](#-estrutura-de-arquivos)
+- [Code Review](#-code-review)
+- [Setup de Desenvolvimento](#-setup-de-desenvolvimento)
+- [Recursos](#-recursos)
+- [FAQ](#-faq)
+- [Equipe e Contato](#-equipe-e-contato)
+- [Licença](#-licença)
+
+
+
+---
+
+## 🎯 **Como Contribuir**
+
+### **Pull Requests**
+
+1. **Fork** do repositório
+2. **Clone** seu fork: `git clone https://github.com/SEU_USUARIO/finboostplus-app.git`
+3. **Crie uma branch**: `git checkout -b feature/sua-funcionalidade`
+4. **Desenvolva** seguindo nossos padrões
+5. **Teste** suas alterações
+6. **Commit** com mensagens claras
+7. **Push**: `git push origin feature/sua-funcionalidade`
+8. **Abra um Pull Request**
+
+---
+
+## 📋 **Padrões de Desenvolvimento**
+
+### **🏷️ Convenções de Commit**
+
+Usamos [Conventional Commits](https://www.conventionalcommits.org/pt-br/) para manter histórico organizado:
+
+```bash
+tipo(escopo): descrição
+
+# Tipos permitidos:
+feat: # Nova funcionalidade
+fix: # Correção de bug
+docs: # Documentação
+style: # Formatação, sem mudança de lógica
+refactor: # Refatoração de código
+test: # Adição ou correção de testes
+chore: # Tarefas de manutenção
+```
+
+**Exemplos:**
+
+```bash
+feat(auth): adiciona autenticação JWT
+fix(expenses): corrige cálculo de divisão de despesas
+docs(readme): atualiza instruções de instalação
+test(button): adiciona testes para componente Button
+```
+
+### **🌿 Estratégia de Branches**
+
+```
+main # Produção - sempre estável
+├── develop # Desenvolvimento - integração
+├── feature/nome # Novas funcionalidades
+├── fix/nome # Correções
+└── docs/nome # Documentação
+```
+
+**Nomenclatura:**
+- `feature/auth-jwt` - Nova funcionalidade de autenticação
+- `fix/expense-calculation` - Correção no cálculo de despesas
+- `docs/contributing-guide` - Documentação
+
+### **📝 Padrões de Código**
+
+#### **Frontend (React)**
+
+```javascript
+// ✅ Bom
+import { useState, useEffect } from 'react'
+import { Button } from '../components/ui/Button'
+
+const UserProfile = ({ userId }) => {
+ const [user, setUser] = useState(null)
+
+ // Hooks no início
+ useEffect(() => {
+ fetchUser(userId).then(setUser)
+ }, [userId])
+
+ // Early return para casos especiais
+ if (!user) return
+
+ return (
+
+
{user.name}
+
+
+ )
+}
+
+export default UserProfile
+```
+
+#### **Backend (Java/Spring)**
+
+```java
+// ✅ Bom
+@RestController
+@RequestMapping("/api/expenses")
+@RequiredArgsConstructor
+public class ExpenseController {
+
+ private final ExpenseService expenseService;
+
+ @PostMapping
+ public ResponseEntity createExpense(
+ @Valid @RequestBody CreateExpenseRequest request,
+ Authentication authentication) {
+
+ ExpenseDto expense = expenseService.createExpense(request, authentication.getName());
+ return ResponseEntity.status(HttpStatus.CREATED).body(expense);
+ }
+}
+```
+
+---
+
+## 🧪 **Testes**
+
+### **Cobertura Mínima**
+
+- **Frontend:** 70%
+- **Backend:** 70%
+
+### **Tipos de Teste**
+
+#### **Frontend**
+
+```bash
+npm test
+npm test -- --watch
+npm test -- --coverage
+npm test -- Button.test.jsx
+```
+
+**Exemplo de teste:**
+```javascript
+// components/Button.test.jsx
+import { render, screen } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+import { Button } from './Button'
+
+describe('Button', () => {
+ it('deve chamar onClick quando clicado', async () => {
+ const user = userEvent.setup()
+ const handleClick = vi.fn()
+
+ render()
+
+ await user.click(screen.getByRole('button'))
+
+ expect(handleClick).toHaveBeenCalledTimes(1)
+ })
+})
+```
+
+#### **Backend**
+
+```bash
+./mvnw test
+./mvnw test jacoco:report
+open target/site/jacoco/index.html
+```
+
+**Exemplo de teste:**
+```java
+@SpringBootTest
+@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
+class ExpenseServiceTest {
+
+ @Autowired
+ private ExpenseService expenseService;
+
+ @Test
+ void shouldCreateExpenseSuccessfully() {
+ // Given
+ CreateExpenseRequest request = new CreateExpenseRequest("Jantar", 100.0);
+
+ // When
+ ExpenseDto result = expenseService.createExpense(request, "user@test.com");
+
+ // Then
+ assertThat(result.getDescription()).isEqualTo("Jantar");
+ assertThat(result.getAmount()).isEqualTo(100.0);
+ }
+}
+```
+
+---
+
+## 📁 **Estrutura de Arquivos**
+
+### **Adicionando Nova Funcionalidade**
+
+```bash
+# Frontend
+src/
+├── components/expenses/
+│ ├── ExpenseForm.jsx
+│ ├── ExpenseList.jsx
+│ └── index.js
+├── pages/Expenses/
+│ ├── index.jsx
+│ └── ExpensesActions.jsx
+├── hooks/useExpenses.js
+└── services/expenses.js
+
+# Backend
+src/main/java/com/finboost/
+├── controller/ExpenseController.java
+├── service/ExpenseService.java
+├── model/Expense.java
+├── repository/ExpenseRepository.java
+└── dto/
+ ├── ExpenseDto.java
+ └── CreateExpenseRequest.java
+```
+
+---
+
+## 🔍 **Code Review**
+
+### **Checklist do Reviewer - Frontend**
+
+- [ ] Componentes seguem padrões do projeto
+- [ ] Props têm PropTypes ou TypeScript
+- [ ] Testes cobrem funcionalidades principais
+- [ ] CSS é responsivo e segue design system
+- [ ] Não há console.logs esquecidos
+- [ ] Imports estão organizados
+
+### **Checklist do Reviewer - Backend**
+
+- [ ] Endpoints seguem REST conventions
+- [ ] Validação de entrada adequada
+- [ ] Tratamento de erros consistente
+- [ ] Testes unitários e integração
+- [ ] Documentação JavaDoc quando necessário
+- [ ] Segurança considerada
+
+### **Checklist do Autor**
+
+- [ ] **Funciona:** Testei localmente
+- [ ] **Testes:** Adicionei/atualizei testes
+- [ ] **Documentação:** Atualizei quando necessário
+- [ ] **Linting:** Código passou no ESLint/Checkstyle
+- [ ] **Commits:** Mensagens seguem padrão
+- [ ] **Descrição:** PR tem descrição clara do que faz
+
+---
+
+## 🚀 **Setup de Desenvolvimento**
+
+### **Primeira Configuração**
+
+```bash
+git clone https://github.com/Finboostplus/finboostplus-app.git
+cd finboostplus-app
+
+# Backend
+cd backend/finboostplus_teste
+./mvnw clean install
+./mvnw spring-boot:run
+
+# Frontend
+cd ../../frontend
+npm install
+npm run dev
+```
+
+### **Ferramentas Recomendadas**
+
+- **VS Code Extensions:** ES7+ Snippets, Tailwind IntelliSense, GitLens, Prettier
+- **IntelliJ IDEA Plugins:** Spring Boot, Database Navigator, GitToolBox
+
+---
+
+## 📚 **Recursos**
+
+### **Documentação Técnica**
+
+- [Documentação Completa](https://finboostplus.github.io/finboostplus-app/)
+- [Frontend Guide](./frontend/README.md)
+- [Backend Guide](./backend/README.md)
+- [Frontend Testing Guide](./frontend/TESTING_GUIDE.md)
+
+### **Referências Externas**
+
+- [React Docs](https://react.dev/)
+- [Spring Boot Docs](https://spring.io/projects/spring-boot)
+- [TailwindCSS Docs](https://tailwindcss.com/)
+- [Conventional Commits](https://www.conventionalcommits.org/)
+
+---
+
+## ❓ **FAQ**
+
+### **Q: Como fazer minha primeira contribuição?**
+A: Comece com issues marcadas como `good first issue` ou `help wanted`. São problemas menores e bem definidos.
+
+### **Q: Posso contribuir apenas com documentação?**
+A: Sim! Documentação é fundamental. Issues com label `documentation` são uma ótima forma de começar.
+
+### **Q: Como reportar um bug de segurança?**
+A: Para vulnerabilidades de segurança, envie email para: **finboostplus@gmail.com**
+
+### **Q: Posso usar bibliotecas externas?**
+A: Sim, mas discuta primeiro abrindo uma issue. Preferimos soluções que não aumentem muito o bundle size.
+
+### **Q: Como funciona o processo de release?**
+A: Releases são feitas a partir da branch `main` após aprovação da equipe. Tags seguem [Semantic Versioning](https://semver.org/).
+
+---
+
+## 👥 **Equipe e Contato**
+
+### **Core Team**
+
+- **🏆 Product Owner:** Alan Oliveira
+- **🔙 Backend Lead:** Bruno Henrique
+- **🎨 Frontend Lead:** Cleiton
+
+### **Como Nos Encontrar**
+
+- 📧 **Email:** finboostplus@gmail.com
+- 🐛 **Issues:** [GitHub Issues](https://github.com/Finboostplus/finboostplus-app/issues)
+
+---
+
+## 📄 **Licença**
+
+Ao contribuir, você concorda que suas contribuições serão licenciadas sob a mesma licença do projeto.
+
+---
+
+
+ 🤝 Obrigado por contribuir com o FinBoost+!
+ Juntos construímos uma ferramenta financeira melhor para todos
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..82bc351d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+======================================================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/README.md b/README.md
index d0e86bf5..7107fc00 100644
--- a/README.md
+++ b/README.md
@@ -1,272 +1,243 @@
-# 💸 FinBoost+ - Controle Financeiro Pessoal ou Compartilhado
+# 💸 FinBoost+ - Controle Financeiro Pessoal e Compartilhado
-
+
-
-
-
-
+
+
+
+
+
-**Sistema fullstack para gerenciamento de finanças pessoais ou compartilhadas**. Permite o registro e divisão de despesas, acompanhamento de saldos individuais, geração de relatórios e sugestões inteligentes com uso de IA.
-
----
-
-## 📋 Índice
+**Sistema fullstack para gerenciamento de finanças pessoais e compartilhadas**. Permite registro e divisão de despesas, acompanhamento de saldos individuais, geração de relatórios e sugestões inteligentes com IA.
-- [Funcionalidades](#-funcionalidades)
-- [Tecnologias](#-tecnologias-utilizadas)
-- [Estrutura do Projeto](#-estrutura-do-repositório)
-- [Como Executar](#-como-executar-localmente)
-- [Testes](#-testes)
-- [Contribuição](#-como-contribuir)
-- [Equipe](#-equipe-de-desenvolvimento)
-- [Licença](#-licença)
+> 🎓 **Projeto Final** do curso Desenvolvimento Full-Stack Jr – +Prati & Codifica
---
-## 🎯 Funcionalidades
+## 📚 Sumário
+
+
+Clique aqui para visualizar
+
+- [💸 FinBoost+ - Controle Financeiro Pessoal e Compartilhado](#-finboost---controle-financeiro-pessoal-e-compartilhado)
+ - [📚 Sumário](#-sumário)
+ - [🚀 **Demo ao Vivo**](#-demo-ao-vivo)
+ - [🎯 **O que o FinBoost+ faz?**](#-o-que-o-finboost-faz)
+ - [✅ **Funcionalidades Principais**](#-funcionalidades-principais)
+ - [🛠️ **Tecnologias**](#️-tecnologias)
+ - [📁 **Estrutura do Projeto**](#-estrutura-do-projeto)
+ - [🚀 **Como Executar**](#-como-executar)
+ - [📋 **Pré-requisitos**](#-pré-requisitos)
+ - [⚡ **Execução Rápida (Recomendado)**](#-execução-rápida-recomendado)
+ - [🔧 **Execução Manual**](#-execução-manual)
+ - [🧪 **Testes**](#-testes)
+ - [👥 **Nossa Equipe**](#-nossa-equipe)
+ - [🤝 **Como Contribuir**](#-como-contribuir)
+ - [🎓 **Sobre o Projeto**](#-sobre-o-projeto)
+ - [📞 **Suporte**](#-suporte)
+ - [📄 **Licença**](#-licença)
+
+
-### ✅ MVP (Versão Atual)
-
-- [x] **Autenticação**: Cadastro e login seguro de usuários
-- [x] **Gerenciamento de Grupos**: Criação e administração de grupos financeiros
-- [x] **Controle de Despesas**: Adição e divisão automática de gastos
-- [x] **Saldos em Tempo Real**: Visualização de saldo individual e do grupo
-- [x] **Dashboard Intuitivo**: Resumo completo de gastos e estatísticas
-- [x] **Histórico de Transações**: Visualização detalhada de todas as movimentações
+---
-### 🚀 Funcionalidades Futuras (Roadmap)
+## 🚀 **Demo ao Vivo**
-- [ ] **IA para Categorização**: Classificação automática de despesas
-- [ ] **Sugestões Inteligentes**: Recomendações personalizadas de economia
-- [ ] **Alertas Preditivos**: Notificações sobre gastos atípicos
-- [ ] **Entrada por Voz**: Lançamento de despesas via speech-to-text
-- [ ] **Leitura de QR Code**: Registro automático via códigos QR
-- [ ] **Relatórios Avançados**: Análises detalhadas com gráficos
-- [ ] **Integração Bancária**: Sincronização com contas bancárias
-- [ ] **App Mobile**: Aplicativo nativo para iOS e Android
+
+- 🌐 **Aplicação:** [Em breve]
+- 📚 **Documentação:** [FinBoost+ Docs](https://finboostplus.github.io/finboostplus-app/)
+- 🎥 **Video Demo:** [YouTube](link-do-video)
---
-## 🛠️ Tecnologias Utilizadas
-
-### 🔧 Backend
+## 🎯 **O que o FinBoost+ faz?**
-- **☕ Java 17+** - Linguagem principal
-- **🍃 Spring Boot 3.2+** - Framework web
-- **🔐 Spring Security** - Autenticação e autorização
-- **🗄️ PostgreSQL** - Banco de dados relacional
-- **🔄 JPA / Hibernate** - Mapeamento objeto-relacional
-- **🧪 JUnit 5 + Mockito** - Testes unitários e de integração
-- **📊 Spring Data JPA** - Acesso a dados simplificado
+### ✅ **Funcionalidades Principais**
-### 🎨 Frontend
+- 🔐 **Autenticação Segura** - Login e cadastro com JWT
+- 👥 **Grupos Financeiros** - Crie e gerencie grupos de gastos compartilhados
+- 💰 **Divisão Automática** - Divida despesas automaticamente entre membros
+- 📊 **Dashboard Inteligente** - Visualize gastos e estatísticas em tempo real
+- 💳 **Controle de Saldos** - Acompanhe quem deve para quem
+- 📱 **Interface Responsiva** - Funciona perfeitamente em qualquer dispositivo
-- **⚛️ React.js 18+** - Biblioteca de interface
-- **⚡ Vite** - Build tool e dev server
-- **🎨 TailwindCSS** - Framework CSS utilitário
-- **📡 Axios** - Cliente HTTP para requisições
-- **🔐 JWT** - Autenticação via tokens
-- **🧪 Jest + React Testing Library** - Testes de componentes
-- **📊 Recharts** - Gráficos e visualizações
-
-### 🚀 DevOps & Ferramentas
+---
-- **🐳 Docker** - Containerização
-- **🔧 Maven** - Gerenciamento de dependências (Backend)
-- **📦 npm** - Gerenciamento de pacotes (Frontend)
-- **🌐 GitHub Actions** - CI/CD
-- **📝 ESLint + Prettier** - Padronização de código
+## 🛠️ **Tecnologias**
+
+
+
+
🔙 Backend
+
🎨 Frontend
+
🗄️ Database
+
+
+
+• Java 21+
+• Spring Boot 3.5+
+• Spring Security
+• JPA/Hibernate
+• Maven
+
---
-## 📁 Estrutura do Repositório
+## 📁 **Estrutura do Projeto**
```
-| Caminho | Conteúdo |
-|-------------------|-----------------------------------------------------------------------|
-| `frontend/` | Aplicação React (interface) |
-| `backend/` | API REST em Spring Boot |
-| `docs/` | Documentação técnica do projeto em Markdown (usada com MkDocs) |
-| `project_docs/` | Documentos de planejamento, requisitos, MVPs, diagramas, atas, etc. |
-| `README.md` | Apresentação geral do projeto |
-
+finboost/
+├── 🎨 frontend/ # React App (Interface)
+├── 🔙 backend/ # Spring Boot API
+├── 📚 docs/ # MkDocs (Documentação técnica)
+├── 📋 project_docs/ # Planejamento e requisitos
+└── 🐳 docker-compose.yml # Ambiente completo
```
----
-
-## 🚀 Como Executar Localmente
+> 📖 **Documentação completa:** Acesse nossa [documentação técnica](https://finboostplus.github.io/finboostplus-app/) para detalhes de arquitetura, APIs e guias avançados.
-### 📋 Pré-requisitos
+---
-- **Node.js** 18+ e npm
-- **Java** 17+ e Maven
-- **PostgreSQL** 15+
-- **Docker** (opcional)
+## 🚀 **Como Executar**
-### 🔧 Configuração do Ambiente
+### 📋 **Pré-requisitos**
+- Node.js 18+ e npm
+- Java 21+ e Maven
+- PostgreSQL 15+ (ou Docker)
-1. **Clone o repositório**
+### ⚡ **Execução Rápida (Recomendado)**
```bash
-git clone https://github.com/sua-organizacao/controle-financeiro.git
-cd controle-financeiro
-```
-
-2. **Configure o banco de dados**
+# 1. Clone o projeto
+git clone https://github.com/Finboostplus/finboostplus-app.git
+cd finboostplus-app
-```bash
-# Crie um banco PostgreSQL
-createdb controle_financeiro
+# 2. Execute com Docker
+docker-compose up -d
-# Configure as variáveis de ambiente
-cp backend/src/main/resources/application.yml.example backend/src/main/resources/application.yml
+# 3. Acesse a aplicação
+# Frontend: http://localhost:5173
+# Backend: http://localhost:8080
```
-### 🔙 Executando o Backend
+### 🔧 **Execução Manual**
+
+
+Clique para ver instruções detalhadas
```bash
+# Backend
cd backend
-
-# Instale as dependências
./mvnw clean install
-
-# Execute a aplicação
./mvnw spring-boot:run
-# A API estará disponível em http://localhost:8080
-```
-
-### 🎨 Executando o Frontend
-
-```bash
-cd frontend
-
-# Instale as dependências
+# Frontend (novo terminal)
+cd frontend
npm install
-
-# Execute em modo de desenvolvimento
npm run dev
-
-# A aplicação estará disponível em http://localhost:5173
```
-### 🐳 Executando com Docker
-
+**Variáveis de ambiente:**
```bash
-# Execute todos os serviços
-docker-compose up -d
-
-# Para parar os serviços
-docker-compose down
+# backend/application.yml
+spring:
+ datasource:
+ url: jdbc:postgresql://localhost:5432/finboost
+ username: seu_usuario
+ password: sua_senha
```
----
-
-## 🧪 Testes
-
-### Backend
-
-```bash
-cd backend
-
-# Executar todos os testes
-./mvnw test
+
-# Executar testes com relatório de cobertura
-./mvnw test jacoco:report
-
-# Executar apenas testes unitários
-./mvnw test -Dtest="*UnitTest"
-
-# Executar apenas testes de integração
-./mvnw test -Dtest="*IntegrationTest"
-```
+---
-### Frontend
+## 🧪 **Testes**
```bash
-cd frontend
-
-# Executar todos os testes
-npm test
+# Backend
+cd backend && ./mvnw test
-# Executar testes com cobertura
-npm run test:coverage
+# Frontend
+cd frontend && npm test
-# Executar testes em modo watch
-npm run test:watch
+# Cobertura
+./mvnw test jacoco:report # Backend
+npm run test:coverage # Frontend
```
---
-## 📊 Métricas e Qualidade
-
-- **Cobertura de Testes**: Meta de 80%+
-- **Análise de Código**: SonarQube
-- **Performance**: Lighthouse Score 90+
-- **Acessibilidade**: WCAG 2.1 AA
+## 👥 **Nossa Equipe**
+
+
+
+
🏆 Gestão
+
🔙 Backend
+
🎨 Frontend
+
+
+
Alan
+
Bruno, Cristiano Eduardo, João Pedro, Alisson, Túlio
+
Cleiton, Hugo e Ana
+
+
---
-## 🤝 Como Contribuir
+## 🤝 **Como Contribuir**
-1. **Fork** este repositório
-2. Crie uma **branch** para sua feature (`git checkout -b feature/nova-funcionalidade`)
-3. **Commit** suas mudanças (`git commit -m 'Adiciona nova funcionalidade'`)
-4. **Push** para a branch (`git push origin feature/nova-funcionalidade`)
-5. Abra um **Pull Request**
+1. Fork o projeto
+2. Crie uma branch: `git checkout -b feature/nova-funcionalidade`
+3. Commit: `git commit -m 'feat: adiciona nova funcionalidade'`
+4. Push: `git push origin feature/nova-funcionalidade`
+5. Abra um Pull Request
-### 📝 Padrões de Commit
-
-- `feat:` Nova funcionalidade
-- `fix:` Correção de bug
-- `docs:` Documentação
-- `style:` Formatação de código
-- `refactor:` Refatoração
-- `test:` Testes
-- `chore:` Tarefas de manutenção
-
----
-
-## 👥 Equipe de Desenvolvimento
-
-| Área | Membros |
-| ------------------------ | ------------------------------------ |
-| **🏆 Gestão do Projeto** | Alan |
-| **🔧 Backend** | Bruno, Cristiano, Eduardo, João |
-| **🎨 Frontend** | Cleiton, Ana, Ellen, Mariana, Raquel |
+**Padrões de commit:** `feat:` `fix:` `docs:` `style:` `refactor:` `test:`
---
-## 🎓 Sobre o Projeto
+## 🎓 **Sobre o Projeto**
-Este projeto foi desenvolvido como trabalho final do curso **Desenvolvimento Full-Stack** da **Prati+**. O objetivo é demonstrar competências em:
+O **FinBoost+** foi desenvolvido como projeto final do curso **Desenvolvimento Full-Stack Jr** da **+Prati & Codifica**.
-- Desenvolvimento de APIs REST com Spring Boot
-- Criação de interfaces modernas com React
-- Implementação de autenticação e autorização
-- Trabalho em equipe e metodologias ágeis
-- Boas práticas de desenvolvimento e DevOps
+**Objetivos de aprendizado:**
+- ✅ APIs REST com Spring Boot
+- ✅ Interfaces modernas com React
+- ✅ Autenticação JWT
+- ✅ Trabalho em equipe (Metodologia Ágil)
+- ✅ DevOps e boas práticas
---
-## 📄 Licença
+## 📞 **Suporte**
-Este projeto é de **uso educacional**, desenvolvido no curso de **Desenvolvimento Full-Stack Jr – +Prati & Codifica**.
+- 🐛 **Bugs:** [Issues](https://github.com/Finboostplus/finboostplus-app/issues)
+- 📧 **Email:** finboostplus@gmail.com
---
-## 📬 Contato
-
-Para dúvidas, sugestões ou feedback:
+## 📄 **Licença**
-- 💬 **Discord**: [Link do servidor]
-- 🐛 **Issues**: [Reporte bugs aqui](https://github.com/Finboostplus/finboost/issues)
+Distribuído sob a **MPL-2.0**. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes.
---
- Desenvolvido com 💙 pelo Grupo 7 da Turma 2 do curso Desenvolvimento Full-Stack Jr – +Prati & Codifica
+ Desenvolvido com 💙 pelo Grupo 7 da Turma 2
+ +Prati & Codifica - 2025