Skip to content

WoofDeveloper/firma-app

Repository files navigation

🏭 ProProcurement - Industrial Sourcing Platform

Laravel PHP Tailwind CSS License

Profesjonalna platforma do zarządzania zakupami przemysłowymi z wbudowanym CRM

DemoFunkcjonalnościInstalacjaDokumentacja


📋 Spis treści


🎯 O projekcie

ProProcurement to kompleksowa aplikacja webowa stworzona dla firm zajmujących się outsourcingiem zakupów przemysłowych. Łączy elegancką stronę publiczną z zaawansowanym panelem CRM, umożliwiając efektywne zarządzanie zapytaniami ofertowymi, generowanie profesjonalnych ofert PDF oraz prowadzenie bazy wiedzy.

Kluczowe cechy:

  • 🌐 Dwujęzyczność - pełne wsparcie dla języka polskiego i angielskiego
  • 🔐 Bezpieczeństwo 2FA - logowanie dwuetapowe z Google Authenticator / Proton Authenticator
  • 📊 Dashboard analityczny - wykresy i statystyki w czasie rzeczywistym
  • 💱 Integracja NBP - automatyczne przeliczanie walut wg kursu NBP
  • 📧 System mailingowy - powiadomienia i newsletter

✨ Główne funkcjonalności

🌍 Strona Publiczna

Funkcja Opis
Strona główna Nowoczesny landing page z sekcjami: Hero, O nas, Usługi, Portfolio, Blog, Kontakt
Formularz RFQ Zapytania ofertowe z obsługą załączników (PDF, DWG, STEP, ZIP)
Baza wiedzy Blog z edytorem WYSIWYG (Trix) i optymalizacją SEO
Portfolio Galeria zrealizowanych projektów z kategoriami
Newsletter System subskrypcji z linkiem do wypisania
Wielojęzyczność Automatyczne przełączanie PL/EN

🎛️ Panel Administracyjny (CRM)

Moduł Funkcjonalności
Dashboard KPI, wykres zapytań (Chart.js), ostatnie zgłoszenia, wartość ofert
Zarządzanie RFQ Lista zapytań, zmiana statusów, podgląd szczegółów, pobieranie załączników
Generator Ofert Tworzenie ofert PDF, obsługa wielu walut (PLN/EUR/USD), przelicznik NBP
Usługi CRUD usług z wersjami PL/EN
Portfolio Zarządzanie realizacjami z uploadem zdjęć
Blog Edytor Trix, publikacja/szkice, SEO-friendly slugi
Newsletter Wysyłka masowa, lista subskrybentów
Backup Tworzenie i pobieranie kopii zapasowych bazy danych
Profil Edycja danych, konfiguracja 2FA

🛠️ Technologie

Backend

PHP 8.2+ | Laravel 12 | Eloquent ORM

Frontend

Blade Templates | Tailwind CSS 3.x | Alpine.js | Chart.js | Trix Editor

Baza danych

MySQL / PostgreSQL / SQLite

Pakiety i integracje

Pakiet Zastosowanie
laravel/breeze Uwierzytelnianie
barryvdh/laravel-dompdf Generowanie PDF
pragmarx/google2fa Dwuetapowa weryfikacja
spatie/laravel-backup System backupów
NBP API Kursy walut

DevOps

Docker (Laravel Sail) | Vite | NPM

🚀 Instalacja

Wymagania

  • PHP >= 8.2
  • Composer
  • Node.js >= 18
  • MySQL / PostgreSQL / SQLite

Szybki start

# 1. Klonowanie repozytorium
git clone https://github.com/WoofDeveloper/firma-app.git
cd firma-app

# 2. Instalacja zależności PHP
composer install

# 3. Instalacja zależności Node.js
npm install

# 4. Konfiguracja środowiska
cp .env.example .env
php artisan key:generate

# 5. Konfiguracja bazy danych w .env
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_DATABASE=firma_app
# DB_USERNAME=root
# DB_PASSWORD=

