Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T taskee_wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Taskee
  • taskee_wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Create Arquitetura authored Sep 11, 2025 by Marina Geller Yamaguti's avatar Marina Geller Yamaguti
Hide whitespace changes
Inline Side-by-side
Arquitetura.md 0 → 100644
View page @ ac2caa4e
# Arquitetura do Sistema
## Descrição
Esta seção apresenta a arquitetura definida para o **Taskee**, contemplando tanto o **Frontend** quanto o **Backend**.
Nosso objetivo é garantir uma separação clara de responsabilidades, escalabilidade e facilidade de manutenção.
A aplicação segue um modelo **Client-Server**, onde o **Frontend Web** (React + TypeScript) se comunica com a **API Backend** (Python) utilisando o **Firebase**.
---
## Sumário
- [Arquitetura do Sistema](#arquitetura-do-sistema)
- [Frontend Web](#frontend-web)
- [Definições de Tecnologias](#front-end-def-tec)
- [Módulos](#front-end-modules)
- [Frontend Mobile](#frontend-mobile)
- [Definições de Tecnologias](#front-endmobile--def-tec)
- [Backend](#backend)
- [Definições de Tecnologias](#back-end-def-tec)
- [Camadas e Fluxo](#back-end-camadas)
- [Integração Frontend + Backend](#integração-frontend--backend)
---
## Frontend Web
<h3 id="front-end-def-tec">Definições de Tecnologias</h3>
- Linguagem: **TypeScript** <img src="https://www.svgrepo.com/show/374144/typescript.svg" width="15">
- Biblioteca: **React** <img src="https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg" width="15">
- Bundler: **Vite** ⚡
- Estilização: **TailwindCSS** e **Design System próprio**
- Gerenciamento de estado/queries: **TanStack Query (React Query)**
- Autenticação: **Firebase Auth**
O Frontend é uma SPA (Single Page Application), construída em React.
A comunicação com a API é feita via **TanStack Query**, que gerencia o ciclo de vida das requisições, cache de dados e estados de carregamento/erro.
### Diagrama em Alto Nível do Frontend
![frontend](uploads/.jpeg)
<h3 id="front-end-modules">Módulos</h3>
```
├── public/ # Arquivos estáticos
├── src/
│ ├── app/ # Entrypoint, router e providers
│ ├── assets/ # Imagens, ícones e mídias
│ ├── components/ # Componentes reutilizáveis de UI
│ ├── design-system/ # Tipografia, cores e tokens
│ ├── dto/ # Data Transfer Objects (DTOs)
│ ├── infra/ # Configurações e integrações
│ ├── pages/ # Páginas principais da aplicação
│ ├── services/ # Serviços e chamadas de API
│ ├── utils/ # Funções auxiliares
├── index.html # Arquivo HTML de entrada (Vite)
├── package.json # Dependências do projeto
├── tsconfig.json # Configuração do TypeScript
└── README.md
└── ... # Outros arquivos de configuração (husky, eslint, prettier, etc.)
```
- **App** → Ponto de entrada da aplicação, onde o `Router` controla as rotas.
- **Pages** → Telas principais, ex.: Home, Sobre do Evento, Tarefas.
- **Components** → Botões, Cards, Headers, Sidebar, etc.
- **Context** → Compartilhamento de estados globais como lista de eventos.
- **Services** → Comunicação com a API via hooks do TanStack Query.
- **Design System** → Padronização visual (cores, espaçamentos, fontes).
---
## Frontend Mobile
---
## Backend
<h3 id="back-end-def-tec">Definições de Tecnologias</h3>
---
## Integração Frontend + Backend
- O **Frontend** consome a API através de hooks (`useQuery`, `useMutation`) do **TanStack Query**, garantindo que os dados sempre estejam sincronizados.
- O **Backend** valida, processa e retorna os dados para o Frontend.
- O banco de dados armazena **eventos, tarefas, usuários e resultados**.
---
## Arquitetura em Alto Nível da Aplicação
![alto-nivel](.png)
De forma simplificada:
1. **Usuário** acessa o sistema pelo navegador.
2. O **Router** no Frontend direciona para a página correta (Home, Evento, Tarefas).
3. Cada módulo da aplicação consome dados da **API Backend**.
4. O **Banco de Dados** persiste todas as informações.
---
Essa arquitetura garante:
- **Escalabilidade** → fácil adicionar novos módulos (ex.: Atividades).
- **Reuso** → componentes e serviços reutilizáveis.
- **Padronização** → design system + DTOs.
Clone repository
  • Arquitetura
  • Banco de Dados
  • Home