Skip to content

francisdiasbr/movie-search-blog-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Search Blog Backend

Read in English

API para busca e gerenciamento de filmes e posts de blog.

ĂŤndice

Infraestrutura

O projeto está hospedado na seguinte infraestrutura:

  • Backend: Aplicação Flask hospedada no Heroku
  • Armazenamento de Imagens: Amazon S3 para armazenamento de imagens dos posts
  • Banco de Dados: MongoDB Atlas para persistĂŞncia dos dados

Estrutura do Projeto

movie-search-blog-backend/
├── app.py # Aplicação principal
├── config.py # Configurações (MongoDB, AWS, etc)
├── requirements.txt # Dependências do projeto
├── favorites/ # Módulo de filmes favoritos
│ ├── init.py
│ ├── controller.py # Lógica de negócios
│ ├── models.py # Modelos Swagger
│ └── routes.py # Rotas da API
└── blogposts/ # Módulo de posts do blog
├── init.py
├── controller.py # Lógica de negócios
├── models.py # Modelos Swagger
└── routes.py # Rotas da API

Documentação da API

A documentação Swagger está disponível em http://localhost:5000/docs

URL Base

Endpoints Favoritos

  • POST /api/favorites/search - Exibe todos os filmes favoritos

Endpoints Blog Posts

  • POST /api/blogposts/search - Exibe todos os posts do blog
  • GET /api/blogposts/tconst - Exibe um post especĂ­fico

Endpoints de Imagens

  • GET /api/images/tconst - Exibe todas as imagens de um filme
  • POST /api/images/tconst/filename - Exibe uma imagem especĂ­fica de um filme

Configuração

Crie um ambiente virtual

python -m venv venv

Ative o ambiente virtual

No macOS/Linux

source venv/bin/activate

No Windows

venv\Scripts\activate

DependĂŞncias

pip install -r requirements.txt

Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto e defina as seguintes variáveis:

  • MongoDB:

    • MONGODB_CONNECTION_STRING: String de conexĂŁo com o MongoDB.
    • MONGODB_DATABASE: Nome do banco de dados MongoDB.
  • AWS S3:

    • AWS_ACCESS_KEY_ID: ID da chave de acesso da AWS.
    • AWS_SECRET_ACCESS_KEY: Chave de acesso secreta da AWS.
    • BUCKET_NAME: Nome do bucket S3.

Exemplo de arquivo .env:

MONGODB_CONNECTION_STRING="mongodb+srv://<username>:<password>@cluster0.mongodb.net/"
MONGODB_DATABASE="movie-search"
AWS_ACCESS_KEY_ID="your-access-key-id"
AWS_SECRET_ACCESS_KEY="your-secret-access-key"
BUCKET_NAME="your-bucket-name"

Executando o Projeto

python app.py

Desenvolvimento

Estrutura dos MĂłdulos

Cada mĂłdulo (favorites e blogposts) segue a mesma estrutura:

  • models.py: Define os modelos Swagger para documentação da API
  • routes.py: Define as rotas e endpoints da API
  • controller.py: ContĂ©m a lĂłgica de negĂłcios e interação com o banco de dados

Tecnologias Utilizadas

  • Flask: Framework web
  • Flask-RESTX: ExtensĂŁo para APIs RESTful e documentação Swagger
  • PyMongo: Driver MongoDB
  • Boto3: SDK AWS para Python
  • Python-dotenv: Gerenciamento de variáveis de ambiente

About

🖥️ The backend for Movie Blog Project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published