Nosomco Games - Kindersicherung
Hallo Community!
Titel
"NoSoMCo Games" soll das Projekt heißen, was so viel heißt wie "Not so much Computer Games" - kurzum, es wird sich um eine Kindersicherung handeln.
Über den Titel lässt sich noch viel diskutieren, er ist mir nur spontan in den Sinn gekommen; ich bin offen für weitere Vorschläge.
Beschreibung und Ziel
Kindersicherungen gibt es viele im Internet, einige kostenlos, andere extrem teuer. Für die meisten gibt es Anleitungen, wie sie deaktiviert werden können, viele haben an sich einfach extreme Sicherheitslücken.
Nosomoco Games soll ein oder mehrere eingeschränkte Benutzerkonten mit einem Kinderschutz versehen können - die Eltern müssen immer die volle Kontrolle, möglichst von Überall her, haben.
Der Schutz soll auf das lokale Netzwerk erweitert werden können, sodass ein Kind auf zwei Rechnern spielen darf, die aber ein gemeinsames Zeit-Konto benutzen.
Trotzdem soll das System weitestgehenst dezentral laufen, d.h. ohne permanenten Server.
Das Projekt soll höchst erweiterbar sein, sodass jeder seinen eigenen Schutz hinzuprogrammieren kann (zu den bereits vorhandenen Schützen (Pl. von Schutz??) komm ich später).
Ziel ist es also, eine effektive, zu 100% sichere, flexible, erweiterbare und trotzdem einfache Kindersicherung zu erstellen.
Sofern es möglich ist, sollte die Windows 7 Parental API genutzt werden.
Programmiersprache
.Net soll die Kernsprache sein - welche konkrete Sprache ist letztendlich dann ja egal (C#, Prism, Visual Basic etc.).
Jeglicher unmanaged Code (durch z.B. C++) sollte in einer .Net-Sprache gekapselt werden.
Lizenz
Freeware, wenn nicht sogar Open Source.
Mir ist es egal.
Dauer
Bis es fertig ist!
Ein System ist nie fertig, man hört nur irgendwann auf zu programmieren.
Da Nosomco Games aber eine offene und dokumentierte Schnittstelle haben soll, kann zum Schluss jeder selbst noch weiter daran arbeiten.
Features, die unterstützt werden sollen
Die Kindersicherung soll
* im Netzwerk eingesetzt werden
* zwischen Spielen und Hausaufgaben (also Office-Programmen) differenzieren
* brutale Spiele blocken
* flexibles Zeit-System anbieten
* theoretisch unknackbar sein (außer die Netzwerkkommunikation [1])
* komplett erweiterbar sein
Wobei das Zeit-System folgendes können soll:
* Es gibt Zeitfenster, indenen ein Zeit-Maximum festgelegt werden kann
Beispiel: Innerhalb von 24 Stunden darf nur 4 Stunde gespielt werden und innerhalb 1 Stunde darf nur 55 Minuten gespielt werden und innerhalb 1 Woche darf nur 12 Stunden gespielt werden.
Das heißt, das Kind darf am Montag, Dienstag und Mittwoch 4 Stunden spielen, wobei in jeder Stunde 5 Minuten Pause gemacht werden muss, dann aber nicht mehr, da das Wochen-Limit von 12 Stunden bereits erreicht wurde.
Nicht ausgenutzte Limits verfallen natürlich.
* Es gibt ein Zeit-Konto
Von diesem Konto wird die Zeit abgebucht, die gespielt wird.
Ist keine Zeit mehr vorhanden, kann nicht gespielt werden.
Es kann aber auch Zeit hinzugefügt werden (durch Eltern).
* Es gibt ein Ticket-System
Eltern können so mit einem privaten Schlüssel Tickets (= Gutscheine) von Überall generieren, mit denen eine Zeit verknüpft ist.
Wird dieses Ticket eingelöst, wird der Betrag auf das Zeit-Konto gebucht.
[1] Mir ist klar, dass die Netzwerkübertragung theoretisch nicht sicher ist.
Selbst wenn eine asymmetrische Verschlüsselung gebraucht wird, lässt sich der Schlüssel durch Disassemblierung immer noch feststellen.
Darum sollte dieser Teil des Systems auch obfuskiert werden.
Zeitlicher Ablauf
Kann ich jetzt noch nicht sagen.
Benötigte Fähigkeiten
* Kenntnisse in irgendeiner .Net-Sprache
* Kenntnisse in objektorientierter Programmierung
Wobei folgendes gewünscht ist:
* Kenntnisse in Windows 7 Parental API
Umso mehr Kenntnisse, desto besser natürlich!
Teamfähigkeit und alle anderen selbstverständliche Fähigkeiten (Umgang mit PC

) sind Vorraussetzung.
Ein gewisses Niveau, Engagement und Erfahrung wird aber erwartet - die Grundlagen müssen vollständig beherrscht werden!
Teamgröße
Die wesentliche Planung soll in einem Kernteam von maximal 4 Personen (inklusiv mir) stattfinden.
Das Entwicklerteam sollte eine Größe von 10 Mitgliedern keinesfalls überschreiten.
Nachdem das Kernteam die Planung und das Konzept fertiggestellt hat, können dann alle ihren zugeordneten Teil entwickeln - jeder, so gut wie er kann.
Hauptsache ist, dass die vom Kernteam getroffenen Kontrakte der jeweiligen Module eingehalten werden.
Bei kritischen Problemen werde ich als Monarch eine Entscheidung treffen oder die Entscheidung demokratisch durchführen
Ich hoffe, dass dieses Projekt Anklang findet und erfolgreich verlaufen wird!