Sistema de upload de arquivos direto para o Google Drive com interface web moderna e intuitiva.
O PassaProDrive é uma aplicação web desenvolvida em PHP que permite aos usuários criar páginas personalizadas de upload de arquivos que são enviados diretamente para o Google Drive. O sistema oferece uma solução completa para recebimento de arquivos com controle de acesso, limites personalizáveis e integração nativa com o Google Drive.
- Login com Google OAuth 2.0 para clientes
- Sistema de autenticação tradicional para administradores
- Controle de sessões e middleware de segurança
- Tipos de usuário: Cliente Free, Cliente Pro, Administrador
- Status de conta: Ativo, Inativo, Suspenso
- Perfis personalizáveis com foto do Google
- Criação de páginas únicas com slug personalizado
- Configurações flexíveis:
- Limite de tamanho por arquivo
- Tipos de arquivo permitidos
- Número máximo de arquivos por upload
- Data de expiração
- Proteção por senha
- Campos obrigatórios (nome/email)
- Sistema de comentários
- Upload direto para pastas específicas no Google Drive
- Gerenciamento automático de pastas
- Tokens de acesso seguros e renovação automática
- Dashboard completo com estatísticas
- Gestão de usuários e páginas
- Relatórios detalhados de uploads
- Configurações de preços e planos
- Sistema de planos (Free/Pro)
- PHP 8.0+ - Linguagem principal
- Slim Framework 4 - Framework web minimalista
- Eloquent ORM - Mapeamento objeto-relacional
- PHP-DI - Injeção de dependências
- Google API Client - Integração com Google Drive
- Firebase JWT - Autenticação por tokens
- TailwindCSS - Framework CSS utilitário
- JavaScript Vanilla - Interatividade
- Font Awesome - Ícones
- Google Fonts - Tipografia (Plus Jakarta Sans)
- MySQL - Banco de dados relacional
- Migrações SQL - Controle de versão do schema
- Apache/Nginx - Servidor web
- Composer - Gerenciador de dependências PHP
- Environment Variables - Configurações sensíveis
passaprodrive/
├── 📂 config/ # Configurações da aplicação
│ ├── container.php # Container de dependências
│ └── routes.php # Definições de rotas
├── 📂 database/ # Scripts e migrações do banco
│ ├── migrations/ # Migrações SQL
│ ├── schema.sql # Schema principal
│ └── *.sql # Scripts auxiliares
├── 📂 public/ # Pasta pública (DocumentRoot)
│ ├── assets/ # Assets estáticos
│ ├── index.php # Ponto de entrada
│ └── .htaccess # Configurações Apache
├── 📂 src/ # Código fonte da aplicação
│ ├── Controllers/ # Controladores MVC
│ │ ├── Admin/ # Controladores administrativos
│ │ └── Client/ # Controladores do cliente
│ ├── Models/ # Modelos Eloquent
│ ├── Middleware/ # Middlewares de autenticação
│ ├── Validation/ # Validadores
│ ├── Core/ # Classes core do sistema
│ └── Helpers/ # Classes auxiliares
├── 📂 templates/ # Templates PHP
│ ├── admin/ # Templates administrativos
│ ├── client/ # Templates do cliente
│ ├── partials/ # Componentes reutilizáveis
│ └── upload/ # Templates de upload
├── 📂 vendor/ # Dependências do Composer
├── .env # Variáveis de ambiente
├── composer.json # Dependências PHP
└── README.md # Este arquivo
- PHP 8.0 ou superior
- MySQL 5.7 ou superior
- Composer
- Servidor web (Apache/Nginx)
- Conta Google Cloud Platform (para API do Drive)
- Clone o repositório
git clone https://github.com/seu-usuario/passaprodrive.git
cd passaprodrive- Instale as dependências
composer install- Configure o ambiente
cp .env.example .env- Configure as variáveis de ambiente
# Aplicação
APP_ENV=production
APP_DEBUG=false
APP_URL=https://seudominio.com
# Banco de dados
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=passaprodrive
DB_USER=seu_usuario
DB_PASS=sua_senha
# Google OAuth
GOOGLE_CLIENT_ID=seu_client_id
GOOGLE_CLIENT_SECRET=seu_client_secret
GOOGLE_REDIRECT_URI=https://seudominio.com/auth/google/callback- Execute as migrações
-- Importe o schema principal
mysql -u usuario -p database_name < database/schema.sql
-- Execute as migrações em ordem
mysql -u usuario -p database_name < database/migrations/20231211_create_pages_table.sql
-- ... outras migrações- Configure o servidor web
Apache (.htaccess já configurado)
DocumentRoot /caminho/para/passaprodrive/publicNginx
server {
listen 80;
server_name seudominio.com;
root /caminho/para/passaprodrive/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}-
Acesse o Google Cloud Console
- Vá para console.cloud.google.com
- Crie um novo projeto ou selecione um existente
-
Ative a API do Google Drive
- Navegue até "APIs & Services" > "Library"
- Procure por "Google Drive API" e ative
-
Configure OAuth 2.0
- Vá para "APIs & Services" > "Credentials"
- Clique em "Create Credentials" > "OAuth 2.0 Client ID"
- Configure as URLs de redirecionamento autorizadas
-
Obtenha as credenciais
- Copie o Client ID e Client Secret
- Adicione no arquivo
.env
- Plano Free: Limitado a 1 página de upload
- Plano Pro: Páginas ilimitadas + recursos avançados
- Configurações flexíveis via painel administrativo
- Middleware de autenticação para rotas protegidas
- Validação de dados em todas as entradas
- Proteção CSRF em formulários
- Sanitização de uploads
- Rate limiting para uploads
- Logs detalhados de uploads
- Rastreamento de IP dos usuários
- Estatísticas de uso por usuário
- Relatórios exportáveis
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido por: Marcos Vinicius Mulinari
Email: marcos.mulinari97@gmail.com
⭐ Se este projeto foi útil para você, considere dar uma estrela!