Skip to content

REST API for flashcard management, built with Python, Flask, SQLAlchemy, Pytest, PostgreSQL, and Docker.

License

Notifications You must be signed in to change notification settings

TechAbraao/flash-cards-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flash Cards REST API

Tecnologias

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

Funcionalidades

  • Gerenciamento de Decks: criar, listar, atualizar, excluir e visualizar detalhes de decks de flashcards.
  • Gerenciamento de Flashcards: criar flashcards, associá-los a decks, buscar aleatoriamente ou individualmente, atualizar e remover flashcards.

Instalação

# Clone o repositório já trazendo o submódulo templates
git clone --recurse-submodules https://github.com/TechAbraao/flash-cards-rest-api.git

# Acesse o diretório do projeto
cd flash-cards-rest-api

# (Opcional) Se esqueceu do --recurse-submodules, inicialize o submódulo manualmente
git submodule update --init --recursive

# Crie o ambiente virtual
python3 -m venv .venv

# Ative o ambiente virtual (Linux ou Mac)
source .venv/bin/activate

# Ou, se estiver no Windows
# .venv\Scripts\activate

# Instale as dependências do projeto
pip install -r src/requirements.txt

# Acesse a pasta de código-fonte
cd src

# Rode a aplicação Flask
flask run

Atualizando o submódulo templates (quando houver alterações)

# Acesse a pasta do submódulo
cd src/app/templates

# Busque as últimas alterações do repositório de templates
git pull origin main  # ou a branch correta

# Volte para o repositório principal
cd ../../../..

# Adicione e commite a atualização do submódulo
git add src/app/templates
git commit -m "Atualiza submódulo templates"
git push origin main

Contrato e Definições da API

Endpoints

Decks

Método URL Descrição
GET /api/decks Listar todos os decks
POST /api/decks Criar um novo deck
GET /api/decks/<id> Obter detalhes de um deck
PUT /api/decks/<id> Atualizar informações de um deck
Exemplo de Payload para Decks
{
  "title": "História - Revolução Francesa Atualizado",
  "description": "Deck atualizado com mais flashcards sobre a Revolução Francesa.",
  "tags": ["história", "revolução", "frança"]
}

Cards

Método URL Descrição
POST /api/decks/<deck_id>/cards Adicionar card ao deck
GET /api/decks/<deck_id>/cards Buscar todos os cards de um deck
GET /api/decks/<deck_id>/cards/random Buscar card aleatório do deck
GET /api/cards/<card_id> Buscar card específico
PUT /api/cards/<card_id> Atualizar card específico
DELETE /api/cards/<card_id> Remover card

Exemplo de Payload para Cards

{
  "question": "Quando ocorreu a Revolução Francesa?",
  "answer": "Em 1789.",
  "tags": ["história", "datas", "revolução"]
}

Formato das Respostas da API:

Todas as respostas da API seguem o seguinte padrão:

  • Sucesso
{
  "success": true,
  "message": "Mensagem descritiva da operação",
  "data": { /* objeto ou lista retornada */ }
}
  • Erro
{
  "success": false,
  "message": "Mensagem de erro",
  "error": { /* objeto ou lista de erros */ }
}

Observações:

  • O campo error contém o objeto de erro ou lista de erros.
  • O campo message descreve o resultado da operação ou o motivo do erro.

About

REST API for flashcard management, built with Python, Flask, SQLAlchemy, Pytest, PostgreSQL, and Docker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published