============================================================
TCC - PROJETO CRIAKIDS
Instruções para execução local do sistema
============================================================

Este arquivo explica como executar o BACKEND (API em FastAPI)
e o FRONTEND (interface web) do projeto CRIAKIDS localmente.

IMPORTANTE:
- O arquivo .env REAL **não** está incluído no ZIP (por segurança).
- Crie seu próprio .env seguindo o modelo env.example na pasta "backend/".
- O banco utilizado é MongoDB Atlas (não é necessário instalar MongoDB localmente).

============================================================
1. REQUISITOS GERAIS / Recomendações
============================================================
- Python 3.11+ instalado
- Node.js 20+ instalado (se desejar executar o front com servidor)
- Navegador moderno (Chrome, Edge ou Firefox)
- Acesso à internet para conectar ao MongoDB Atlas e ao provedor LLM

============================================================
2. EXECUTAR O BACKEND (FASTAPI)
============================================================

1. Abra um terminal dentro da pasta "backend/"
2. Crie um ambiente virtual:

   Windows:
       python -m venv .venv
       .venv\Scripts\activate
   
   Caso o PowerShell bloqueie a ativação do ambiente virtual, tente utilizar estes comandos:
   	- Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
   	- Set-ExecutionPolicy RemoteSigned

   Linux/Mac:
       python3 -m venv .venv
       source .venv/bin/activate

3. Instale as dependências:
       pip install -r requirements.txt

4. Crie o arquivo .env:
   - Selecione "env.example"
   - Renomeie para ".env"
   - Preencha os campos obrigatórios com suas informações (MONGO_URI será fornecida no tópico 6 deste arquivo).

5. Inicie o servidor da API:
       uvicorn main:app --reload

6. A API estará disponível em:
       http://127.0.0.1:8000

Documentação interativa (Swagger UI):
       http://127.0.0.1:8000/docs

============================================================
3. EXECUTAR O FRONTEND
============================================================

Opção 1 — Abrir diretamente no navegador:
------------------------------------------
Abra o arquivo:
    frontend/index.html

Opção 2 — Rodar servidor local (RECOMENDADO):
-------------------------------
1. Abra um terminal em "frontend/"
2. Caso exista package.json:
       npm install
3. Execute:
       npm run dev

============================================================
4. CONFIGURAÇÃO DA URL DA API NO FRONTEND
============================================================

Edite o arquivo:
    frontend/src/services/api.js

Para ambiente local:
    const API_URL = "http://127.0.0.1:8000";

Para ambiente de produção (opcional):
    const API_URL = "https://api-criakids-82yc.onrender.com";

Deixe somente UMA opção ativa.

============================================================
5. SOBRE A RECUPERAÇÃO DE SENHA
============================================================

A API possui rota de recuperação de senha implementada.
No entanto, a interface visual no front-end ainda não foi desenvolvida.
A funcionalidade está presente no backend como parte da arquitetura planejada.

============================================================
6. SOBRE O BANCO DE DADOS (MONGODB ATLAS)
============================================================

Não é necessário instalar MongoDB localmente.  
Basta preencher a variável MONGO_URI no .env.

Para facilitar, um usuário específico foi criado para a execução do projeto:

    Usuário: usuario_tcc
    Senha:  criakids_123456

Ao preencher sua MONGO_URI no arquivo .env, UTILIZE ESTE MONGO_URI ENTRE PARÊNTESES:
- "MONGO_URI=mongodb+srv://usuario_tcc:criakids_123456@cluster0.dvam31v.mongodb.net/?appName=Cluster0"

IMPORTANTE:
- O arquivo env.example contém placeholders.
- A banca deve preencher o .env com a connection string fornecida aqui.
- Para utilizar recursos de IA, é necessário inserir sua própria chave de API LLM no .env (O projeto funciona normalmente      	mesmo sem a chave)

============================================================
7. ESTRUTURA FINAL DO PROJETO
============================================================

O arquivo ZIP enviado contém:

- backend/
- frontend/
- instrucoes.txt
- slides_criakids.pdf
- Cria Kids_Ficha Catalográfica.pdf