nordabiz/PROJECT_INFO.md
2026-01-01 14:01:49 +01:00

6.2 KiB

NORDA BIZNES HUB - Informacje Projektowe

Cel Projektu

Katalog firm członkowskich NORDA BIZNES - stowarzyszenia biznesowego z Wejherowa i okolic. Aplikacja webowa umożliwiająca przeglądanie, wyszukiwanie i czat z AI o firmach członkowskich.

Status Bazy Danych

Aktualna Zawartość

Struktura Bazy

Database: SQLite (nordabiz_local.db) ORM: SQLAlchemy

Tabele:

  • companies - 80 firm członkowskich
  • categories - kategorie branżowe
  • users - użytkownicy z logowaniem

Model Company (companies)

id INTEGER PRIMARY KEY
name VARCHAR(255) NOT NULL          # Nazwa handlowa
legal_name VARCHAR(255)             # Pełna nazwa prawna
slug VARCHAR(255) UNIQUE            # URL-friendly identyfikator

# Identyfikatory podatkowe
nip VARCHAR(10)                     # NIP (bez UNIQUE - możliwe duplikaty)
regon VARCHAR(14)                   # REGON
krs VARCHAR(10)                     # KRS

# Dane kontaktowe
website VARCHAR(500)
email VARCHAR(255)
phone VARCHAR(50)

# Adres
address_street VARCHAR(255)
address_city VARCHAR(100)
address_postal VARCHAR(10)
address_full TEXT

# Opisy
description_short TEXT
description_full TEXT

# Metadane
category_id INTEGER                 # FK do categories
year_established INTEGER
employees_count INTEGER
capital_amount NUMERIC(15,2)
status VARCHAR(20)                  # 'active'
data_quality VARCHAR(20)            # 'basic', 'enhanced', 'complete'
last_updated DATETIME
created_at DATETIME

Ważna Zmiana Schematu

NIP bez UNIQUE constraint - pozwala na przypisanie tego samego NIP do wielu wpisów.

Powód: Jedna firma prawna może mieć wiele marek/usług na liście NORDA:

  • Nadmorski24.pl (portal)
  • Radio Norda FM (radio)
  • TTM (telewizja)

Wszystkie trzy mają NIP: 5882285147 (Twoja Telewizja Morska sp. z o.o.)

Skrypty Importu

Historia Importów

  1. Batch 1-3 - 56 firm (poprzednia sesja)
  2. Batch 4 (import_norda_batch4.py) - 9 firm
  3. Batch 5 (import_norda_batch5.py) - 8 firm
  4. Batch 6 (fix_norda_database.py) - 4 brakujące firmy
  5. Split (split_ttm_companies.py) - podział TTM na 3 wpisy

Usunięcia

  • Test companies - 10 firm testowych (NIP 567*)
  • Autotest Polska - nie jest członkiem NORDA

Korekty Nazw (9 firm)

WATERM Artur Wiertel → Waterm
Ekofabryka Wejherowo → Ekofabryka
Kancelaria Rachunkowa Gawin & Wojnowska → Kancelaria Rachunkowa Gawin & Wojnowska Sp. z o. o.
Round Two → Round Two Sp. z o.o.
Hebel Masiak i Wspólnicy → Hebel Masiak i Wspólnicy Adwokaci i Radcowie Prawni
PHU U Witka → PHU Witka
Kupsa Coatings → Kupsa Coathing
Litwic & Litwic → Litwic&Litwic

Funkcje Pomocnicze

create_slug(name: str) -> str

Tworzy URL-friendly slug z polskiej nazwy firmy.

replacements = {
    'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l',
    'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z', 'ż': 'z',
    '&': 'i', ' ': '-', '/': '-'
}

parse_address(address: str) -> dict

Parsuje polski adres na komponenty (ulica, miasto, kod pocztowy). Regex: (\d{2}-\d{3})\s+([A-ZĄĆĘŁŃÓŚŹŻ][a-z]+)

Aplikacja Flask

Uruchomienie

python3 app.py
# Dostęp: http://localhost:5001

Główne Funkcje

  • Katalog firm - przeglądanie z kategoriami
  • Wyszukiwanie - po nazwie, NIP, mieście
  • Szczegóły firmy - /company/<slug>
  • Czat AI - Google Gemini 2.0 Flash (FREE tier)
  • Logowanie - Flask-Login, CSRF protection

Użytkownik Testowy

username: admin@nordabiz.local
password: admin123

Kategorie Firm

Domyślna kategoria: Inne (slug: inne)

Kategorie do rozszerzenia:

  • Budownictwo
  • IT i technologie
  • Usługi prawne
  • Produkcja
  • Handel
  • Transport
  • itp.

Źródła Danych

Główne Źródło

https://norda-biznes.info/czlonkowie - oficjalna lista 80 członków

Źródła Dodatkowe (dla wzbogacania danych)

Metodologia

  1. Pobieranie listy firm z norda-biznes.info
  2. Wzbogacanie danych ze stron WWW firm
  3. Walidacja NIP/REGON/KRS
  4. Import do bazy z jakością danych: 'enhanced'

Pliki Konfiguracyjne

.env

DATABASE_URL=sqlite:///nordabiz_local.db
SECRET_KEY=<random_secret>
GEMINI_API_KEY=<api_key>

database.py

Definicje modeli SQLAlchemy

app.py

Główna aplikacja Flask

Następne Kroki (TODO)

Rozwój Funkcjonalności

  • Dodać pełne kategorie firm zamiast "Inne"
  • Zaimportować loga firm
  • Dodać mapy Google dla lokalizacji
  • Rozszerzyć profile firm (galerie, oferty)
  • Panel administracyjny do zarządzania

Poprawa Danych

  • Zweryfikować wszystkie adresy email
  • Uzupełnić brakujące numery telefonów
  • Dodać rok założenia dla wszystkich firm
  • Poprawić opisy firm (copywriting)

Integracje

  • Export do CSV/Excel
  • API REST dla aplikacji zewnętrznych
  • Synchronizacja z GUS/CEIDG
  • Newsletter dla członków

SEO i Marketing

  • Meta tagi dla każdej firmy
  • Sitemap.xml
  • Schema.org markup
  • Google Analytics

Technologie

  • Backend: Python 3.9+, Flask 3.0+, SQLAlchemy
  • Database: SQLite (development), PostgreSQL (production ready)
  • Frontend: HTML5, Bootstrap 5, JavaScript
  • AI: Google Gemini 2.0 Flash (FREE tier)
  • Auth: Flask-Login, werkzeug password hashing
  • Forms: Flask-WTF (CSRF protection)

Uwagi Techniczne

Port Conflicts

Aplikacja działa na porcie 5001. W razie konfliktu:

lsof -ti:5001 | xargs kill -9

Background Processes

Sprawdzenie działających instancji:

ps aux | grep app.py

Database Backup

cp nordabiz_local.db nordabiz_local.db.backup_$(date +%Y%m%d_%H%M%S)

Schema Migration

W razie potrzeby migracji użyj Alembic (nie skonfigurowane obecnie).

Kontakt z NORDA BIZNES

Website: https://norda-biznes.info Lokalizacja: Wejherowo, województwo pomorskie Typ: Stowarzyszenie biznesowe


Ostatnia aktualizacja: 2025-11-24 Status: Baza danych kompletna (80/80 firm) Jakość danych: Enhanced (pełne dane firmowe, NIP/REGON/KRS zweryfikowane)