Projekt ma na celu integrację i analizę danych dotyczących rozwoju przemysłu oraz stanu środowiska w Polsce, pozyskanych z portalu BDL (Bank Danych Lokalnych). Dane te są analizowane w celu wykrycia zależności, generowania raportów i wizualizacji, a także umożliwienia użytkownikom ich przeglądania za pomocą REST API oraz interfejsu webowego.
.
├── app/
│ ├── auth.py
│ ├── crud.py
│ ├── database.py
│ ├── main.py
│ ├── middleware.py
│ ├── models.py
│ ├── rest_api.py
│ ├── schemas.py
│ └── routes/
│ ├── chart_routes.py
│ ├── correlation_routes.py
│ ├── crud_routes.py
│ ├── import_export_routes.py
│ └── report_routes.py
│
├── frontend/
│ ├── app.js
│ ├── index.html
│ ├── login.html
│ ├── login.js
│ ├── login.css
│ └── styles.css
│
├── json_files/
│ ├── Emisja zanieczyszczeń gazowych.json
│ ├── Emisja zanieczyszczeń pyłowych.json
│ ├── Grunty rolne i leśne wyłączone z produkcji rolniczej.json
│ ├── Moc zainstalowana i osiągalna w elektrowniach.json
│ ├── Produkcja budowlano-montażowa.json
│ ├── Produkcja sprzedana przemysłu i budownictwa.json
│ ├── Zużycie energii elektrycznej przez sektor przemysłowy.json
│ └── Ścieki przemysłowe odprowadzone w ciągu roku.json
│
├── import_data.py
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── run_project.ps1
└── README.md- auth.py — logika uwierzytelniania użytkowników.
- crud.py — obsługa operacji CRUD na danych przemysłowych i środowiskowych.
- database.py — konfiguracja połączenia z bazą danych (SQLAlchemy).
- main.py — uruchamianie aplikacji FastAPI.
- middleware.py — obsługa CORS i innych middleware’ów.
- models.py — definicje modeli ORM.
- rest_api.py — definicja głównych endpointów API.
- schemas.py — walidacja danych i struktury odpowiedzi API (Pydantic).
- routes/ — osobne moduły dla:
chart_routes.py— generowanie wykresów na podstawie danych.correlation_routes.py— obliczanie korelacji pomiędzy wskaźnikami przemysłu i środowiska.crud_routes.py— podstawowe operacje CRUD.import_export_routes.py— importowanie danych z JSON/CSV oraz eksport.report_routes.py— generowanie raportów.
- index.html — strona główna aplikacji (panel użytkownika).
- login.html / login.js / login.css — ekran logowania i obsługa uwierzytelniania.
- app.js — logika aplikacji frontendowej.
- styles.css — ogólne style CSS.
Pliki JSON pobrane z portalu BDL (emisje, produkcja przemysłu, zużycie energii itp.).
✅ Importowanie danych z plików JSON przy użyciu import_data.py lub endpointu API.
✅ REST API do:
- logowania i uwierzytelniania (token JWT),
- generowania wykresów (np. słupkowe, liniowe),
- obliczania współczynników korelacji (np. Pearsona) pomiędzy wskaźnikami przemysłu i środowiska,
- operacji CRUD na danych,
- importowania/eksportowania danych w formatach JSON,YAML,XML,
- generowania raportów analitycznych (JSON, YAML, XML).
✅ Analiza danych:
- agregacja danych według województw, lat lub wskaźników,
- normalizacja wskaźników w celu porównań regionalnych,
- obsługa brakujących danych.
✅ Wizualizacje danych:
- tworzenie wykresów trendów i wykresów porównawczych,
- eksport wykresów do PNG.
✅ Frontend:
- ekran logowania z uwierzytelnianiem JWT,
- dashboard do wyświetlania danych i raportów.
✅ Obsługa uwierzytelniania JWT.
✅ Obsługa Dockera:
- plik
Dockerfiledo budowania obrazu aplikacji, - plik
docker-compose.ymldo uruchamiania w kontenerach.
Klonowanie repozytorium
git clone https://github.com/twoj-login/integration_project.git
cd integration_project
Utworzenie środowiska wirtualnegopython -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # WindowsInstalacja zależności
pip install -r requirements.txt🚀 Uruchamianie projektu Opcja 1: Uruchamianie za pomocą skryptu PowerShell
.\run_project.ps1Skrypt uruchamia backend, frontend oraz w razie potrzeby wykonuje dodatkowe kroki (np. import danych lub migracje bazy danych).
Opcja 2: Uruchamianie za pomocą Docker Compose
docker-compose up --buildUruchamia aplikację w kontenerach, umożliwiając szybkie wdrożenie na dowolnym środowisku.
📂 Import danych Do importu danych z folderu json_files/ służy skrypt:
python import_data.pyAlternatywnie można wykorzystać endpoint /import w API.
🧩 Zależności Python 3.8+
FastAPI
SQLAlchemy
Pandas
Matplotlib
Uvicorn
Wszystkie zależności zostały zdefiniowane w pliku requirements.txt.