Sistema bancário acadêmico desenvolvido para o curso de Tecnologia em Análise e Desenvolvimento de Sistemas (TADS).
Repositório monorepo em estágio inicial — contém o frontend como submódulo Git, placeholder de banco de dados e docker-compose para ambiente de desenvolvimento.
- Sobre
- Tecnologias
- Estrutura do Repositório
- Pré-requisitos
- Como Começar
- Scripts
- Banco de Dados
- Docker
- VS Code
- Padrões e Regras
- Branches e Contribuição
- Membros
- Licença
O Bantads é um projeto acadêmico com objetivo de simular operações de um sistema bancário. O repositório atual funciona como orquestrador do projeto:
- Frontend isolado em submódulo (
bantads-frontend) — permite versionamento independente e integração contínua separada. - Banco de dados via
database/init.sql(a ser definido). - Infra local via
docker-compose-dev.yml(a ser definido).
Status: scaffold inicial.
database/init.sql,docker-compose-dev.ymle.github/regras.mdestão vazios e serão preenchidos ao longo do desenvolvimento.
| Camada | Tecnologia | Versão | Descrição |
|---|---|---|---|
| Framework | AnalogJS | ^0.2.0 |
Meta-framework fullstack para Angular (file-based routing, Vite, SSR) |
| UI | Angular | ^17.2.0 |
Standalone Components, Router |
| Build | Vite + Nx | ~5.0.0 / ~18.0.0 |
Dev server HMR, build otimizado |
| Estilo | Tailwind CSS | ^3.3.1 |
Utility-first + postcss / autoprefixer |
| Testes | Vitest + jsdom |
~1.2.0 |
globals: true, setupFiles: src/test.ts |
| Conteúdo | @analogjs/content, marked, mermaid, prismjs |
— | Renderização de markdown/diagramas |
| Pacotes | pnpm | 8+ |
Gerenciador (há pnpm-lock.yaml no submodule) |
| Infra | Docker / Docker Compose | — | Ambiente de desenvolvimento (WIP) |
Requisitos do package.json do frontend: Node >= 18.13.0.
bantads/
├── bantads-frontend/ # SUBMÓDULO Git -> Analog + Angular 17 (porta 5173)
│ ├── src/
│ │ ├── app/
│ │ │ ├── app.component.ts
│ │ │ ├── app.config.ts / app.config.server.ts
│ │ │ └── pages/index.page.ts # file-based routing ("/" -> index.page.ts)
│ │ ├── server/routes/v1/hello.ts # API route Analog (SSR)
│ │ ├── main.ts / main.server.ts
│ │ └── styles.css # Tailwind entry
│ ├── angular.json # builder @analogjs/platform:vite
│ ├── vite.config.ts # plugins: [analog()], test: vitest/jsdom
│ ├── tailwind.config.js / postcss.config.js
│ ├── index.html
│ └── package.json
├── database/
│ └── init.sql # placeholder - script de inicialização do BD
├── docker-compose-dev.yml # placeholder - compose para ambiente dev
├── .github/
│ └── regras.md # placeholder - regras de contribuição
├── .vscode/
│ ├── extensions.json # recomenda angular.ng-template
│ ├── launch.json # ng serve (chrome) + ng test
│ └── tasks.json # npm:start / npm:test (background)
└── README.md
bantads-frontendé registrado como160000 commit(gitlink) emHEAD. Localmente o diretório aparece vazio até inicializar o submódulo.
- Git
>= 2.13(suporte a--recurse-submodules) - Node.js
>= 18.13.0(verpackage.json#engines) - pnpm
>= 8— instale comnpm i -g pnpmoucorepack enable - Docker + Docker Compose (opcional, para quando
docker-compose-dev.ymlfor preenchido) - VS Code recomendado (para
launch.json/tasks.json)
Verifique:
node -v # >= v18.13.0
pnpm -v
git --version
docker --versionClone novo (recomendado):
git clone --recurse-submodules https://github.com/Rath-github/bantads.git
cd bantadsJá clonou e bantads-frontend/ está vazio?
git submodule update --init --recursiveVerificação:
git submodule status
# deve exibir algo como: 9a869c5... bantads-frontend (heads/...)
ls bantads-frontend # deve listar package.json, src/, vite.config.ts etc.cd bantads-frontend
pnpm install # ou npm install / yarn, mas prefira pnpm (há pnpm-lock.yaml)
# desenvolvimento (HMR)
pnpm dev # alias para pnpm start -> ng serve
# ou
pnpm start
# abrir http://localhost:5173
angular.jsondefineserve.port: 5173evite.config.tsusapublicDir: src/assets. Olaunch.jsonesperahttp://localhost:5173/para debug com Chrome.
Quando alguém atualiza o ponteiro do frontend em main:
git pull
git submodule update --remote --merge
# ou
git submodule update --init --recursiveDentro de bantads-frontend/ (package.json#scripts):
| Comando | Descrição |
|---|---|
pnpm dev / pnpm start |
ng serve — dev server Vite + Analog (HMR) em http://localhost:5173 |
pnpm build |
ng build — build cliente (dist/client) + SSR |
pnpm watch |
ng build --watch |
pnpm test |
ng test — Vitest (jsdom, globals, src/test.ts) |
pnpm ng |
Acesso direto ao Angular CLI |
Build de produção:
pnpm build
# cliente: dist/client (ou dist/analog/public conforme versão Analog)
# server: dist/analog/serverTestes:
pnpm test # watch mode
pnpm test -- --run # run únicodatabase/init.sql está reservado para o script de inicialização do banco (DDL + seed).
Uso esperado com Docker (quando docker-compose-dev.yml for configurado):
# exemplo futuro
# volumes:
# - ./database/init.sql:/docker-entrypoint-initdb.d/init.sqlPor enquanto o arquivo está vazio — WIP. Ao definir o SGBD (Postgres/MySQL), documente aqui porta, credenciais de dev e como rodar migrations.
docker-compose-dev.yml está vazio (WIP). Uso previsto:
docker compose -f docker-compose-dev.yml up -d
docker compose -f docker-compose-dev.yml logs -f
docker compose -f docker-compose-dev.yml downQuando preenchido, deve orquestrar DB + (opcionalmente) frontend. Mantenha variáveis sensíveis em .env (não versionado).
O repositório já traz configuração pronta:
- Extensão recomendada (
extensions.json):angular.ng-template— syntax highlight e language service para Angular. - Tasks (
tasks.json):npm: startenpm: testcomo background tasks comproblemMatcher: $tsc(esperabundle generation complete). - Debug (
launch.json):ng serve— lança Chrome emhttp://localhost:5173/compreLaunchTask: npm: startng test— lança Chrome compreLaunchTask: npm: test
Pressione F5 e selecione a configuração desejada. Certifique-se de ter pnpm/npm e dependências instaladas antes.
.github/regras.md— placeholder para convenções de branch, commits (ex.: Conventional Commits), PR e code review. Defina antes do desenvolvimento em equipe..editorconfige.vscode/settings.json(quando existir) — padronização de formatação.angular.jsonusa builder@analogjs/platform:vite— evite trocar para@angular-devkit/build-angularsem alinhar com o time, pois quebra file-based routing e SSR do Analog.
Sugestão de fluxo (a confirmar em regras.md):
main— branch estávelThiago/Igor— branches de desenvolvimento ativas (visíveis emorigin/)- Feature branches:
feat/<nome>a partir demain, PR paramain
# criar feature
git checkout main
git pull --recurse-submodules
git checkout -b feat/minha-feature
# ... commits ...
git push -u origin feat/minha-feature
# abrir PR no GitHub para mainAo alterar o frontend, lembre-se que ele é um submódulo:
cd bantads-frontend
git checkout -b feat/ui-x
# ... commits no submodule ...
git push
cd ..
git add bantads-frontend # atualiza o ponteiro do submódulo
git commit -m "chore: bump bantads-frontend"
git push| Problema | Solução |
|---|---|
bantads-frontend vazio após clone |
git submodule update --init --recursive |
pnpm: command not found |
npm i -g pnpm ou corepack enable && corepack prepare pnpm@latest --activate |
Port 5173 in use |
lsof -i :5173 / `netstat -ano |
ERRO Node version |
Atualize para >=18.13.0 (nvm use 18 / nvm install 18) |
| Submódulo em detached HEAD | cd bantads-frontend && git checkout main && git pull |
- Igor
- Lucas
- Matheus
- Renan
- Thiago
- Vitor
Não definida. Adicione uma licença (ex.: MIT) se o projeto for público, ou mantenha privado para uso acadêmico.
Dúvidas sobre o frontend Analog? Veja analogjs.org, Angular docs e o
README.mdoriginal do template Analog dentro debantads-frontendapós inicializar o submódulo.