kidsecura

Aplikacja Android do monitorowania aktywności dzieci i przeciwdziałania przemocy

Aplikacja Ochrony Rodzicielskiej - MVP

install.png

allow.png

yes.png

dashboard.png

devices.png

alerts.png

📱 Opis projektu

Aplikacja Android do monitorowania aktywności dzieci na urządzeniu mobilnym. Wykorzystuje MediaProjection API do przechwytywania ekranu, ML Kit do OCR oraz modele TensorFlow Lite do wykrywania potencjalnie szkodliwych treści.

⚠️ Ważne informacje prawne

🚀 Funkcje MVP

Zrealizowane:

Do zrobienia:

📋 Wymagania

🛠️ Instalacja

1. Sklonuj repozytorium

git clone [your-repo-url]
cd parental-control-mvp

2. Szybka instalacja (Makefile)

Projekt zawiera Makefile do łatwej automatyzacji zadań:

# Pełna instalacja (pobierz wrapper + zależności)
make install

# Lub krok po kroku:
make setup      # Pobierz gradle-wrapper.jar
make build      # Zbuduj projekt
make run        # Uruchom na urządzeniu/emulatorze

Wszystkie dostępne komendy:

make help       # Pokaż wszystkie dostępne komendy
make doctor     # Sprawdź środowisko (Java, SDK, ADB)
make clean      # Wyczyść projekt
make test       # Uruchom testy
make release    # Zbuduj APK release
make devices    # Pokaż podłączone urządzenia

3. Konfiguracja projektu

Otwórz projekt w Android Studio i zsynchronizuj Gradle.

4. Dodanie modelu TFLite (opcjonalne)

Jeśli masz model wykrywania przemocy:

  1. Umieść plik .tflite w folderze app/src/main/assets/
  2. Nazwij go violence_detection_model.tflite
  3. Upewnij się, że model przyjmuje obrazy 224x224x3

5. Konfiguracja uprawnień

Aplikacja automatycznie poprosi o wymagane uprawnienia przy pierwszym uruchomieniu.

📱 Struktura projektu

app/
├── src/main/java/com/parentalcontrol/mvp/
│   ├── MainActivity.kt                 # Główny ekran aplikacji
│   ├── EventHistoryActivity.kt        # Historia zdarzeń
│   ├── service/
│   │   └── ScreenCaptureService.kt    # Serwis przechwytywania ekranu
│   ├── analyzer/
│   │   └── ContentAnalyzer.kt         # Analiza treści (OCR + ML)
│   ├── data/
│   │   ├── MonitoringEvent.kt        # Model danych
│   │   ├── EventDao.kt               # DAO dla Room
│   │   └── MonitoringDatabase.kt     # Baza danych Room
│   └── utils/
│       ├── PreferencesManager.kt     # Zarządzanie ustawieniami
│       ├── ImageUtils.kt             # Narzędzia do obrazów
│       └── NotificationHelper.kt     # Powiadomienia
├── res/
│   ├── layout/                       # Layouty XML
│   └── values/                       # Zasoby (kolory, stringi)
└── AndroidManifest.xml              # Manifest aplikacji

🔧 Konfiguracja i użycie

Pierwsze uruchomienie

  1. Instalacja na urządzeniu dziecka
    • Zainstaluj aplikację
    • Uruchom i przejdź przez proces konfiguracji
    • Zaakceptuj wszystkie wymagane uprawnienia
  2. Konfiguracja monitorowania
    • Ustaw interwał przechwytywania (2-10 sekund)
    • Wybierz czy analizować cały ekran czy tylko dolną połowę
    • Zdecyduj czy zapisywać zrzuty ekranu
  3. Rozpoczęcie monitorowania
    • Kliknij “Rozpocznij monitorowanie”
    • Zaakceptuj systemowy dialog MediaProjection
    • Aplikacja działa w tle jako Foreground Service

Panel rodzica

W MVP historia zdarzeń jest dostępna bezpośrednio w aplikacji:

🔐 Bezpieczeństwo i prywatność

Implementowane zabezpieczenia:

Zalecenia dodatkowe:

🧪 Testowanie

Testy manualne:

  1. Otwórz aplikację z potencjalnie szkodliwą treścią
  2. Poczekaj na analizę (2-10 sekund)
  3. Sprawdź czy pojawiło się powiadomienie
  4. Zweryfikuj zdarzenie w historii

Słowa kluczowe testowe:

📊 Wydajność

Zużycie zasobów (przybliżone):

Optymalizacje:

🐛 Znane problemy

  1. MediaProjection kończy się przy blokowaniu ekranu
    • Rozwiązanie: Restart usługi po odblokowaniu
  2. False positives przy grach/filmach
    • Rozwiązanie: Ręczne oznaczanie jako fałszywe alarmy
  3. Wysokie zużycie baterii
    • Rozwiązanie: Zwiększ interwał przechwytywania

📚 Zależności

dependencies {
    // Core Android
    implementation 'androidx.core:core-ktx:1.12.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.11.0'
    
    // Room Database
    implementation 'androidx.room:room-runtime:2.6.1'
    implementation 'androidx.room:room-ktx:2.6.1'
    
    // ML Kit OCR
    implementation 'com.google.mlkit:text-recognition:16.0.0'
    
    // TensorFlow Lite
    implementation 'org.tensorflow:tensorflow-lite:2.14.0'
    
    // Coroutines
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
}

🔄 Rozwój projektu

Następne kroki:

  1. Backend API - synchronizacja między urządzeniami
  2. Prawdziwy model ML - trenowanie modelu wykrywania przemocy
  3. Panel web rodzica - dostęp przez przeglądarkę
  4. Integracja z LLM - analiza kontekstowa (np. z modelami SpeakLeash/Sójka)
  5. Więcej typów detekcji - samookaleczanie, narkotyki, etc.

📄 Licencja

Ten projekt jest dostarczany jako przykład edukacyjny. Używaj odpowiedzialnie i zgodnie z lokalnym prawem.

⚖️ Zastrzeżenia prawne

Ta aplikacja jest przeznaczona wyłącznie do legalnego nadzoru rodzicielskiego. Użytkownik ponosi pełną odpowiedzialność za zgodność z lokalnymi przepisami dotyczącymi prywatności i monitoringu. Nie używaj tej aplikacji do nielegalnego szpiegowania lub naruszania prywatności.

📚 Przydatne komendy

Używając Makefile (rekomendowane):

make build              # Zbuduj projekt
make test               # Uruchom testy
make clean              # Wyczyść projekt
make run                # Uruchom aplikację
make release            # Zbuduj APK release

Lub bezpośrednio z Gradle:

./gradlew build
./gradlew test
./gradlew clean
./gradlew assembleRelease