Repository intended for the implementation of an academic project in partnership with a real company.
This ETL (Extract, Transform, Load) project is designed to process and manage data efficiently. It integrates with the Taiga API to extract project-related data, transform it into meaningful insights, and load it into a PostgreSQL data warehouse. The project is implemented using Python and leverages libraries such as SQLAlchemy, Pandas, and Requests for database operations, data manipulation, and API communication.
- Python 3.10 or higher
- PostgreSQL database
- pip (Python Package Manager)
Clone this repository using the following commands:
git clone https://github.com/your-repo/Track-5Sem2025ETL.git
cd Track-5Sem2025ETLReplace the placeholders with your database and Taiga API credentials.
Install the project dependencies with the command:
pip install -r requirements.txtAfter cloning and installing the dependencies, it is necessary to activate the git commit standardization, file .pre-commit-config.yaml, follow with the commands:
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit.sample.old
pre-commit install --hook-type commit-msg --hook-type pre-commiAfter running the ETL pipeline, the processed data will be available in the PostgreSQL database specified in the .env file.
DB_HOST=localhost
DB_DATABASE=projeto_tarefas
DB_SCHEMA=public
DB_PORT=5432
DB_USER=admin
DB_PASSWORD=senha123
TAIGA_HOST=https://taiga.example.com
TAIGA_USER=taiga_admin
TAIGA_PASSWORD=taiga_pass
TAIGA_MEMBER=eduardo_f_paula
JIRA_HOST=https://jira.example.com
JIRA_USER=eduardo.jira
JIRA_TOKEN=jiraToken123abcXYZ456
EMAIL_EDUARDO=eduardo.fariasp@example.com
EMAIL_ANA=ana.silva@example.com
EMAIL_LUCAS=lucas.rocha@example.com
EMAIL_ANDRE=andre.martins@example.com
EMAIL_ALI=ali.khan@example.com
EMAIL_ALITA=alita.garcia@example.com
EMAIL_WILLIAM=william.souza@example.comRun the tests to ensure that the code is clean, identifiable and follows the correct convention. Run the flake8 linter in the etl_taiga directory to check that the code follows the Python Style Best Practices (PEP8).
flake8 etl_taigaUnit testing with code coverage
pytest etl_taiga/tests --cov=etl_taiga --cov-report=xml:coverage.xml --cov-report=termThis project uses a prefect.yaml file to configure and run the Prefect project.
prefect project initThis will create or update the prefect.yaml file.
prefect deploy --allThis will build and register all deployments defined in your prefect.yaml.
prefect agent start --pool default-agent-pool
⚠️ Replacedefault-agent-poolwith the actual name of your agent pool if different.