Skip to content

Marcos934/passaprodrive

Repository files navigation

PassaProDrive 🚀

Sistema de upload de arquivos direto para o Google Drive com interface web moderna e intuitiva.

📋 Sobre o Projeto

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.

✨ Funcionalidades Principais

🔐 Sistema de Autenticação

  • Login com Google OAuth 2.0 para clientes
  • Sistema de autenticação tradicional para administradores
  • Controle de sessões e middleware de segurança

👥 Gestão de Usuários

  • Tipos de usuário: Cliente Free, Cliente Pro, Administrador
  • Status de conta: Ativo, Inativo, Suspenso
  • Perfis personalizáveis com foto do Google

📄 Páginas de Upload Personalizadas

  • 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

🗂️ Integração com Google Drive

  • Upload direto para pastas específicas no Google Drive
  • Gerenciamento automático de pastas
  • Tokens de acesso seguros e renovação automática

📊 Painel Administrativo

  • 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)

🛠️ Tecnologias Utilizadas

Backend

  • 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

Frontend

  • TailwindCSS - Framework CSS utilitário
  • JavaScript Vanilla - Interatividade
  • Font Awesome - Ícones
  • Google Fonts - Tipografia (Plus Jakarta Sans)

Banco de Dados

  • MySQL - Banco de dados relacional
  • Migrações SQL - Controle de versão do schema

Infraestrutura

  • Apache/Nginx - Servidor web
  • Composer - Gerenciador de dependências PHP
  • Environment Variables - Configurações sensíveis

📁 Estrutura do Projeto

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

🚀 Instalação e Configuração

Pré-requisitos

  • PHP 8.0 ou superior
  • MySQL 5.7 ou superior
  • Composer
  • Servidor web (Apache/Nginx)
  • Conta Google Cloud Platform (para API do Drive)

Passo a Passo

  1. Clone o repositório
git clone https://github.com/seu-usuario/passaprodrive.git
cd passaprodrive
  1. Instale as dependências
composer install
  1. Configure o ambiente
cp .env.example .env
  1. 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
  1. 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
  1. Configure o servidor web

Apache (.htaccess já configurado)

DocumentRoot /caminho/para/passaprodrive/public

Nginx

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;
    }
}

🔧 Configuração do Google Drive API

  1. Acesse o Google Cloud Console

  2. Ative a API do Google Drive

    • Navegue até "APIs & Services" > "Library"
    • Procure por "Google Drive API" e ative
  3. Configure OAuth 2.0

    • Vá para "APIs & Services" > "Credentials"
    • Clique em "Create Credentials" > "OAuth 2.0 Client ID"
    • Configure as URLs de redirecionamento autorizadas
  4. Obtenha as credenciais

    • Copie o Client ID e Client Secret
    • Adicione no arquivo .env

📊 Funcionalidades Detalhadas

Sistema de Planos

  • Plano Free: Limitado a 1 página de upload
  • Plano Pro: Páginas ilimitadas + recursos avançados
  • Configurações flexíveis via painel administrativo

Segurança

  • 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

Monitoramento

  • Logs detalhados de uploads
  • Rastreamento de IP dos usuários
  • Estatísticas de uso por usuário
  • Relatórios exportáveis

🤝 Contribuição

  1. Faça um fork do 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

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

👨‍💻 Autor

Desenvolvido por: Marcos Vinicius Mulinari
Email: marcos.mulinari97@gmail.com


Se este projeto foi útil para você, considere dar uma estrela!

About

Sistema de Upload de Arquivos para o Drive

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published