Sistema completo de rastreamento de hábitos com autenticação de usuários, desenvolvido em PHP e MySQL, pronto para hospedar no Hostinger.
- ✅ Autenticação de Usuários - Registro, login e logout seguro
- ✅ Gerenciamento de Hábitos - Criar, editar e excluir hábitos personalizados
- ✅ Rastreamento Diário - Marcar hábitos como concluídos a cada dia
- ✅ Dashboard com Estatísticas - Visualizar progresso e métricas
- ✅ Interface Responsiva - Funciona em desktop e mobile
- ✅ Personalização - Cores e ícones personalizados para cada hábito
- Backend: PHP 7.4+
- Banco de Dados: MySQL 5.7+
- Frontend: HTML5, CSS3, JavaScript (Vanilla)
- Arquitetura: REST API
habitos/
├── api/ # Endpoints da API REST
│ ├── login.php # Autenticação de login
│ ├── registro.php # Registro de novos usuários
│ ├── logout.php # Encerrar sessão
│ ├── habitos.php # CRUD de hábitos
│ ├── registros.php # Marcação diária de hábitos
│ └── estatisticas.php # Métricas e estatísticas
├── assets/
│ ├── css/
│ │ └── styles.css # Estilos da aplicação
│ └── js/
│ └── app.js # Lógica JavaScript
├── config/
│ ├── config.php # Configurações gerais
│ ├── database.php # Conexão com banco de dados
│ └── env.php # Carregador de variáveis de ambiente
├── database/
│ ├── migrations/ # Migrações do banco de dados
│ │ ├── 001_create_initial_tables.sql
│ │ └── README.md
│ ├── migrate.php # Sistema de migrações
│ └── schema.sql # Script de criação do banco (legado)
├── .env # Variáveis de ambiente (não commitar!)
├── .env.example # Template do .env
├── .gitignore # Arquivos ignorados pelo Git
├── .htaccess # Configurações Apache
├── index.php # Redirecionamento
├── login.php # Página de login
├── registro.php # Página de registro
└── dashboard.php # Dashboard principal
- Faça o download de todos os arquivos do projeto
- Compacte em um arquivo ZIP (opcional)
- Acesse o hPanel do Hostinger
- Vá em Arquivos → Gerenciador de Arquivos
- Navegue até a pasta
public_html(ou a pasta do seu domínio) - Faça upload de todos os arquivos do projeto
- Se usou ZIP, extraia os arquivos
- No hPanel, vá em Bancos de Dados → Gerenciamento
- Clique em Novo Banco de Dados
- Crie um banco com o nome:
habitos_db - Crie um usuário e senha (anote essas credenciais!)
- Associe o usuário ao banco de dados com todas as permissões
- Clique em Gerenciar no banco criado (abre o phpMyAdmin)
- Selecione o banco
habitos_db - Clique na aba SQL
- Copie e cole o conteúdo do arquivo
database/schema.sql - Clique em Executar
Edite o arquivo config/database.php com suas credenciais:
define('DB_HOST', 'localhost');
define('DB_NAME', 'habitos_db');
define('DB_USER', 'seu_usuario_mysql'); // Altere aqui
define('DB_PASS', 'sua_senha_mysql'); // Altere aquiEdite o arquivo config/config.php:
define('BASE_URL', 'https://seudominio.com'); // Altere para seu domínioEdite o arquivo assets/js/app.js:
const API_BASE_URL = 'https://seudominio.com/api'; // Altere para seu domínioCertifique-se de que as permissões dos arquivos estejam corretas:
- Arquivos: 644
- Pastas: 755
Após a instalação:
- Acesse:
https://seudominio.com - Você será redirecionado para o dashboard
- Clique em "Criar conta" para registrar
- Preencha seus dados e comece a usar!
Se você importou o schema.sql com os dados de exemplo:
- Email: teste@exemplo.com
- Senha: 123456
- No dashboard, clique em "+ Novo Hábito"
- Preencha:
- Nome do hábito
- Descrição (opcional)
- Escolha um emoji como ícone
- Selecione uma cor
- Defina a meta semanal (quantos dias por semana)
- Clique em Salvar
- Clique no botão de check (✓) ao lado do hábito
- O botão ficará verde quando concluído
- Clique novamente para desmarcar
No topo do dashboard você verá:
- Total de Hábitos: Quantos hábitos você tem
- Concluídos Hoje: Quantos você já fez hoje
- Melhor Sequência: Sua maior sequência de dias consecutivos
- Taxa Semanal: Percentual de conclusão nos últimos 7 dias
- PHP: 7.4 ou superior
- MySQL: 5.7 ou superior
- Extensões PHP:
- PDO
- PDO_MySQL
- JSON
- Session
- Apache: mod_rewrite habilitado
- HTTPS: Recomendado para segurança
Edite as variáveis CSS em assets/css/styles.css:
:root {
--primary: #3b82f6; /* Cor principal */
--success: #10b981; /* Cor de sucesso */
--danger: #ef4444; /* Cor de erro */
}- API: Crie novos endpoints em
/api/ - Frontend: Adicione novas páginas ou modifique o
dashboard.php - Banco: Execute novos scripts SQL no phpMyAdmin
O sistema implementa:
- ✅ Senhas criptografadas com
password_hash() - ✅ Proteção contra SQL Injection (PDO prepared statements)
- ✅ Sanitização de inputs
- ✅ Proteção XSS
- ✅ Headers de segurança configurados
- ✅ Validação de sessão
- Use HTTPS - Sempre que possível
- Senhas Fortes - Exija senhas complexas dos usuários
- Backups - Faça backups regulares do banco de dados
- Atualizações - Mantenha PHP e MySQL atualizados
- Verifique as credenciais em
config/database.php - Confirme que o banco de dados existe
- Verifique se o usuário tem permissões
- Ative a exibição de erros temporariamente:
error_reporting(E_ALL); ini_set('display_errors', 1);
- Verifique os logs de erro do PHP no hPanel
- Verifique se não há espaços em branco antes de
<?php - Certifique-se de que os arquivos estão salvos em UTF-8 sem BOM
- Verifique a URL base em
assets/js/app.js - Confirme que o mod_rewrite está ativo
- Teste acessar diretamente:
https://seudominio.com/api/habitos.php
id- ID único do usuárionome- Nome completoemail- Email (único)senha- Senha criptografadadata_cadastro- Data de registroultimo_acesso- Último login
id- ID único do hábitousuario_id- ID do usuário (FK)nome- Nome do hábitodescricao- Descrição detalhadacor- Cor em hexadecimalicone- Emoji do hábitometa_semanal- Dias por semana (1-7)ativo- Status (1=ativo, 0=inativo)
id- ID único do registrohabito_id- ID do hábito (FK)data- Data do registroconcluido- Se foi concluído (1/0)notas- Notas opcionais
- Instalar XAMPP - https://www.apachefriends.org
- Copiar projeto - Coloque em
C:\xampp\htdocs\habitos - Configurar .env:
DB_HOST=localhost:3306 DB_NAME=habitos_db DB_USER=root DB_PASS= BASE_URL=http://localhost/habitos
- Criar banco - Acesse http://localhost/phpmyadmin
- Executar migrações:
php database/migrate.php run
- Acessar - http://localhost/habitos
O projeto usa um sistema de migrações SQL similar ao Laravel:
# Ver status das migrações
php database/migrate.php status
# Executar migrações pendentes
php database/migrate.php runCriar nova migração:
- Crie um arquivo em
database/migrations/ - Use o formato:
###_descricao.sql - Exemplo:
003_add_notifications.sql
-- Migração 003: Adicionar sistema de notificações
CREATE TABLE IF NOT EXISTS notificacoes (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT NOT NULL,
mensagem TEXT NOT NULL,
lida BOOLEAN DEFAULT FALSE,
criada_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE
);Veja database/migrations/README.md para mais detalhes.
Para problemas com:
- Hospedagem: Contate o suporte do Hostinger
- Código: Verifique os logs de erro e console do navegador
- MySQL: Use o phpMyAdmin para verificar as tabelas
Este projeto é de código aberto e pode ser usado livremente.
Após ter o sistema funcionando, você pode:
- ✨ Adicionar gráficos de progresso
- 📅 Criar visualização de calendário
- 🏆 Implementar sistema de conquistas
- 📧 Adicionar notificações por email
- 📱 Criar aplicativo mobile
- 👥 Adicionar hábitos compartilhados
- 🎨 Criar temas personalizados
Desenvolvido com ❤️ para ajudar você a construir melhores hábitos!