Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tuteli Tuteli
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 34
    • Issues 34
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • 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
  • Tuteli
  • TuteliTuteli
  • Wiki
  • Configuracao

Last edited by Nicolas dos Santos Moraes Oct 30, 2025
Page history

Configuracao

Home

Escopo

Sprints

Requisitos

Arquitetura

Configuração

Desenvolvimento

Mockups

Database

Instalação

Gerência de Projeto

📚 Sumário

  1. Visão Geral do Projeto
  2. Tuteli - Aplicativo React Native
    • 🎨 Funcionalidades
    • 📋 Scripts Disponíveis
    • 🔧 Configuração de Desenvolvimento
    • 📝 Observações
    • 🤝 Contribuindo
    • .env — App
  3. Tuteli - Flask Server
    • Convenção de Nomeação de Branches
    • Diretrizes de Commit
    • Como Executar Localmente
    • Estrutura
    • Configurando o GEMINI KEY
    • .env — Server
  4. NGROK (para rodar o projeto usando o Expo Go no celular)
    • 🧩 Instalação do NGROK
    • 🚀 Iniciando o NGROK no terminal
    • 📱 .env — App (com NGROK)

Visão Geral do Projeto

Este repositório contém os principais componentes da nossa aplicação, organizados da seguinte forma:

  • app/: Contém as interfaces de usuário do projeto.
  • server/: Contém a implementação do servidor backend.

Tanto as pastas app quanto server possuem seus próprios arquivos README.md, com instruções e explicações detalhadas para ajudá-lo a compreender e trabalhar de forma mais eficiente em cada parte do projeto.

Para mais informações, consulte os respectivos arquivos README.md dentro de cada pasta.

Tuteli - Aplicativo React Native

🎨 Funcionalidades

  • Suporte a Tema Escuro/Claro: Alternância automática de tema com base nas configurações do dispositivo
  • Navegação Moderna: React Navigation
  • Design Responsivo: NativeWind
  • Segurança de Tipos: TypeScript
  • Qualidade de Código: ESLint e Prettier

📋 Scripts Disponíveis

Command Description
npm start Start the Expo development server
npm run android Run on Android device/emulator
npm run ios Run on iOS device/simulator
npm run web Run in web browser
npm run lint Run ESLint and Prettier checks
npm run format Format code with ESLint and Prettier
npm run prebuild Generate native code for custom builds

🔧 Configuração de Desenvolvimento

  1. Desenvolvimento Mobile:

    • Instale o Expo Go em seu dispositivo móvel
    • Para Android: configure o Android Studio
    • Para iOS: configure o Xcode (somente macOS)
  2. Desenvolvimento Web:

    • Nenhuma configuração adicional é necessária, o projeto roda em qualquer navegador moderno

📝 Observações

  • Este projeto utiliza o Expo SDK 53
  • Versão do React Native: 0.79.5
  • Suporte para plataformas iOS, Android e Web
  • Utiliza os novos recursos do React 19

🤝 Contribuindo

Ao contribuir para este projeto:

  1. Execute npm run lint antes de realizar o commit
  2. Use npm run format para garantir a formatação consistente do código
  3. Siga a estrutura e convenções de nomenclatura já existentes no projeto

📱 .env — App

# Base API URL (used by the mobile and web app)
EXPO_PUBLIC_API_URL=http://127.0.0.1:5000

Tuteli - Flask Server

Convenção de Nomeação de Branches

  • Funcionalidades (Features):
    As branches devem ser nomeadas de acordo com a user story que está sendo implementada, usando o formato:
    feat/US_XX
    onde XX é o número da user story.

  • Correções de Bugs (Bug Fixes):
    As branches destinadas a correções de erros devem usar o formato:
    bugfix/BUG_XX
    onde XX é o número do bug.