# 6. Migracje
php artisan migrate

# 7. Uruchomienie
php artisan serve
npm run dev

Docker (Laravel Sail)

# Uruchomienie z Docker
./vendor/bin/sail up -d

# Migracje w kontenerze
./vendor/bin/sail artisan migrate

⚙️ Konfiguracja

Zmienne środowiskowe (.env)

# Aplikacja
APP_NAME="ProProcurement"
APP_URL=http://localhost

# Poczta (dla powiadomień i newslettera)
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_FROM_ADDRESS="biuro@proprocurement.pl"

# Backup (opcjonalne)
BACKUP_NOTIFICATION_EMAIL=admin@example.com

Harmonogram zadań (Cron)

# Dodaj do crontab dla automatycznych zadań
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1

Zaplanowane zadania:

  • sitemap:generate - codziennie o 2:00 (generowanie mapy strony)

📁 Struktura projektu

firma-app/
├── app/
│   ├── Console/Commands/     # Komendy Artisan (sitemap)
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Admin/        # Kontrolery panelu CRM
│   │   │   └── ...           # Kontrolery publiczne
│   │   └── Middleware/       # 2FA, Language
│   ├── Mail/                 # Szablony maili
│   ├── Models/               # Eloquent Models
│   └── Services/             # Serwisy (NBP API)
├── database/
│   └── migrations/           # Migracje bazy danych
├── lang/
│   ├── en/                   # Tłumaczenia angielskie
│   └── pl/                   # Tłumaczenia polskie
├── resources/
│   ├── css/                  # Style Tailwind
│   ├── js/                   # Alpine.js
│   └── views/
│       ├── admin/            # Widoki panelu CRM
│       ├── auth/             # Logowanie, 2FA
│       ├── emails/           # Szablony email
│       ├── layouts/          # Layouty (app, guest)
│       └── partials/         # Komponenty (navbar, cookies)
├── routes/
│   ├── web.php               # Trasy główne
│   └── console.php           # Harmonogram zadań
└── public/                   # Pliki publiczne

🔌 API i Integracje

NBP API

Automatyczne pobieranie kursów walut dla ofert w EUR/USD:

// app/Services/NbpService.php
$rate = NbpService::getRate('EUR'); // Zwraca aktualny kurs

Generowanie Sitemap

php artisan sitemap:generate

🔒 Bezpieczeństwo

Implementacje bezpieczeństwa:

Funkcja Opis
2FA (TOTP) Dwuetapowa weryfikacja z Google/Proton Authenticator
CSRF Protection Ochrona formularzy
Middleware Auth Chronione trasy panelu
Signed URLs Bezpieczne linki wypisania z newslettera
File Validation Walidacja typów i rozmiarów załączników

Konfiguracja 2FA

  1. Zaloguj się do panelu
  2. Przejdź do Profil → Bezpieczeństwo (2FA)
  3. Zeskanuj kod QR aplikacją Authenticator
  4. Wprowadź kod weryfikacyjny

📊 Modele danych

User ─────────────── (auth, 2FA)
  │
Rfq ──────────────── (zapytania ofertowe)
  │
  └── Offer ──────── (oferty)
        │
        └── OfferItem (pozycje oferty)

Service ─────────── (usługi)
Project ─────────── (portfolio)
Post ────────────── (blog)
Subscriber ──────── (newsletter)

🤝 Wkład w projekt

  1. Fork repozytorium
  2. Utwórz branch (git checkout -b feature/AmazingFeature)
  3. Commit (git commit -m 'Add AmazingFeature')
  4. Push (git push origin feature/AmazingFeature)
  5. Otwórz Pull Request

📄 Licencja

Projekt jest dostępny na licencji MIT. Zobacz plik LICENSE po szczegóły.


👤 Autor

WoofDeveloper


⭐ Jeśli projekt Ci się podoba, zostaw gwiazdkę! ⭐

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages