BookMe to aplikacja webowa do zarządzania rezerwacjami usług zbudowana w oparciu o framework Symfony 7. System umożliwia kompleksowe zarządzanie procesem rezerwacji od wyboru usługi przez klienta do jej realizacji przez pracowników.
- Przeglądanie usług - kategoryzowane usługi z opisami i zdjęciami
- Rezerwacja terminów - wybór dostępnych terminów u konkretnych pracowników
- Zarządzanie rezerwacjami - przeglądanie i edycja własnych rezerwacji
- System opinii - wystawianie ocen i komentarzy po zakończonej usłudze
- Powiadomienia - informacje o statusie rezerwacji
- Wyszukiwarka - znajdowanie usług według kategorii i lokalizacji
- Kalendarz rezerwacji - przeglądanie przypisanych terminów
- Zarządzanie dostępnością - ustalanie godzin pracy
- Historia usług - przegląd wykonanych rezerwacji
- Zarządzanie usługami - dodawanie, edycja kategorii i opisów usług
- Zarządzanie pracownikami - przypisywanie pracowników do usług
- Zarządzanie ofertami - tworzenie pakietów usług
- Godziny otwarcia - konfiguracja dostępności systemu
- Zarządzanie użytkownikami - administracja kontami klientów
- System opinii - moderacja komentarzy i ocen
- Backend: Symfony 7.0 (PHP 8.2+)
- Database: Doctrine ORM z SQLite
- Frontend: Twig templates + Vanilla JavaScript
- Build Tools: Webpack Encore
- CSS Libraries: FontAwesome 6.7, Swiper.js
- Testing: PHPUnit 11.5
- Security: Symfony Security Bundle z autentykacją formularzową
- PHP 8.2 lub wyższy
- Composer
- Node.js i npm
- SQLite (domyślnie) lub MySQL/PostgreSQL
git clone <repository-url>
cd BookMecomposer installnpm install# Skopiuj plik .env i dostosuj konfigurację
cp .env .env.local
# Edytuj .env.local i ustaw:
# APP_ENV=dev
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"# Tworzenie bazy danych
php bin/console doctrine:database:create
# Wykonanie migracji
php bin/console doctrine:migrations:migrate
# Załadowanie danych testowych (opcjonalnie)
php bin/console doctrine:fixtures:load# Dla środowiska deweloperskiego
npm run dev
# Lub tryb watch dla automatycznego przebudowywania
npm run watch
# Dla produkcji
npm run buildsymfony server:start
# lub
php bin/console server:runAplikacja będzie dostępna pod adresem http://localhost:8000
BookMe/
├── assets/ # Zasoby frontend (JS, CSS)
├── config/ # Konfiguracja Symfony
├── migrations/ # Migracje bazy danych
├── public/ # Publiczne zasoby (CSS, JS, obrazy)
├── src/
│ ├── Controller/ # Kontrolery aplikacji
│ │ └── Admin/ # Kontrolery panelu administracyjnego
│ ├── Entity/ # Encje Doctrine
│ ├── Form/ # Formularze Symfony
│ ├── Repository/ # Repozytoria Doctrine
│ ├── Security/ # Komponenty bezpieczeństwa
│ ├── Service/ # Usługi biznesowe
│ └── Twig/ # Rozszerzenia Twig
├── templates/ # Szablony Twig
├── tests/ # Testy jednostkowe i funkcjonalne
└── var/ # Pliki tymczasowe, logi, cache
- User - użytkownicy systemu (klienci, pracownicy, administratorzy)
- Service - usługi oferowane przez firmę
- ServiceCategory - kategorie usług
- Employee - pracownicy wykonujący usługi
- Booking - rezerwacje klientów
- Offer - pakiety usług
- Opinion - opinie i oceny klientów
- Notification - powiadomienia systemowe
- OpeningHour - godziny otwarcia
Aplikacja wykorzystuje wbudowany system bezpieczeństwa Symfony z następującymi rolami:
- ROLE_USER - podstawowi użytkownicy (klienci)
- ROLE_EMPLOYEE - pracownicy
- ROLE_ADMIN - administratorzy systemu
# Uruchomienie wszystkich testów
php bin/phpunit
# Uruchomienie konkretnej grupy testów
php bin/phpunit tests/Controller/
php bin/phpunit tests/Service/
# Testowanie z pokryciem kodu
php bin/phpunit --coverage-html coverage/# Ustawienie środowiska produkcyjnego
APP_ENV=prod
# Budowa zasobów produkcyjnych
npm run build
# Czyszczenie i warming cache
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod# Autoloader Composer dla produkcji
composer install --no-dev --optimize-autoloader
# Preload klas PHP (opcjonalnie)
composer dump-autoload --optimize --classmap-authoritativeGET /- strona głównaGET /service/{encodedName}- szczegóły usługiGET /service-category/{encodedName}- kategoria usługGET /search- wyszukiwarka usługGET /login- logowanieGET /register- rejestracja
GET /booking- lista rezerwacjiPOST /booking/create- tworzenie rezerwacjiGET /opinion- zarządzanie opiniamiGET /notifications- powiadomienia
- Zarządzanie wszystkimi encjami systemu
- Raporty i statystyki
- Konfiguracja systemu
- Fork repozytorium
- Utwórz branch dla nowej funkcjonalności (
git checkout -b feature/nazwa-funkcjonalności) - Zcommituj zmiany (
git commit -am 'Dodano nową funkcjonalność') - Push do brancha (
git push origin feature/nazwa-funkcjonalności) - Utwórz Pull Request
Ten projekt jest własnością prywatną i nie posiada otwartej licencji.
Błędy i propozycje ulepszeń można zgłaszać przez system issue w repozytorium.
W przypadku pytań technicznych skontaktuj się z zespołem deweloperskim.