# 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ść - **80 firm** - 100% pokrycie oficjalnej listy NORDA BIZNES - Źródło: https://norda-biznes.info/czlonkowie - Data ostatniej aktualizacji: 2025-11-24 ### Struktura Bazy **Database:** PostgreSQL via Docker (`localhost:5433/nordabiz` - DEV) / PostgreSQL (`10.22.68.249:5432` - PROD) **ORM:** SQLAlchemy **Tabele:** - `companies` - 80 firm członkowskich - `categories` - kategorie branżowe - `users` - użytkownicy z logowaniem ### Model Company (companies) ```python 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. ```python 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 ```bash 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/` - **Czat AI** - Google Gemini 2.0 Flash (FREE tier) - **Logowanie** - Flask-Login, CSRF protection ### Użytkownik Testowy ```python 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) - https://pixlab.pl - https://kornix.com.pl - https://waterm.pl - https://norda.fm - https://hebel-masiak.pl ### 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 ``` # DEV (PostgreSQL via Docker) DATABASE_URL=postgresql://nordabiz_app:dev_password@localhost:5433/nordabiz # PROD # DATABASE_URL=postgresql://nordabiz_app:@10.22.68.249:5432/nordabiz SECRET_KEY= GEMINI_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:** PostgreSQL (dev via Docker na localhost:5433, prod na 10.22.68.249:5432) - **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: ```bash lsof -ti:5001 | xargs kill -9 ``` ### Background Processes Sprawdzenie działających instancji: ```bash ps aux | grep app.py ``` ### Database Backup ```bash # DEV (Docker PostgreSQL) docker exec nordabiz-postgres pg_dump -U nordabiz_app nordabiz > backup_dev_$(date +%Y%m%d_%H%M%S).sql # PROD ssh maciejpi@10.22.68.249 "sudo -u postgres pg_dump nordabiz" > backup_prod_$(date +%Y%m%d_%H%M%S).sql ``` ### 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)