hortas-comunitarias-univille/
├── backend/ # API Slim Framework (PHP)
│ ├── app/ # Configurações da aplicação
│ ├── public/ # Ponto de entrada da API
│ ├── src/ # Código fonte
│ └── composer.json # Dependências PHP
├── frontend/ # Aplicação Vue.js
│ ├── src/ # Código fonte, precisa atualizar após finalizar desenvolvimento ⚠️
├── mobile/ # App Vue Native/React Native
│ ├── src # Código fonte, precisa atualizar após finalizar desenvolvimento ⚠️
├── docker/ # Configurações Docker
│ ├── nginx/ # Configurações Nginx
│ ├── php/ # Dockerfile e config PHP
│ ├── mysql/ # Configurações MySQL
│ └── node/ # Dockerfile Node.js
└── docker-compose.yml # Orquestração dos containers
Warning
A partir desse ponto, seguem informações padrão do repositório fork'ado. Por garantia, refira-se ao README.md de cada pasta para informações atualizadas. Deixamos aqui apenas à título de informação caso seja útil.
Você foi avisado.
- Docker 20.10+
- Docker Compose 2.0+
- Git
# Clonar o repositório
git clone <repo-url>
cd hortas-comunitarias-univille
# Configurar ambiente completo
make setup
# Ou usar o script diretamente
./setup.sh# 1. Copiar arquivo de configuração
cp backend/.env.example backend/.env
# 2. Construir containers
docker-compose build
# 3. Iniciar serviços
docker-compose up -d
# 4. Instalar dependências
make install# Gerenciamento básico
make start # Iniciar containers
make stop # Parar containers
make restart # Reiniciar containers
make logs # Ver logs de todos serviços
# Desenvolvimento
make install # Instalar todas dependências
make shell-php # Acessar container PHP
make shell-mysql # Acessar container MySQL
make status # Ver status dos containers
# Limpeza
make clean # Remover tudo
make fresh # Reinstalação completa| Serviço | URL | Descrição |
|---|---|---|
| Frontend | http://localhost:3000 | Interface Vue.js |
| Backend API | http://localhost:8181/api | API Slim Framework |
| phpMyAdmin | http://localhost:8080 | Interface banco de dados |
| MySQL | localhost:3306 | Banco de dados |
Banco de dados:
- Host:
localhost:3306 - Database:
railway - User:
hortas_user - Password:
hortas_password - Root password:
root_password
# Instalar dependências
make install-backend
# Executar testes
make test-backend
# Acessar container
make shell-php
# Ver logs
make logs-backendEstrutura da API:
GET /api/hortas- Listar hortasPOST /api/hortas- Criar hortaGET /api/produtos- Listar produtosPOST /api/auth/login- Login
# Instalar dependências
make install-frontend
# Executar testes
make test-frontend
# Ver logs de desenvolvimento
make logs-frontendPrincipais tecnologias:
- Vue.js 3
- Vue Router 4
- Vuex 4
- Bootstrap 5
- Axios
- Leaflet (mapas)
# Instalar dependências
make install-mobile
# Iniciar desenvolvimento
cd mobile
npm start
# Para Android
npm run android
# Para iOS
npm run iosO banco é inicializado automaticamente com:
- Tabelas:
usuarios,hortas,produtos - Dados de exemplo
- Usuários padrão (admin, produtor, consumidor)
# Backup
make backup-db
# Restore (manual)
docker-compose exec mysql mysql -u hortas_user -phortas_password railway < backup.sql# Backend
make test-backend
# Frontend
make test-frontend
# Mobile
cd mobile && npm test# Logs gerais
make logs
# Logs específicos
make logs-backend
make logs-frontend
make logs-db
# Debug PHP (container)
make shell-php
tail -f /var/log/nginx/error.logcd mobile
# Instalar CLI do Expo
npm install -g @expo/cli
# Iniciar projeto
npm start
# Escanear QR code com Expo Go app# Android
npm run build:android
# iOS
npm run build:ios# Build do frontend
docker-compose exec frontend npm run build
# Os arquivos ficam em frontend/dist/Backend (.env):
APP_ENV=production
DB_HOST=mysql
JWT_SECRET=seu-jwt-secret-seguro
Frontend (.env):
VUE_APP_API_URL=https://api.hortas.com
- JWT para autenticação
- Rate limiting no Nginx
- Headers de segurança configurados
- Validação de entrada nos endpoints
- Docker containers rodando
- Backend respondendo em
/api - Frontend carregando em
:3000 - Banco de dados conectado
- Mobile compilando
- Testes passando
- Código seguindo padrões
- Variáveis sensíveis não commitadas
- README atualizado se necessário
# Ver logs detalhados
docker-compose logs [serviço]
# Reconstruir container
docker-compose build --no-cache [serviço]# Verificar portas
lsof -i :3000
lsof -i :80
# Parar processos se necessário# Limpar e reinstalar
make fresh# Verificar se MySQL está rodando
docker-compose ps
# Resetar banco
docker-compose down -v
docker-compose up -dPara contribuir:
- Fork o projeto
- Crie branch para feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Padrões de commit:
feat:nova funcionalidadefix:correção de bugdocs:documentaçãostyle:formataçãorefactor:refatoraçãotest:testes