Skip to content

Ligamer24/Personal-Reader-Assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

242 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📋 Pré-requisitos

Antes de começar, certifica-te de que tens as seguintes ferramentas instaladas no teu sistema:

  • Docker e Docker Compose (para o Backend)
  • Node.js (versão 18 ou superior)
  • Git

⚙️ Configuração do Backend (Laravel + Docker)

O backend do projeto corre dentro de um container Docker, o que garante que a base de dados e o servidor funcionam de forma isolada e idêntica em qualquer máquina.

1. Clonar o repositório

git clone https://github.com/Ligamer24/personal-reader-assistant.git
cd personal-reader-assistant/backend

2. Configurar as Variáveis de Ambiente

Copia o ficheiro de exemplo para criares o teu ficheiro .env principal:

cp .env.example .env

Abre o ficheiro .env e configura as credenciais da base de dados e as chaves de segurança (ex: Cloudflare Turnstile):

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=livros_api
DB_USERNAME=sail
DB_PASSWORD=password

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="suport@readerAssistant.com"
MAIL_FROM_NAME="Personal Reader Assistant"

TURNSTILE_SITE_KEY=tua_site_key_aqui
TURNSTILE_SECRET_KEY=tua_secret_key_aqui

3. Levantar os Containers Docker e Preparar a Base de Dados

Inicia o Docker no teu computador e corre os seguintes comandos para construir e levantar os containers (servidor web e base de dados) em segundo plano, acedendo de seguida ao terminal do container:

docker-compose up -d 
docker exec -it nome_do_container_app bash

Dentro do container, executa:

composer install
php artisan key:generate
php artisan migrate --seed

⚠️ Resolução de Problemas: Caso o comando de migração não funcione por não encontrar o nome ou o serviço, executa a seguinte sequência para reiniciar os volumes e tentar novamente:

docker compose down -v
docker compose up -d
docker exec -it nome_do_container_app bash
php artisan migrate --seed

🎉 A tua API deverá estar agora a correr em http://localhost:8000.


📱 Configuração do Frontend (React Native + Expo Router)

O frontend encontra-se na pasta app (ou o nome que deste à pasta do frontend) e utiliza o Expo para facilitar os testes em Web, iOS e Android.

1. Navegar para a pasta do Frontend

Abre um novo terminal e navega para a pasta correspondente:

cd ../frontend
ou
cd ./frontend

2. Instalar as Dependências

npm install

3. Configurar as Variáveis de Ambiente do Frontend

Cria um ficheiro .env na raiz do frontend (junto ao package.json) e adiciona as tuas chaves públicas e o URL da API:

EXPO_PUBLIC_TURNSTILE_SITE_KEY=tua_chave_da_cloudflare
EXPO_PUBLIC_API_URL=http://localhost:8000/api
EXPO_PUBLIC_GOOGLE_BOOKS_KEY=tua_chave_da_google_api_aqui

4. Iniciar a Aplicação

Arranca o servidor de desenvolvimento do Expo:

npx expo start
  • Para testar no Browser (Web): Pressiona a tecla w no terminal.
  • Para testar no Smartphone: Instala a aplicação Expo Go (iOS/Android) e faz scan do código QR que aparece no terminal.

💡 Nota Importante: O telemóvel e o computador têm de estar na mesma rede!

Caso não consigas utilizar o projeto no telemóvel devido a um erro do Expo Go, usa o comando abaixo e volta a tentar no telemóvel:

npx expo start --tunnel

🛠️ Tecnologias Utilizadas

  • Backend: Laravel 11, PHP 8+, MySQL, Docker
  • Frontend: React Native, Expo Router, NativeWind (TailwindCSS)
  • Segurança: Cloudflare Turnstile (Honeypot), Laravel Sanctum
  • APIs Externas: Google Books API

About

Final Bachelor Project w/ Bernardo Lourenço

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages