Aplikacja do zarządzania zadaniami (to-do + produktywność) z logowaniem, listami, priorytetami, tagami, deadline, podzadaniami, udostępnianiem i eksportem.
- Logowanie i rejestracja użytkowników
- Listy zadań (wiele list na konto)
- Udostępnianie list przez zaproszenia (podgląd / edycja)
- Zadania z priorytetem, tagami i deadline
- Podzadania (checklisty) z edycją nazw i kolejnością drag-and-drop
- Tryb produktywności (Pomodoro)
- Powiadomienia o zbliżających się terminach
- Eksport do CSV i PDF
- Owner: pełna kontrola nad listą i udostępnianiem
- Editor: może edytować zadania i podzadania
- Viewer: tylko podgląd, ale może odznaczać swoje wykonanie zadań i podzadań (prywatnie)
- Frontend: HTML, CSS, JS
- Backend: Node.js (Express)
- Baza danych: SQLite
- Zainstaluj zależności:
npm install
- Uruchom serwer:
npm start
- Wejdź na:
http://localhost:3000
server.js- API + serwer statycznydb.js- inicjalizacja bazy i migracjepublic/index.html- UIpublic/styles.css- stylepublic/app.js- logika frontudata/- plik SQLite (tworzy się automatycznie)
- CSV: przycisk
Eksport CSVpobiera plik z aktualnej listy. - PDF: przycisk
Eksport PDFpobiera gotowy plik z backendu.
PDF korzysta z czcionki systemowej. Jeśli polskie znaki nie wyświetlają się poprawnie:
- ustaw zmienną
PDF_FONT_PATHna ścieżkę do fontu.ttf(np. Arial/DejaVu/Noto), albo - wgraj czcionkę do
public/fonts/NotoSans-Regular.ttf.
Przykład (PowerShell):
$env:PDF_FONT_PATH="C:\Windows\Fonts\arial.ttf"
npm start- Właściciel listy wysyła zaproszenie (rola: podgląd lub edycja).
- Zaproszony użytkownik akceptuje/odrzuca zaproszenie w panelu
Zaproszenia. - Lista pojawia się u zaproszonego użytkownika.
Viewerzy mogą oznaczać wykonanie zadań i podzadań tylko u siebie. Status zapisywany jest per użytkownik i nie zmienia listy u innych.
POST /api/registerPOST /api/loginGET /api/listsPOST /api/listsPOST /api/lists/:id/invitesGET /api/invitesPOST /api/invites/:id/acceptPOST /api/invites/:id/declineGET /api/tasks?listId=...POST /api/tasksPATCH /api/tasks/:idPOST /api/tasks/:id/subtasksPATCH /api/subtasks/:idPATCH /api/tasks/:id/subtasks/reorderGET /api/export/csv?listId=...GET /api/export/pdf?listId=...
-
SQLITE_ERROR: no such column: list_id
- Zwykle oznacza starą bazę. Uruchom ponownie serwer (migracje są automatyczne).
- Jeśli problem zostaje, możesz usunąć
data/app.db(utrata danych) i uruchomić ponownie.
-
Brak polskich znaków w PDF
- Ustaw
PDF_FONT_PATHlub dodaj font dopublic/fonts/.
- Ustaw
- Kategorie i podzadania z terminami
- Integracja z kalendarzem
- Wersja mobilna (PWA)
- Historia zmian i archiwum
- Powiadomienia email lub push