Skip to content

SLOths4/DoDomuDojade

Repository files navigation

DoDomuDojadę

GitHub last commit
GitHub issues
GitHub stars

O projekcie

DoDomuDojadę to aplikacja webowa, która stanowi wirtualną tablicę informacyjną.

Cele projektu:

  • Ułatwienie dostępu do informacji publicznych (transport, pogoda).
  • Minimalistyczna architektura dla szybkiego rozwoju.
  • Łatwość integracji z nowymi źródłami danych.

Spis treści

Dokumentacja

W dokumentacji odnajdziesz więcej informacji odnośnie projektu. Poniżej znajduje się minimum, które jest wymagane do uruchomienia projektu.

  • Dokumentacja projektu znajduje się tutaj
  • Autogenerowana dokumentacja kodu (klas, funkcji) znajduje się tutaj

Jeżeli chcesz zobaczyć dokumentację lokalnie, przejdź do sekcji lokalna dokumentacja.

Dostępne moduły

  • tramwaje
  • ogłoszenia
  • słowo dnia
  • cytat dnia
  • pogoda
  • odliczanie

Stos technologiczny

Backend

  • PHP 8.5

Frontend

  • Tailwind CSS
  • Alpine.js

Baza danych

  • Postgres

Uruchamianie aplikacji

Sklonuj repozytorium:

git clone https://github.com/SLOths4/DoDomuDojade.git
cd DoDomuDojade

Zainstaluj zależności:

composer install --dev
npm ci

Skonfiguruj zmienne środowiskowe:

cp .env.example .env

Utwórz bazę danych używając schema.sql i użytkownika (tutaj dla przykładu ddd):

# 1. Connect as postgres (admin)
psql -U postgres

# 2. Create user (if doesn't exist)
create user ddd with password '<your_password>';

# 3. Create database
create database dodomudojade owner ddd;

# 4. Exit
\q

# 5. Run schema as postgres
psql -U postgres -d dodomudojade -f schema/schema.sql

# 6. Check schema as ddd
psql -U ddd -d dodomudojade -c "\dt"

Dodatkowo pamiętaj, żeby nadać właściwe uprawnienia swojemu użytkownikowi. W przykładzie użytkownikiem tym jest ddd

-- Grant all privileges on database
grant all privileges on database dodomudojade to ddd;

-- Grant all privileges on all tables
grant all privileges on all tables in schema public to ddd;

-- Grant all privileges on all sequences (for auto-increment IDs)
grant all privileges on all sequences in schema public to ddd;

-- Grant usage on schema
grant usage on schema public to ddd;

-- Set default privileges for future tables
alter default privileges in schema public grant all on tables to ddd;
alter default privileges in schema public grant all on sequences to ddd;

-- Grant execute on functions (if any)
grant execute on all functions in schema public to ddd;

Nie zapomnij o dodaniu listy dostępnych modułów do tabeli modułów (standardowo module):

insert into public.module (id, module_name, is_active, start_time, end_time)
values  (4, 'tram', true, '00:00', '23:59'),
        (5, 'weather', true, '00:00', '23:59'),
        (6, 'quote', true, '00:00', '23:59'),
        (7, 'word', true, '00:00', '23:59'),
        (1, 'announcements', true, '00:00', '23:59'),
        (3, 'countdown', true, '00:00', '23:59'),
        (2, 'calendar', true, '00:00', '23:59');

Dodaj nowego użytkownika przy użyciu interfejsu CLI. Pamiętaj, że nazwa użytkownika i hasło muszą być zgodne z domyślnymi lub z ustalonymi przez Ciebie wymogami.

bin/app user:add <username> <password>

Uruchom backend lokalnie, np. przy użyciu wbudowanego serwera PHP:

php -S localhost:8080 -t public/ public/index.php

Zbuduj frontend:

npm run dev

Jeżeli potrzebujesz jednorazowego buildu (np. do wdrożenia), użyj:

npm run build

Makefile (skrótowe komendy)

Jeżeli wolisz krótsze polecenia, możesz użyć Makefile:

  • make install — instaluje zależności Composer i npm.
  • make dev — uruchamia lokalny serwer PHP oraz proces frontendowy (watch).
  • make build — buduje frontend.
  • make lint — uruchamia PHPStan.
  • make test — uruchamia PHPUnit.
  • make docs — buduje dokumentację MkDocs i phpDocumentor.
  • make db-init — wczytuje schema/schema.sql do istniejącej bazy (korzysta z DB_* z .env).

Lokalna dokumentacja

Jeżeli chcesz zobaczyć lokalną dokumentację:

 mkdocs serve

Jeżeli chcesz lokalnie przeglądać dokumentację kodu, autogenerowaną przy użyciu phpDocumentator użyj poniższej komendy:

vendor/bin/phpdoc run

FAQ

  • Dlaczego projekt nie używa framework-a? Głównym celem jest lekkość projektu oraz nauka PHP.

Licencja

Ten projekt jest licencjonowany na warunkach CC-BY-NC-4.0pełny tekst licencji.

Oznacza to, że:

  • ✅ możesz używać, modyfikować i dzielić się kodem
  • ✅ musisz przypisać autorstwo
  • ❌ nie możesz użytkować komercyjnie kodu bez zgody

Autorzy

© SLOths4 2025

@AirScorpionK @hexer7


Masz pytania? Otwórz Issue lub skontaktuj się z nami na sloths4@spolecznaczworka.pl.

About

This is DoDomuDojadę app repository.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors