mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-16 13:27:52 +00:00
docs: Adicionando documentação no projeto
This commit is contained in:
parent
d35565dee4
commit
bc2f120700
248
docs/arquitetura.md
Normal file
248
docs/arquitetura.md
Normal file
@ -0,0 +1,248 @@
|
||||
# Arquitetura do Sistema
|
||||
|
||||
## Visão Geral
|
||||
|
||||
A plataforma é construída usando uma arquitetura moderna e escalável, focada em proporcionar uma experiência educacional interativa e segura para crianças.
|
||||
|
||||
## Stack Tecnológica
|
||||
|
||||
### Frontend
|
||||
- Next.js 14 (App Router)
|
||||
- TypeScript
|
||||
- Tailwind CSS
|
||||
- Framer Motion
|
||||
- React Query
|
||||
|
||||
### Backend
|
||||
- Node.js
|
||||
- Supabase
|
||||
- Redis Upstash (cache)
|
||||
- Supabase Storage (mídia)
|
||||
|
||||
## Estrutura de Diretórios
|
||||
|
||||
```
|
||||
src/
|
||||
├── app/ # Rotas e páginas
|
||||
├── components/ # Componentes React
|
||||
│ ├── ui/ # Componentes base
|
||||
│ ├── forms/ # Formulários
|
||||
│ └── exercises/ # Componentes de exercícios
|
||||
├── features/ # Features do sistema
|
||||
├── layouts/ # Layouts do sistema
|
||||
├── constants/ # Constantes do sistema
|
||||
├── lib/ # Utilitários e configurações
|
||||
├── hooks/ # Hooks personalizados
|
||||
├── services/ # Serviços externos
|
||||
└── types/ # Definições de tipos
|
||||
```
|
||||
|
||||
## Componentes Principais
|
||||
|
||||
### 1. Sistema de Autenticação
|
||||
```typescript
|
||||
interface AuthConfig {
|
||||
providers: {
|
||||
google: boolean;
|
||||
email: boolean;
|
||||
};
|
||||
session: {
|
||||
maxAge: number;
|
||||
updateAge: number;
|
||||
};
|
||||
security: {
|
||||
jwtSecret: string;
|
||||
cookiePrefix: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Gerenciamento de Estado
|
||||
```typescript
|
||||
interface AppState {
|
||||
user: UserState;
|
||||
exercises: ExerciseState;
|
||||
progress: ProgressState;
|
||||
settings: SettingsState;
|
||||
}
|
||||
```
|
||||
|
||||
## Segurança
|
||||
|
||||
### 1. Autenticação
|
||||
- JWT tokens
|
||||
- Refresh tokens
|
||||
- Sessões seguras
|
||||
- Rate limiting
|
||||
|
||||
### 2. Dados
|
||||
- Criptografia em trânsito
|
||||
- Backup automático
|
||||
- Sanitização de inputs
|
||||
- Logs de auditoria
|
||||
|
||||
## Performance
|
||||
|
||||
### 1. Otimizações
|
||||
- Lazy loading
|
||||
- Code splitting
|
||||
- Caching estratégico
|
||||
- Compressão de assets
|
||||
|
||||
### 2. Monitoramento
|
||||
- Métricas de tempo real
|
||||
- Alertas automáticos
|
||||
- Análise de performance
|
||||
- Debug em produção
|
||||
|
||||
## Integração Contínua
|
||||
|
||||
### 1. Pipeline
|
||||
```yaml
|
||||
steps:
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
|
||||
- name: Type Check
|
||||
run: yarn tsc
|
||||
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
- name: Deploy
|
||||
if: branch = main
|
||||
run: yarn deploy
|
||||
```
|
||||
|
||||
### 2. Qualidade de Código
|
||||
- ESLint
|
||||
- Prettier
|
||||
- Jest
|
||||
- Cypress
|
||||
|
||||
## Escalabilidade
|
||||
|
||||
### 1. Infraestrutura
|
||||
- Containers Docker
|
||||
- Load balancing
|
||||
- Auto-scaling
|
||||
- CDN global
|
||||
|
||||
### 2. Database
|
||||
- Sharding
|
||||
- Replicação
|
||||
- Índices otimizados
|
||||
- Migrations automáticas
|
||||
|
||||
## APIs e Integrações
|
||||
|
||||
### 1. REST APIs
|
||||
```typescript
|
||||
interface APIEndpoints {
|
||||
auth: {
|
||||
login: string;
|
||||
register: string;
|
||||
refresh: string;
|
||||
};
|
||||
exercises: {
|
||||
list: string;
|
||||
submit: string;
|
||||
progress: string;
|
||||
};
|
||||
content: {
|
||||
stories: string;
|
||||
media: string;
|
||||
exercises: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### 2. WebSockets
|
||||
- Chat em tempo real
|
||||
- Notificações
|
||||
- Multiplayer
|
||||
- Status online
|
||||
|
||||
## Acessibilidade e SEO
|
||||
|
||||
### 1. Acessibilidade
|
||||
- WCAG 2.1
|
||||
- ARIA labels
|
||||
- Keyboard navigation
|
||||
- Screen readers
|
||||
|
||||
### 2. SEO
|
||||
- Meta tags
|
||||
- Sitemap
|
||||
- Robots.txt
|
||||
- Schema.org
|
||||
|
||||
## Ambiente de Desenvolvimento
|
||||
|
||||
### 1. Setup
|
||||
```bash
|
||||
# Instalação
|
||||
yarn install
|
||||
|
||||
# Desenvolvimento
|
||||
yarn dev
|
||||
|
||||
# Testes
|
||||
yarn test
|
||||
|
||||
# Build
|
||||
yarn build
|
||||
```
|
||||
|
||||
### 2. Ferramentas
|
||||
- VSCode
|
||||
- Docker
|
||||
- Postman
|
||||
- Git
|
||||
|
||||
## Monitoramento e Logs
|
||||
|
||||
### 1. Métricas
|
||||
```typescript
|
||||
interface SystemMetrics {
|
||||
performance: {
|
||||
responseTime: number;
|
||||
errorRate: number;
|
||||
userCount: number;
|
||||
};
|
||||
resources: {
|
||||
cpuUsage: number;
|
||||
memoryUsage: number;
|
||||
diskSpace: number;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Logs
|
||||
- Error tracking
|
||||
- User actions
|
||||
- Performance
|
||||
- Security events
|
||||
|
||||
## Próximos Passos
|
||||
|
||||
1. **Microserviços**
|
||||
- Auth service
|
||||
- Content service
|
||||
- Analytics service
|
||||
- Notification service
|
||||
|
||||
2. **Machine Learning**
|
||||
- Recomendações
|
||||
- Análise de progresso
|
||||
- Detecção de padrões
|
||||
- Personalização
|
||||
|
||||
3. **Mobile**
|
||||
- PWA
|
||||
- App nativo
|
||||
- Offline mode
|
||||
- Push notifications
|
||||
246
docs/desenvolvimento.md
Normal file
246
docs/desenvolvimento.md
Normal file
@ -0,0 +1,246 @@
|
||||
# Fluxo de Desenvolvimento
|
||||
|
||||
## Padrões de Código
|
||||
|
||||
### 1. Nomenclatura
|
||||
- Diretórios em kebab-case: `components/form-wizard`
|
||||
- Componentes em PascalCase: `StoryCard.tsx`
|
||||
- Utilitários em camelCase: `formatText.ts`
|
||||
- Variáveis em camelCase: `userScore`
|
||||
|
||||
### 2. TypeScript
|
||||
- Preferir interfaces sobre types
|
||||
- Usar const com asserção `as const`
|
||||
- Retornos explícitos em funções
|
||||
- Imports relativos
|
||||
|
||||
## Estrutura de Commits
|
||||
|
||||
### 1. Prefixos
|
||||
- `fix:` Correções de bugs
|
||||
- `feat:` Novos recursos
|
||||
- `perf:` Melhorias de performance
|
||||
- `docs:` Documentação
|
||||
- `style:` Formatação
|
||||
- `refactor:` Refatoração
|
||||
- `test:` Testes
|
||||
- `chore:` Manutenção
|
||||
|
||||
### 2. Formato
|
||||
```
|
||||
<tipo>: <descrição>
|
||||
|
||||
[corpo]
|
||||
|
||||
[rodapé]
|
||||
```
|
||||
|
||||
## Fluxo de Branches
|
||||
|
||||
### 1. Principais
|
||||
- `main`: Produção
|
||||
- `develop`: Desenvolvimento
|
||||
- `staging`: Homologação
|
||||
|
||||
### 2. Features
|
||||
```bash
|
||||
# Nova feature
|
||||
git checkout -b feature/nome-da-feature
|
||||
|
||||
# Commit das mudanças
|
||||
git commit -m "feat: adiciona novo componente"
|
||||
|
||||
# Push para remote
|
||||
git push origin feature/nome-da-feature
|
||||
```
|
||||
|
||||
## Code Review
|
||||
|
||||
### 1. Checklist
|
||||
- Código limpo e legível
|
||||
- Testes adequados
|
||||
- Documentação atualizada
|
||||
- Performance otimizada
|
||||
- Segurança verificada
|
||||
|
||||
### 2. Pull Request
|
||||
```markdown
|
||||
## Descrição
|
||||
Breve descrição das mudanças
|
||||
|
||||
## Mudanças
|
||||
- [ ] Item 1
|
||||
- [ ] Item 2
|
||||
|
||||
## Screenshots
|
||||
[Se aplicável]
|
||||
|
||||
## Testes
|
||||
- [ ] Unitários
|
||||
- [ ] Integração
|
||||
- [ ] E2E
|
||||
```
|
||||
|
||||
## Testes
|
||||
|
||||
### 1. Unitários
|
||||
```typescript
|
||||
describe('StoryComponent', () => {
|
||||
it('deve renderizar corretamente', () => {
|
||||
const { getByText } = render(<Story />);
|
||||
expect(getByText('Título')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
### 2. Integração
|
||||
```typescript
|
||||
describe('ExerciseFlow', () => {
|
||||
it('deve completar exercício', async () => {
|
||||
const result = await completeExercise({
|
||||
type: 'word-formation',
|
||||
answer: 'casa'
|
||||
});
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
## Documentação
|
||||
|
||||
### 1. Código
|
||||
```typescript
|
||||
/**
|
||||
* Componente de exercício de formação de palavras
|
||||
* @param {WordFormationProps} props - Propriedades do componente
|
||||
* @returns {JSX.Element} Componente renderizado
|
||||
*/
|
||||
export const WordFormation: React.FC<WordFormationProps> = ({
|
||||
word,
|
||||
syllables,
|
||||
onComplete
|
||||
}) => {
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
### 2. README
|
||||
- Setup do projeto
|
||||
- Comandos disponíveis
|
||||
- Estrutura de arquivos
|
||||
- Contribuição
|
||||
- Licença
|
||||
|
||||
## Segurança
|
||||
|
||||
### 1. Checklist
|
||||
- Validação de inputs
|
||||
- Sanitização de dados
|
||||
- Proteção contra XSS
|
||||
- Autenticação segura
|
||||
|
||||
### 2. Revisão
|
||||
```typescript
|
||||
// ❌ Inseguro
|
||||
const query = `SELECT * FROM users WHERE id = ${id}`;
|
||||
|
||||
// ✅ Seguro
|
||||
const query = 'SELECT * FROM users WHERE id = $1';
|
||||
const values = [id];
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
### 1. Frontend
|
||||
- Lazy loading
|
||||
- Memoização
|
||||
- Bundle splitting
|
||||
- Image optimization
|
||||
|
||||
### 2. Backend
|
||||
- Caching
|
||||
- Query optimization
|
||||
- Connection pooling
|
||||
- Rate limiting
|
||||
|
||||
## Deploy
|
||||
|
||||
### 1. Staging
|
||||
```bash
|
||||
# Build
|
||||
yarn build
|
||||
|
||||
# Testes
|
||||
yarn test
|
||||
|
||||
# Deploy staging
|
||||
yarn deploy:staging
|
||||
```
|
||||
|
||||
### 2. Produção
|
||||
```bash
|
||||
# Merge para main
|
||||
git checkout main
|
||||
git merge develop
|
||||
|
||||
# Deploy produção
|
||||
yarn deploy:prod
|
||||
```
|
||||
|
||||
## Monitoramento
|
||||
|
||||
### 1. Métricas
|
||||
- Tempo de resposta
|
||||
- Taxa de erro
|
||||
- Uso de recursos
|
||||
- Satisfação do usuário
|
||||
|
||||
### 2. Logs
|
||||
```typescript
|
||||
logger.info('Exercício completado', {
|
||||
userId: user.id,
|
||||
exerciseId: exercise.id,
|
||||
score: result.score,
|
||||
timeSpent: result.time
|
||||
});
|
||||
```
|
||||
|
||||
## Manutenção
|
||||
|
||||
### 1. Dependências
|
||||
```bash
|
||||
# Atualizar deps
|
||||
yarn upgrade-interactive --latest
|
||||
|
||||
# Auditar segurança
|
||||
yarn audit
|
||||
|
||||
# Limpar cache
|
||||
yarn cache clean
|
||||
```
|
||||
|
||||
### 2. Backup
|
||||
- Database dumps
|
||||
- Logs históricos
|
||||
- Configurações
|
||||
- Assets
|
||||
|
||||
## Contribuição
|
||||
|
||||
### 1. Setup
|
||||
```bash
|
||||
# Clone
|
||||
git clone https://github.com/org/repo.git
|
||||
|
||||
# Install
|
||||
yarn install
|
||||
|
||||
# Dev
|
||||
yarn dev
|
||||
```
|
||||
|
||||
### 2. Guidelines
|
||||
- Código limpo
|
||||
- Testes completos
|
||||
- Documentação clara
|
||||
- Pull requests concisos
|
||||
177
docs/exercicios.md
Normal file
177
docs/exercicios.md
Normal file
@ -0,0 +1,177 @@
|
||||
# Sistema de Exercícios
|
||||
|
||||
## Visão Geral
|
||||
O sistema de exercícios oferece diferentes tipos de atividades para reforçar o aprendizado da leitura e compreensão textual.
|
||||
|
||||
## Tipos de Exercícios
|
||||
|
||||
### 1. Formação de Palavras
|
||||
```typescript
|
||||
interface WordFormationExercise {
|
||||
word: string;
|
||||
syllables: string[];
|
||||
hints?: string[];
|
||||
difficulty: 'easy' | 'medium' | 'hard';
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Completar Sentenças
|
||||
```typescript
|
||||
interface SentenceCompletionExercise {
|
||||
sentence: string;
|
||||
options: string[];
|
||||
correctAnswer: string;
|
||||
context: string;
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Prática de Pronúncia
|
||||
```typescript
|
||||
interface PronunciationExercise {
|
||||
word: string;
|
||||
phonemes: string[];
|
||||
audioUrl?: string;
|
||||
examples: string[];
|
||||
}
|
||||
```
|
||||
|
||||
## Fluxo de Exercícios
|
||||
|
||||
### 1. Seleção
|
||||
- Baseada no nível do aluno
|
||||
- Progressão gradual
|
||||
- Adaptação por desempenho
|
||||
- Variedade de tipos
|
||||
|
||||
### 2. Execução
|
||||
- Instruções claras
|
||||
- Feedback imediato
|
||||
- Dicas contextuais
|
||||
- Suporte visual
|
||||
|
||||
### 3. Avaliação
|
||||
- Pontuação automática
|
||||
- Feedback detalhado
|
||||
- Sugestões de melhoria
|
||||
- Registro de progresso
|
||||
|
||||
## Componentes Principais
|
||||
|
||||
### 1. ExercisePlayer
|
||||
- Controle de fluxo
|
||||
- Timer integrado
|
||||
- Sistema de pontuação
|
||||
- Feedback visual
|
||||
|
||||
### 2. ExerciseFactory
|
||||
- Criação dinâmica
|
||||
- Validação de respostas
|
||||
- Adaptação de dificuldade
|
||||
- Geração de feedback
|
||||
|
||||
## Integração com Banco de Dados
|
||||
|
||||
### 1. Tabelas Relacionadas
|
||||
```sql
|
||||
-- Exercícios
|
||||
create table exercises (
|
||||
id uuid primary key,
|
||||
type text,
|
||||
difficulty text,
|
||||
content jsonb,
|
||||
created_at timestamptz
|
||||
);
|
||||
|
||||
-- Progresso
|
||||
create table exercise_progress (
|
||||
student_id uuid,
|
||||
exercise_id uuid,
|
||||
score numeric,
|
||||
completed_at timestamptz
|
||||
);
|
||||
```
|
||||
|
||||
### 2. Métricas Armazenadas
|
||||
- Tempo de conclusão
|
||||
- Taxa de acerto
|
||||
- Tentativas realizadas
|
||||
- Padrões de erro
|
||||
|
||||
## Acessibilidade
|
||||
|
||||
### 1. Visual
|
||||
- Alto contraste
|
||||
- Fontes ajustáveis
|
||||
- Ícones intuitivos
|
||||
- Animações suaves
|
||||
|
||||
### 2. Auditiva
|
||||
- Instruções em áudio
|
||||
- Feedback sonoro
|
||||
- Controle de volume
|
||||
- Legendas
|
||||
|
||||
### 3. Motora
|
||||
- Controles simplificados
|
||||
- Atalhos de teclado
|
||||
- Tempo ajustável
|
||||
- Pausas automáticas
|
||||
|
||||
## Gamificação
|
||||
|
||||
### 1. Sistema de Pontos
|
||||
- Pontuação base
|
||||
- Bônus por velocidade
|
||||
- Combos de acertos
|
||||
- Conquistas especiais
|
||||
|
||||
### 2. Progressão
|
||||
- Níveis de dificuldade
|
||||
- Desbloqueio gradual
|
||||
- Medalhas e troféus
|
||||
- Rankings opcionais
|
||||
|
||||
### 3. Recompensas
|
||||
- Novos conteúdos
|
||||
- Personalização
|
||||
- Badges especiais
|
||||
- Poder de escolha
|
||||
|
||||
## Monitoramento
|
||||
|
||||
### 1. Métricas Coletadas
|
||||
```typescript
|
||||
interface ExerciseMetrics {
|
||||
timeSpent: number;
|
||||
correctAnswers: number;
|
||||
totalAttempts: number;
|
||||
hintsUsed: number;
|
||||
score: number;
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Análise de Desempenho
|
||||
- Padrões de erro
|
||||
- Tempo de resposta
|
||||
- Uso de dicas
|
||||
- Evolução temporal
|
||||
|
||||
## Próximas Melhorias
|
||||
|
||||
1. **Novos Tipos**
|
||||
- Exercícios de ritmo
|
||||
- Compreensão auditiva
|
||||
- Produção textual
|
||||
- Jogos educativos
|
||||
|
||||
2. **Personalização**
|
||||
- Temas customizados
|
||||
- Níveis adaptativos
|
||||
- Conteúdo dinâmico
|
||||
- Preferências salvas
|
||||
|
||||
3. **Interatividade**
|
||||
- Multiplayer
|
||||
- Desafios em grupo
|
||||
- Compartilhamento
|
||||
- Competições
|
||||
Loading…
Reference in New Issue
Block a user