Aplikacja desktopowa do cyfrowego archiwizowania dokumentów, multimediów i metadanych, zbudowana w oparciu o Electron, React, TypeScript oraz PostgreSQL. Pozwala na bezpieczne przechowywanie, wyszukiwanie, wersjonowanie i audyt plików zgodnie ze standardami Dublin Core, PREMIS, OAIS i WCAG 2.1.
- 🖥️ Demonstracja
- 🚀 Funkcje
- 🧰 Technologie
- 📁 Struktura katalogów
- ⚙️ Jak uruchomić lokalnie
- 🛠 Konfiguracja bazy danych
- 🔒 Bezpieczeństwo
- 📦 Upload plików
- 📜 Licencja
- Rejestracja i logowanie użytkowników (JWT, bcrypt, blokada konta po wielu
nieudanych próbach) - Wyszukiwanie pełnotekstowe (język polski, indeksowanie semantyczne)
- Obsługa wielu formatów: PDF, wideo, audio, obrazy, archiwa oprogramowania
- Automatyczne rozpoznawanie tekstu (OCR, Tesseract.js)
- Zarządzanie metadanymi (Dublin Core, PREMIS)
- Kontrola dostępu (role: Czytelnik, Kurator, Administrator)
- Wersjonowanie plików i metadanych
- Niezmienny dziennik audytowy (pełna historia operacji)
- Walidacja integralności (fixity checking)
- Tryb dostępności (AAC):
- synteza mowy,
- wysoki kontrast,
- auto-skanning,
- wsparcie dla daltonistów,
- pełna obsługa klawiatury i czytników ekranu,
- Monitoring i alerty systemowe (automatyczne powiadomienia e-mail przy krytycznych zdarzeniach)
- Electron 27+
- React 19+
- TypeScript 5+
- Express.js (REST API)
- PostgreSQL 15+
- Redis (opcjonalnie)
- Jest, Playwright (testy jednostkowe i E2E)
- Snyk, npm audit (automatyczny audyt bezpieczeństwa zależności)
- nodemailer (alerty e-mail)
- TailwindCSS
- Tesseract.js (OCR)
- bcrypt, JWT, Helmet.js, CORS
e-archiwum/
├── src/
│ ├── main/ # Backend: API, serwisy, baza, middleware
│ ├── renderer/ # Frontend: React, komponenty, style
│ └── preload/ # Bezpieczna komunikacja
│ # Electron
├── storage/ # Pliki użytkowników
├── backups/ # Kopie zapasowe
├── screenshots/ # Screeny
├── scripts/ # Skrypty pomocnicze
├── docker-compose.yml # Konfiguracja Dockera
├── package.json # Konfiguracja projektu
├── README.md # Ten plik
└── LICENSE # Licencja MITWarning
Najwygodniej uruchomić przez Docker Compose, ale możesz też użyć własnej bazy PostgreSQL.
- Wymagania:
- Node.js 18+
- PostgreSQL 15+ (lub Docker)
- npm
- Sklonuj repozytorium:
git clone https://github.com/mavethee/eArchiwum.git
cd eArchiwum- Zainstaluj zależności:
npm install- Skonfiguruj środowisko:
cp .env.example .env- Uruchom bazę danych i backend (Docker):
docker-compose up -d- Uruchom aplikację:
npm run dev- Otwórz aplikację:
- API: http://localhost:3000
- Interfejs Electron: uruchomi się automatycznie
- Domyślnie baza PostgreSQL uruchamiana jest przez Docker Compose na porcie
5432. - Pliki migracji i schematy znajdują się w
src/main/database/. - Przykładowe dane testowe możesz dodać przez plik
seed.sql. - Zmienne środowiskowe konfiguruje plik
.env.
Uwaga:
- Aplikacja korzysta wyłącznie z pliku
.env. - Plik
.env.examplesłuży jako szablon – skopiuj go jako.envi edytuj wg potrzeb.
- JWT z 24h ważnością
- Bcrypt (hashowanie haseł)
- Szyfrowanie AES-256-GCM
- TLS/SSL dla transportu
- RBAC (role i uprawnienia)
- Audyt operacji
- Rate limiting
- Blokada konta po wielu nieudanych logowaniach
- Helmet.js, CORS, walidacja wejścia (Joi)
- Ochrona API i cache PDF
- Automatyczne alerty e-mail do administratora przy krytycznych zdarzeniach
(np. awaria bazy, wysokie zużycie zasobów) - Automatyczny audyt zależności (npm audit, Snyk) w CI
-
Pliki użytkowników przechowywane są w katalogu
storage/files/ -
Kopie zapasowe trafiają do
backups/ -
Cache PDF:
userData/pdf-cache/ -
System automatycznie monitoruje miejsce na dysku i ostrzega administratora
przy przekroczeniu progów -
Przykładowe API do pobierania pliku:
curl -X GET http://localhost:3000/api/files/ID_PLIKU \ -H "Authorization: Bearer TWOJ_TOKEN"
Projekt edukacyjny. Możesz go używać, modyfikować i rozwijać wedle uznania.
Szczegóły w pliku LICENSE (MIT License).
Stworzono z myślą o nauce i rozwoju 😄
Autor: Marcin Mitura
Data:2026-01-18



