### Install Expo App Dependencies Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/README.md Installs all necessary project dependencies using npm. This is a prerequisite for starting the development server. ```bash npm install ``` -------------------------------- ### Start Expo Development Server Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/README.md Starts the Expo development server, allowing you to preview and test your application on various platforms like emulators, simulators, or Expo Go. ```bash npx expo start ``` -------------------------------- ### React Vite Setup with SWC Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/frontEnd/README.md This snippet shows the setup for a React project using Vite with the official plugin that leverages SWC for Fast Refresh. SWC offers faster compilation speeds compared to Babel. ```javascript import react from '@vitejs/plugin-react-swc' export default { plugins: [ react() ] } ``` -------------------------------- ### React Vite Setup with Babel Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/frontEnd/README.md This snippet demonstrates the basic setup for a React project using Vite with the official plugin that utilizes Babel for Fast Refresh. It's suitable for projects prioritizing Babel's ecosystem. ```javascript import react from '@vitejs/plugin-react' export default { plugins: [ react() ] } ``` -------------------------------- ### Dockerfile for Production Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md A Dockerfile configuration for building a production-ready Docker image. It uses Node.js Alpine, installs production dependencies, copies application code, exposes the port, and sets the start command. ```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["npm", "start"] ``` -------------------------------- ### Reset Expo Project Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/README.md Resets the Expo project by moving the starter code to the 'app-example' directory and creating a clean 'app' directory for new development. This is useful for starting fresh. ```bash npm run reset-project ``` -------------------------------- ### Integrating TypeScript with ESLint Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/frontEnd/README.md Guidance on integrating TypeScript and enabling type-aware lint rules using `typescript-eslint` for production React applications within a Vite project. ```typescript // Example ESLint configuration for TypeScript // Refer to the official documentation for detailed setup. // https://typescript-eslint.io/ ``` -------------------------------- ### Endpoint de Health Check Melhorado Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Define o endpoint HTTP GET para verificar a saúde do sistema. Este endpoint retorna um JSON detalhado com o status geral, tempo de atividade, ambiente e informações específicas do banco de dados e uso de memória. ```APIDOC GET /health Resposta: ```json { "status": "OK", "timestamp": "2024-01-15T10:30:00.000Z", "uptime": 3600, "environment": "development", "database": { "health": { "status": "healthy", "message": "Database conectado e funcionando" }, "stats": { "isConnected": true, "isConnecting": false, "connectionAttempts": 0, "maxRetries": 3, "hasClient": true } }, "memory": { "used": 45, "total": 67, "external": 12 } } ``` ``` -------------------------------- ### Instalação e Configuração do Projeto Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Passos para clonar o repositório, instalar dependências, configurar variáveis de ambiente e preparar o banco de dados usando npm. ```bash git clone cd api-apiario-backend npm install cp .env.example .env # Edite o arquivo .env com as configurações npm run db:generate npm run db:migrate ``` -------------------------------- ### Iniciando o Servidor Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Comandos para iniciar o servidor em modo de desenvolvimento ou produção. ```bash # Desenvolvimento npm run dev # Produção npm start ``` -------------------------------- ### Scripts Disponíveis Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Lista de scripts npm úteis para desenvolvimento, gerenciamento do banco de dados e execução de testes. ```bash # Desenvolvimento npm run dev npm run lint npm run lint:fix npm run format # Banco de Dados npm run db:migrate npm run db:generate npm run db:studio npm run db:seed # Testes npm test npm run test:watch npm run test:coverage ``` -------------------------------- ### Running Tests Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Provides npm commands for executing tests, including running all tests, running tests with coverage, and running tests in watch mode. ```bash # Executar todos os testes npm test # Executar testes com cobertura npm run test:coverage # Executar testes em modo watch npm run test:watch ``` -------------------------------- ### Conexão Básica com o Banco de Dados Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Demonstra o processo de conexão inicial com o banco de dados e como obter o cliente Prisma para interagir com os dados. Inclui a importação do módulo de banco de dados e a chamada para `connect()`. ```javascript import database from './config/database.js'; // Conectar await database.connect(); // Usar const prisma = database.getClient(); const users = await prisma.user.findMany(); ``` -------------------------------- ### Iniciar Servidor Backend (Bash) Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/TROUBLESHOOTING.md Comandos para iniciar o servidor backend. Certifique-se de estar no diretório correto do backend antes de executar. ```bash # No diretório do backend npm start # ou node server.js ``` -------------------------------- ### Endpoints da API de Gerenciamento de Apiário Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Documentação dos endpoints disponíveis para gerenciar produtores, colmeias, atividades, produção de mel e medições de temperatura/umidade. ```APIDOC Produtores: - GET /api/v1/producer - Lista todos os produtores - GET /api/v1/producer/:id - Busca produtor por ID - POST /api/v1/producer - Cria novo produtor - PUT /api/v1/producer/:id - Atualiza produtor - DELETE /api/v1/producer/:id - Remove produtor Colmeias: - GET /api/v1/beehive - Lista todas as colmeias - GET /api/v1/beehive/:id - Busca colmeia por ID - POST /api/v1/beehive - Cria nova colmeia - PUT /api/v1/beehive/:id - Atualiza colmeia - DELETE /api/v1/beehive/:id - Remove colmeia Atividades: - GET /api/v1/activity - Lista todas as atividades - GET /api/v1/activity/:id - Busca atividade por ID - POST /api/v1/activity - Cria nova atividade - PUT /api/v1/activity/:id - Atualiza atividade - DELETE /api/v1/activity/:id - Remove atividade Produção de Mel: - GET /api/v1/production_honey - Lista todas as produções - GET /api/v1/production_honey/:id - Busca produção por ID - POST /api/v1/production_honey - Registra nova produção - PUT /api/v1/production_honey/:id - Atualiza produção - DELETE /api/v1/production_honey/:id - Remove produção Temperatura e Umidade: - GET /api/v1/temperature_humidity - Lista todas as medições - GET /api/v1/temperature_humidity/:id - Busca medição por ID - POST /api/v1/temperature_humidity - Registra nova medição - PUT /api/v1/temperature_humidity/:id - Atualiza medição - DELETE /api/v1/temperature_humidity/:id - Remove medição ``` -------------------------------- ### Execução de Testes de Banco de Dados Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Comando para executar a suíte de testes automatizados para o sistema de banco de dados. Garante que todas as funcionalidades e correções estão operando conforme o esperado. ```bash npm run test:db ``` -------------------------------- ### Contribution Workflow Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Outlines the steps for contributing to the project, including forking the repository, creating feature branches, committing changes, pushing to the branch, and opening a Pull Request. ```APIDOC 1. Fork o projeto 2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`) 3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`) 4. Push para a branch (`git push origin feature/AmazingFeature`) 5. Abra um Pull Request ``` -------------------------------- ### Production Environment Variables Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Lists essential environment variables required for production deployment, such as NODE_ENV, PORT, database connection string, JWT secrets, and CORS origin. ```env NODE_ENV=production PORT=3000 DATABASE_URL="file:./prod.db" JWT_SECRET=chave_super_secreta_producao JWT_EXPIRES_IN=24h CORS_ORIGIN=https://seu-dominio.com ``` -------------------------------- ### Comandos Úteis do Expo (Bash) Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/TROUBLESHOOTING.md Uma coleção de comandos úteis para gerenciar o projeto Expo, incluindo limpeza de cache, instalação de dependências e verificação de versão. ```bash # Limpar cache npx expo start --clear # Reset completo npx expo start --clear --reset-cache # Verificar dependências npm install # Verificar versão do Expo npx expo --version ``` -------------------------------- ### Limpar Cache e Reiniciar Expo (Bash) Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/TROUBLESHOOTING.md Comandos para limpar o cache e reiniciar o aplicativo Expo, útil para resolver problemas de build e estado. ```bash # No diretório mobile npx expo start --clear --reset-cache ``` -------------------------------- ### Autenticação de Login Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Exemplo de requisição POST para o endpoint de login, enviando credenciais de email e senha, e a estrutura da resposta de sucesso com o token JWT. ```http POST /api/v1/login Content-Type: application/json { "email": "produtor@exemplo.com", "password": "senha123" } ``` ```json { "success": true, "message": "Login realizado com sucesso", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 1, "name": "João Silva", "email": "produtor@exemplo.com", "status": "Ativo" } } } ``` -------------------------------- ### Configuração de Retry Inteligente Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Configura os parâmetros para o sistema de retry automático, incluindo o número máximo de tentativas e o atraso entre elas. Este código define a lógica de retentativa para operações de banco de dados que podem falhar temporariamente. ```javascript this.maxRetries = 3; this.retryDelay = 1000; // 1 segundo ``` -------------------------------- ### Configuração de Middleware para Rotas Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Exemplifica como configurar middlewares para gerenciar a conexão com o banco de dados em diferentes rotas. `ensureDatabaseConnection` é usado para rotas críticas, enquanto `optionalDatabaseConnection` é para rotas como health checks. ```javascript // Rotas que precisam de banco app.use('/api/users', ensureDatabaseConnection, userRoutes); // Rotas opcionais app.use('/health', optionalDatabaseConnection, healthRoutes); ``` -------------------------------- ### API Endpoints for Food Management Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Defines the RESTful API endpoints for managing food resources. Includes operations for listing, retrieving by ID, creating, updating, and deleting food items. ```APIDOC GET /api/v1/food - Lista todas as alimentações GET /api/v1/food/:id - Busca alimentação por ID POST /api/v1/food - Registra nova alimentação PUT /api/v1/food/:id - Atualiza alimentação DELETE /api/v1/food/:id - Remove alimentação ``` -------------------------------- ### Security Features Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Outlines the security measures implemented in the project, including Helmet for security headers, rate limiting, CORS configuration, input validation with Zod, data sanitization, and JWT authentication. ```APIDOC Helmet: Headers de segurança Rate Limiting: Limitação de requisições por IP CORS: Configuração de Cross-Origin Resource Sharing Validação: Validação de entrada com Zod Sanitização: Sanitização de dados de entrada JWT: Autenticação segura com tokens ``` -------------------------------- ### Logging Levels Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Describes the structured logging levels used in the system: INFO for general information, WARN for warnings, ERROR for errors, and DEBUG for development-only debug information. ```APIDOC INFO: Informações gerais WARN: Avisos ERROR: Erros DEBUG: Informações de debug (apenas em desenvolvimento) ``` -------------------------------- ### Obtenção do Cliente com Garantia de Conexão Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Fornece o cliente do banco de dados após garantir que uma conexão ativa está estabelecida. Esta função é útil para operações que exigem que o banco de dados esteja online. ```javascript // Garante que está conectado antes de usar const prisma = await database.getClientWithConnection(); ``` -------------------------------- ### Obtenção de Estatísticas de Conexão Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Recupera estatísticas detalhadas sobre o estado atual da conexão com o banco de dados. Essas estatísticas podem incluir informações sobre tentativas de conexão, status de reconexão e presença de um cliente de banco de dados. ```javascript const stats = database.getConnectionStats(); // Retorna informações sobre o estado da conexão ``` -------------------------------- ### Uso do Token JWT para Autenticação Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Exemplo de como incluir o token JWT no cabeçalho Authorization para acessar endpoints protegidos. ```http GET /api/v1/beehive Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` -------------------------------- ### Logs Importantes para Depuração de Login Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/SOLUCAO_LOGIN.md Lista os logs chave a serem procurados no console para diagnosticar problemas durante o processo de teste de login e criação de usuário. ```plaintext 🏥 Testando saúde do servidor 👤 Testando criação de usuário 🔐 Testando login com ✅ Usuário criado! ❌ Falha ao criar usuário ``` -------------------------------- ### API Endpoints for Disease Management Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/README.md Defines the RESTful API endpoints for managing disease resources. Includes operations for listing, retrieving by ID, creating, updating, and deleting disease records. ```APIDOC GET /api/v1/disease - Lista todas as doenças GET /api/v1/disease/:id - Busca doença por ID POST /api/v1/disease - Registra nova doença PUT /api/v1/disease/:id - Atualiza doença DELETE /api/v1/disease/:id - Remove doença ``` -------------------------------- ### Testar Conectividade com a API (JavaScript) Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/TROUBLESHOOTING.md Exemplo de como usar o componente TestConnection para verificar a conectividade com a API. Este snippet deve ser adicionado a uma tela temporária para testes. ```javascript import TestConnection from '../components/TestConnection'; // Adicione em uma tela temporária ``` -------------------------------- ### Credenciais de Teste para Login Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/SOLUCAO_LOGIN.md Fornece as credenciais de email e senha a serem usadas após a criação de um usuário de teste para validar o fluxo de login. ```plaintext Email: teste@teste.com Senha: 123456 ``` -------------------------------- ### Navegação com Expo Router (JavaScript) Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/mobile/TROUBLESHOOTING.md Demonstra como usar o hook useRouter do expo-router para navegar entre telas. É crucial garantir que a rota esteja definida no arquivo _layout.js. ```javascript import { useRouter } from 'expo-router'; const router = useRouter(); router.replace('/(tabs)/Beehives'); ``` -------------------------------- ### Health Check do Banco de Dados Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Executa um health check no banco de dados para verificar seu status operacional. Retorna um objeto com o status ('healthy', 'unhealthy', 'disconnected') e uma mensagem descritiva. ```javascript const health = await database.healthCheck(); // Retorna: { status: 'healthy', message: 'Database conectado e funcionando' } ``` -------------------------------- ### Verificação de Health Check do Banco de Dados Source: https://github.com/carloseduardovdeoliveira/tcc/blob/main/backEnd/DATABASE_IMPROVEMENTS.md Realiza uma verificação de saúde do banco de dados e exibe o status retornado. O status pode ser 'healthy', 'unhealthy', ou 'disconnected'. ```javascript const health = await database.healthCheck(); console.log(health.status); // 'healthy', 'unhealthy', 'disconnected' ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.