Uma aplicação para gerenciar planos de estudo, permitindo gerar planos através de inteligencia artificial, atualizar e monitorar metas e tarefas relacionadas.
- Python: Linguagem principal do projeto.
- FastAPI: Framework para criação da API.
- PostgreSQL: Banco de dados utilizado para armazenar os planos e tarefas.
- asyncpg: Biblioteca para interação assíncrona com PostgreSQL.
- Google Generative AI: Integração com a API Gemini para geração de planos de estudo personalizados.
- Pydantic: Validação de dados das requisições e modelos.
- Flask e HTML: Interface
- Adicionar Planos de Estudo: Crie planos com metas, prazos e horas diárias de estudo.
- Visualizar Planos: Listagem de todos os planos criados.
- Excluir Planos: Remoção de planos indesejados.
- Gerenciar Tarefas: Visualizar, atualizar, excluir ou alternar o status de conclusão de tarefas associadas a um plano.
- Progresso Automático: Calcula automaticamente o progresso de um plano com base no número de tarefas concluídas.
- Resetar Banco de Dados: Remove todos os planos e tarefas.
- Criar: Adicionar novos planos de estudo com metas, prazos e horas diárias dedicadas.
- Listar: Recuperar todos os planos cadastrados ou um plano específico por ID.
- Atualizar: Alterar dados de um plano existente, como meta, prazo e progresso.
- Excluir: Remover um plano específico ou resetar todos os planos.
- Gerar: Criar automaticamente tarefas com base nas metas do plano, utilizando a API Gemini.
- Adicionar: Inserir tarefas individuais a um plano específico.
- Listar: Recuperar todas as tarefas de um plano.
- Atualizar: Modificar detalhes de uma tarefa existente, como descrição, semana ou status de conclusão.
- Excluir: Remover uma tarefa específica.
- Python 3.10+
- Docker e Docker Compose
- Conta e chave de API para Google Generative AI
-
Clone o repositório:
git clone git@github.com:Joaohsd/study-plan-manager.git cd study-plan-api -
Configure as variáveis de ambiente:
GOOGLE_API_KEY: Chave da API do Google Generative AI.
-
Execução:
docker compose up --build
- POST
/api/v1/plans/: Criar um novo plano. - GET
/api/v1/plans/: Listar todos os planos. - GET
/api/v1/plans/{id}: Obter detalhes de um plano específico. - PATCH
/api/v1/plans/{id}: Atualizar um plano. - DELETE
/api/v1/plans/{id}: Remover um plano específico.
- POST
/api/v1/plans/{plan_id}/tasks/: Adicionar uma tarefa a um plano. - GET
/api/v1/plans/{plan_id}/tasks/: Listar todas as tarefas de um plano. - PATCH
/api/v1/plans/{plan_id}/tasks/{task_id}: Atualizar uma tarefa. - DELETE
/api/v1/plans/{plan_id}/tasks/{task_id}: Remover uma tarefa específica.
| Nome: Paulo Henrique Lopes Júnior | Nome: João Henrique Silva Delfino |
| Matrícula: 1748 | Matrícula: 1662 |
| E-mail: paulo.ph@gec.inatel.br | E-mail: joao.h@gec.inatel.br |
| LinkedIn: Paulo Lopes | LinkedIn: João Delfino |