Observação: Caso não exista uma tarefa correspondente ao seu trabalho, entre em contato com o Gerente de Projeto (AGES IV) para garantir que uma tarefa seja criada antes de prosseguir.
Isso ajuda a manter o alinhamento e o acompanhamento adequado de todas as atividades de desenvolvimento.

Diretrizes de Commit

Os commits devem conter uma breve descrição do que foi implementado.
Isso auxilia na manutenção da clareza e rastreabilidade ao longo do processo de desenvolvimento.

Como executar localmente

  1. Certifique-se de que você está no diretório do servidor:
cd server
  1. Crie um ambiente virtual Python (versão 3.11):
python3.13 -m venv venv
source venv/bin/activate
  1. Instale as dependências:
pip install -r requirements.txt
  1. Exporte as variáveis de ambiente e inicie o servidor Flask:

Linux/macOS:

export FLASK_APP=src.app
export FLASK_ENV=development
flask run

PowerShell:

$env:FLASK_APP = "src.app"
$env:FLASK_ENV = "development"
flask run

Estrutura

tuteli/server/
├── src/                  # Application source code
│   ├── app.py            # Main entry point (Flask)
│   ├── models/           # Data models
│   ├── routes/           # API routes/endpoints
│   └── services/         # Business logic and helper services
├── tests/                # Automated tests
├── requirements.txt      # Python dependencies
├── serverless.yml        # Serverless Framework configuration
├── terraform/            # Terraform scripts and modules
└── README.md             # Project documentation

Configurando o GEMINI KEY

Windows (cmd):

set GEMINI_API_KEY=SUA_CHAVE_AQUI

PowerShell:

$env:GEMINI_API_KEY="SUA_CHAVE_AQUI"

Linux/macOS:

export GEMINI_API_KEY=SUA_CHAVE_AQUI

🌐 .env — Server

# Default AI provider
AI_PROVIDER=gemini

# Gemini configuration
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_MODEL=gemini-2.5-flash

# OpenAI configuration
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-3.5-turbo

# Other settings
MAX_CONVERSATION_HISTORY=20
MAX_MESSAGE_LENGTH=4000

NGROK (para rodar o projeto usando o Expo Go no celular)

Para que o app possa rodar normalmente, é necessário exportar o backend para fora do localhost, já que estaremos utilizando duas máquinas (computador + celular).
O NGROK cria um túnel público temporário, permitindo que o celular acesse o servidor local.

⚠️ Atenção: o NGROK expõe seu endpoint publicamente para qualquer pessoa com o link.
Por isso, evite usar portas sensíveis e encerre o NGROK após o uso.


🧩 Instalação do NGROK

Windows

  1. Baixe o instalador no site oficial: https://ngrok.com/download
  2. Extraia o arquivo baixado e mova o executável ngrok.exe para uma pasta acessível.
  3. Adicione o NGROK ao PATH do sistema (opcional).
  4. No terminal, conecte sua conta NGROK (necessário criar uma conta gratuita):
    ngrok config add-authtoken SEU_TOKEN_AQUI
    

Linux/macOS

  1. Execute o comando de instalação via terminal:
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list
sudo apt update && sudo apt install ngrok
  1. Conecte sua conta:
ngrok config add-authtoken SEU_TOKEN_AQUI

🚀 Iniciando o NGROK no terminal

Após instalar, inicie o túnel com o comando:

ngrok http 5000

O NGROK exibirá uma URL pública (https) — é essa URL que deverá ser usada no .env do app.

📱 .env — App (com NGROK)

No arquivo .env do App, altere a URL base para a que o NGROK fornecer:

# Base API URL (usada pelo app mobile e web)
EXPO_PUBLIC_API_URL=URL_NGROK

Exemplo:

EXPO_PUBLIC_API_URL=https://ab12-34-567-89-123.ngrok-free.app
Clone repository
  • Arquitetura
  • Configuracao
  • Database
  • Escopo
  • Gerenciamento do Projeto
  • Mockups
  • Repositório
  • Sprints
  • Tecnologias
  • arquitetura planejada
  • Home