
Curso: Ciência da Computação
Professor: Dr. Edeílson Milhomem
GRUPO 1:
| Nome | Perfil GitHub |
|---|---|
| Tiago Barbosa de Castro Souza | TiagoBrs |
| Vitor Kawan Barbosa Borges | KawanVitor1 |
| Lucas Monteiro de Carvalho | lucas-mcarvalho |
| Matheus Silva Pontes | matheuspontes01 |
| Bruno Henrique Frota Sobral | Bruno-uft |
| Kayk Zago Pinheiro | kayke002 |
O projeto TimerBook tem como objetivo ser um software para gerenciamento de suas leituras. Inclui funcionalidades como o cadastro de livros que o usuário esteja lendo, acesso a banco de dados de livros já cadastrados e sistemas de métricas e lembrentes para auxiliar o usuário na leitura de seus diversos livros e comensurar seu desempenho.
Clique aqui e veja nossa landing-page do nosso projeto
TimerBook/
├── App/
└── controllers/
└── models/
└── views/
└── cron/
└── core
├── public/
└── index.php
└── api.php
└── style/
└── uploads/
└── .htacces
├──.env
├──.gitignore
├──.phpunit.result.cache
├──composer.json
├──composer.lock
├──index.html
├──phpunit.xml
├──README.MD
├──run_reminders.bat
├──TimerbookLogo.png
├──vendor/
├──tests/
├──mysql-init/
├──logs/
Você tem duas opções para rodar o projeto: Manual (XAMPP) ou Via Docker. Escolha a que preferir abaixo.
Pré-requisito: Instalar o Git ⚠️ Antes de prosseguir, certifique-se de que você tem o Git instalado na sua máquina.
Clone o repositório
git clone [https://github.com/lucas-mcarvalho/TimerBook.git](https://github.com/lucas-mcarvalho/TimerBook.git)
cd TimerBook
Configure o ambiente
Crie um arquivo .env na raiz do projeto e cole o conteúdo abaixo.
⚠️ Atenção: Você precisará preencher as chaves da AWS (S3 Bucket) e as configurações de SMTP (E-mail) com seus próprios dados para que o upload de imagens e envio de e-mails funcionem.
# Docker (Mantenha comentado para uso local/XAMPP)
#DB_CONNECTION=mysql
#DB_HOST=db
#DB_PORT=3306
#DB_DATABASE=Users
#DB_USERNAME=timerbook_user
#DB_PASSWORD=1234
# Configuração Local (XAMPP)
DB_HOST=localhost
DB_USER=root
DB_NAME=Users
DB_PASS=
# Configuração de E-mail (Necessário configurar SMTP)
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=seu_email@gmail.com
MAIL_PASSWORD=sua_senha_de_app
MAIL_FROM=seu_email@gmail.com
MAIL_FROM_NAME=TimerBook
# AWS S3 (Necessário criar um Bucket na AWS)
AWS_ACCESS_KEY_ID=SUA_CHAVE_DE_ACESSO_AQUI
AWS_SECRET_ACCESS_KEY=SUA_CHAVE_SECRETA_AQUI
AWS_DEFAULT_REGION=sa-east-1
S3_BUCKET_NAME=nome-do-seu-bucket
# Google OAuth
GOOGLE_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=seu-client-secret
mysql-init na raiz do projeto.Users.mysql-init para criar as tabelas e inserir os dados iniciais.Mover os arquivos para o servidor Dependendo do seu sistema operacional, mova a pasta do projeto para o diretório do Apache:
🪟 Windows:
Copie a pasta TimerBook e cole dentro de: C:\xampp\htdocs\
🐧 Linux: Execute o comando abaixo no terminal:
sudo cp -r TimerBook /opt/lampp/htdocs/
Ajuste as permissões com: sudo chmod -R 777 /opt/lampp/htdocs/TimerBook
http://localhost/TimerBook/
Se você preferir não instalar o XAMPP, pode rodar o projeto usando containers Docker.
Configuração do Ambiente (.env)
Abra o arquivo .env e alterne as configurações do banco de dados. Comente as linhas do “Localhost” e descomente as linhas do “Docker”, para que fique assim:
# Configuração Docker (DESCOMENTE ESTAS LINHAS)
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=Users
DB_USERNAME=timerbook_user
DB_PASSWORD=1234
# Configuração Local (COMENTE ESTAS LINHAS)
# DB_HOST=localhost
# DB_USER=root
# DB_NAME=Users
# DB_PASS=
Subir os Containers Na raiz do projeto, abra o terminal, troque para a branch correta e execute:
git checkout docker
docker-compose up -d --build
Aguarde alguns instantes. O banco de dados será criado e configurado automaticamente na primeira execução.
http://localhost:8080
(Ou a porta definida no seu docker-compose.yml).
⚠️ Atenção: Se você rodou o projeto via Docker, pule esta etapa. O container já gerencia isso automaticamente.
Para quem usa XAMPP/Instalação Manual, é necessário configurar uma tarefa automática para enviar notificações diariamente.
Para que o sistema envie as notificações de leitura, é necessário configurar uma tarefa automática (Cronjob) que execute diariamente à meia-noite.
O projeto já inclui um arquivo chamado run_reminders.bat na raiz.
run_reminders.bat em um editor de texto e verifique se o caminho para o executável do PHP e para o projeto estão corretos no seu computador.Win + R, digite taskschd.msc e dê Enter para abrir o Agendador de Tarefas.TimerBook Lembretes.run_reminders.bat que está na pasta do projeto.Utilize o Crontab para agendar a execução do script PHP.
⚠️ Importante: Certifique-se de que o pacote cron está instalado na sua distribuição (algumas versões minimalistas não o trazem por padrão).
1. Instalação e Inicialização:
sudo apt install cronsudo service cron startsudo pacman -S croniesudo systemctl start croniesudo dnf install croniesudo systemctl start croniesudo emerge sys-process/croniesudo /etc/init.d/cronie startsudo service cron startcrontab -e
0 0 * * * /opt/lampp/bin/php /opt/lampp/htdocs/TimerBook/App/cron/send_reminders.php >> /opt/lampp/htdocs/TimerBook/logs/cron.log 2>&1
Ctrl+O e depois Ctrl+X se estiver usando Nano).