Repositório de projetos e exercícios evoluindo de conceitos básicos até arquiteturas distribuídas.
- Estrutura do repositório
- Arquitetura por pasta
- Projetos
- Roadmap de conceitos
- Comandos
- Como rodar cada projeto
- Referências
| Pasta | Tipo | Arquitetura / Padrão | Descrição |
|---|---|---|---|
| JavaScript_Basico | Exercícios | HTML/JS básico | 8 aulas: variáveis, funções, DOM, eventos, condicionais, loops |
| JavaScript_Intermediario | Exercícios | HTML/JS intermediário | 8 aulas: objetos, arrays avançados, localStorage, módulos ES6 |
| JavaScript_Avancado | Exercícios | JS avançado + módulos | 15 aulas: promises, classes, prototypes, CRUD, async |
| Curso_TypeScript | Estudo | TypeScript | 5 aulas + projeto: tipos, generics, classes, decorators |
| Curso_API_REST_Express | API | Express monolítico | Primeiro CRUD com Express + SQLite + Swagger |
| Curso_API_REST_RepositoryPattern | API | Express + Repository + Service Layer | CRUD com separação de camadas |
| Projetos/E-Commerce | API | Monolith + Service Layer + JWT | E-commerce com produtos, categorias, pedidos |
| Projetos/School-Management | API multi-pacote | Clean Architecture + CQRS | Domain / Application / Infrastructure / API |
| Projetos/TaskFlow | API | DDD + CQRS + WebSocket | Task management com Socket.io e eventos |
| Projetos/ReservEasy | API | Vertical Slices | Reservas com features isoladas |
| Projetos/Notifica | Sistema distribuído | Multi-host + Mensageria | API + Worker + WS Consumer + Redis |
| Projetos/FinControl | API | Monolith + JWT + Docker | Controle financeiro com PostgreSQL |
| Projetos/Restaurant-System | API | Monolith + Service Layer | Gestão de restaurante (JS + TS) |
JavaScript_Basico / JavaScript_Intermediario — scripts educacionais
Aulas/
├── README.md → índice
├── Aula_N.md → teoria
Exercicios/
├── README.md
└── Exercicio_N/ → arquivos .html / .js
- Padrão: scripts educacionais em HTML/JS.
- Conceitos: sintaxe JS, DOM, eventos, funções, arrays, objetos, localStorage.
JavaScript_Avancado — módulos e projetos
Modulo_N/
├── Aula_N.md → teoria
Exercicios/
├── README.md
└── Modulo_N/
└── Aula_N/ → exercicios.js
- Padrão: módulos por área de conhecimento.
- Conceitos: promises, async/await, classes, prototypes, CRUD, padrões de design.
Curso_TypeScript — tipagem e produtividade
Aula_N/
├── README.md → teoria + exemplos
└── Exercicios/
└── exercicio.ts
- Padrão: aulas progressivas com TypeScript puro.
- Conceitos: tipos primitivos, generics, interfaces, classes, decorators, utility types.
Curso_API_REST_Express — Express monolítico
Routes → Controllers → SQLite via better-sqlite3
- Padrão: Express monolítico sem camadas.
- Entidades: Produto (CRUD básico).
Curso_API_REST_RepositoryPattern — Repository Pattern + Service Layer
Routes → Service (regras) → Repository → SQLite
- Padrão: Express + Repository Pattern + Service Layer.
- Entidades: Author, Book.
Projetos/E-Commerce — API completa com Controllers
Controllers → Service → Repository → SQLite
- Padrão: API tradicional com Controllers.
- Entidades: Product, Category, Order, OrderItem.
Projetos/School-Management — Clean Architecture + CQRS
API (Controllers)
↓
Application (Commands / Queries / Handlers)
↓ interfaces
Domain (Entities)
↓ implementação
Infrastructure (DbContext, Migrations)
- Padrão: Clean Architecture + CQRS.
- Pacotes:
domain,application,infrastructure,api. - Entidades: Student, Course, Enrollment.
Projetos/TaskFlow — DDD + CQRS + WebSocket
API → Application (CQRS) → Domain → Infrastructure
↕
Socket.io (tempo real)
- Padrão: Domain-Driven Design + CQRS + WebSocket (Socket.io).
- Entidades: Board, Task, User, Workspace, Comment, Tag.
Projetos/ReservEasy — Vertical Slices
Features/ ← Vertical Slices
├── Properties/
├── Guests/
├── Bookings/
└── Payments/
├── *Controller.js
├── *Service.js
└── *Validator.js
Domain/ → Entities, Enums
Data/ → DbContext
Common/ → Middleware, Errors
- Padrão: Vertical Slice Architecture.
- Entidades: Property, Guest, Booking, Payment.
Projetos/Notifica — Multi-host distribuído
packages/
├── domain → Entities, Interfaces
├── application → Services, DTOs
├── infrastructure → Redis, RabbitMQ, Repositories
apps/
├── api → REST + WebSocket
├── worker → Consumer de filas
└── ws-consumer → WebSocket consumer dedicado
- Padrão: Multi-host distribuído (monorepo).
- Infra: Redis, RabbitMQ via
docker-compose.yml.
Projetos/FinControl — Monolith + JWT + Docker
Controllers → AuthService / ExpenseService → AppDbContext → PostgreSQL
- Padrão: monolito com Service Layer + JWT + Health Checks.
- Testes:
FinControl.Tests(Jest). - Deploy: Dockerfile + docker-compose.
Projetos/Restaurant-System — Monolith com 9 entidades
Controllers → AuthService / TableService / MenuService / OrderService / PaymentService / ReservationService → AppDbContext → SQLite
- Padrão: monolito com Service Layer + JWT.
- Linguagens: versão JS + versão TS para comparação.
- Entidades: 9 (User, Table, Category, MenuItem, Order, OrderItem, Payment, PaymentMethod, Reservation).
| # | Projeto | Arquitetura | Entidades | Destaque |
|---|---|---|---|---|
| 1 | Curso_API_REST_Express | Express monolítico | Produto | Primeiro contato com Express + SQLite |
| 2 | Curso_API_REST_RepositoryPattern | Express + Repository + Service | Author, Book | Repository Pattern, Service Layer |
| 3 | E-Commerce | Monolith + Service Layer | Product, Category, Order, OrderItem | Controllers, enums, estoque |
| 4 | School-Management | Clean Architecture + CQRS | Student, Course, Enrollment | Multi-pacote, CQRS |
| 5 | TaskFlow | DDD + CQRS + WebSocket | Board, Task, User, Workspace | Socket.io em tempo real |
| 6 | ReservEasy | Vertical Slices | Property, Guest, Booking, Payment | Features isoladas |
| 7 | Notifica | Multi-host + Mensageria | User, Notification, Message | Redis, RabbitMQ, Worker |
| 8 | FinControl | Monolith + JWT + Docker | User, Expense | PostgreSQL, Docker, testes |
| 9 | Restaurant-System | Monolith + Service Layer | User, Table, MenuItem, Order, Payment, Reservation | 9 entidades, JS + TS |
HTML/JS Básico
→ JS Intermediário (objetos, arrays, localStorage)
→ JS Avançado (promises, classes, padrões)
→ TypeScript (tipos, generics, decorators)
→ Express API básica
→ Repository Pattern + Service Layer
→ Monolith + Controllers
→ Clean Architecture + CQRS
→ DDD + WebSocket
→ Vertical Slices
→ Sistema distribuído (API + Worker + Mensageria)
Cada projeto adiciona uma camada nova em relação ao anterior, evoluindo de exercícios simples até arquiteturas modulares e orientadas a eventos.
node --version
npm --version
npx ts-node --version # TypeScriptnpm install
npm run dev # nodemon / ts-node-dev
npm start
npm testnpx tsc --init
npx tsc --noEmit # type checking sem gerar JS
npx ts-node src/index.tsnpm init -y
npm install express better-sqlite3
npm install -D typescript @types/node @types/expressnpm test
npm run test:watch
npx jest --coveragedocker compose up -d
docker compose downExercícios — JavaScript_Basico / JavaScript_Intermediario
Os exercícios são arquivos .html ou .js isolados. Para executar:
# HTML: abrir no navegador
start Exercicios/Exercicio_1_Primeiros_Testes/index.html
# JS: executar com Node
node Exercicios/Aula_1_Objetos/exercicio.jsJavaScript_Avancado
cd JavaScript_Avancado
node Exercicios/Modulo_1/Aula_1_Promises_Async_Await/exercicio.jsCurso_TypeScript
cd Curso_TypeScript
npx ts-node Aula_1_Fundamentos/Exercicios/exercicio.tsCurso_API_REST_Express
cd Curso_API_REST_Express
npm install
npm run dev
# Swagger: http://localhost:3000/api-docsCurso_API_REST_RepositoryPattern
cd Curso_API_REST_RepositoryPattern
npm install
npm run devE-Commerce
cd Projetos/E-Commerce
npm install
npm run devSchool-Management
cd Projetos/School-Management
npm install
npm run dev --workspace=apiTaskFlow
cd Projetos/TaskFlow
npm install
npm run devReservEasy
cd Projetos/ReservEasy
npm install
npm run devNotifica — requer Docker
cd Projetos/Notifica
docker compose up -d # Redis, RabbitMQ
npm run dev --workspace=apps/api
npm run dev --workspace=apps/worker
npm run dev --workspace=apps/ws-consumerFinControl
cd Projetos/FinControl
npm install
# Com Docker (PostgreSQL incluso)
docker compose up --build
# Ou sem Docker (SQLite)
npm run devRestaurant-System
cd Projetos/Restaurant-System
# Versão JavaScript
cd rest-system-js
npm install
npm run dev
# Versão TypeScript
cd rest-system-ts
npm install
npm run dev| Documentação | Link |
|---|---|
| JavaScript (MDN) | developer.mozilla.org/pt-BR/docs/Web/JavaScript |
| TypeScript | www.typescriptlang.org/docs/ |
| Node.js | nodejs.org/docs/latest/api/ |
| Express | expressjs.com/ |
| better-sqlite3 | github.com/WiseLibs/better-sqlite3 |
Evoluindo de console.log até sistemas distribuídos com filas, WebSockets e containers.