Wróć do projektów
Strona internetowaPraca dla klienta
Kształcenie Słuchu eBook Store
Sklep, który sprzedaje i dostarcza e-book o teorii muzyki bezpośrednio, bez żadnego pośrednika.
- Rok
- 2026
- Status
- Online
- Rola
- Solo: projekt, front end, back end, wdrożenie.

Danuta Kaszuba napisała liczącą 404 strony książkę „Kształcenie słuchu z elementami teorii muzyki” i chciała sprzedawać ją sama, a nie przez platformę sprzedażową. Można do niej zajrzeć, kupić ją i pobrać PDF. Zamówienia obsługuje się z prywatnego panelu, więc cały proces jest w jednym miejscu.
Technologie
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- SQLite
- Nodemailer
- Playwright
- Docker
- Traefik
- Cloudflare Tunnel
- Proxmox
Zastosowanie
- Interaktywne pianino, na którym można grać myszką albo klawiaturą komputera, oraz czytnik z 20 stronami próbnymi i pełnym spisem treści, żeby dało się ocenić książkę przed zakupem.
- Zamówienie jako gość albo z kontem, płatność przelewem lub BLIKIEM na numer telefonu, a instrukcja płatności wysyłana automatycznie mailem.
- Prywatny panel administracyjny do potwierdzania wpłat i wysyłania e-booka. Przycisk wysyłki pozostaje zablokowany, dopóki nie minie wymagany prawem czas oczekiwania.
- PDF trafia do kupującego przez jednorazowy link do pobrania ważny 7 dni i zostaje dostępny w bibliotece na jego koncie.
- Konta klientów z weryfikacją adresu e-mail, resetem hasła, eksportem danych i usuwaniem konta.
- Regulamin i polityka prywatności wbudowane w zamówienie. Strona zapisuje, którą wersję zaakceptował każdy klient i czy zgodził się na wcześniejsze dostarczenie.
- Książka sprzedawana jest bezpośrednio, bez prowizji operatora płatności i bez marży platformy. Strona nie używa analityki ani cookies firm trzecich, więc nie ma banera ze zgodą na cookies.
- Jasny i ciemny motyw, formularz kontaktowy i układ, który działa na telefonie.
Jak jest zrobione
- Next.js 16 na App Routerze z React 19 i TypeScript, ostylowany w Tailwind 4.
- Zamówienia, konta i zapisy o dostawach siedzą w SQLite (wbudowany node:sqlite) na trwałym wolumenie Dockera. Przy jednej książce i niewielkiej liczbie zamówień pojedynczy plik wystarcza i nie trzeba pilnować serwera bazy danych.
- PDF leży poza folderem publicznym, więc da się do niego dotrzeć tylko przez link do pobrania wydany przez aplikację. Takie tokeny są jednorazowe i wygasają po 7 dniach.
- Tokeny pobierania i hasła są zapisywane wyłącznie jako skróty. Wyciek bazy nie ujawnia więc ani działających linków, ani haseł.
- Płatność to przelew lub BLIK na numer telefonu, a nie bramka kartowa. To właśnie znosi prowizje operatora, i dlatego potwierdzenie wpłaty jest krokiem ręcznym w panelu, a mail wysyła Nodemailer.
- Polskie prawo konsumenckie dotyczące treści cyfrowych ukształtowało proces zamówienia. Prawo odstąpienia jest obsłużone w kodzie: przycisk wysyłki jest zablokowany na czas oczekiwania, a każde zamówienie zapisuje zaakceptowaną wersję regulaminu i informację, czy klient zgodził się na wcześniejsze dostarczenie.
- Aplikacja działa jako samodzielny obraz Dockera na własnym serwerze Proxmox, za Traefikiem i tunelem Cloudflare, a wdrażam ją przez Prox Hub, panel wdrożeniowy, który sam zbudowałem.
- Testy przeglądarkowe w Playwright obejmują konta, zamówienia i dostawę, czyli miejsca, w których regresja oznaczałaby klienta, który zapłacił i nic nie dostał.

