diff --git a/instance/mindmap.db b/instance/mindmap.db index 6f5546b..907f5c3 100644 Binary files a/instance/mindmap.db and b/instance/mindmap.db differ diff --git a/website/__pycache__/app.cpython-311.pyc b/website/__pycache__/app.cpython-311.pyc deleted file mode 100644 index edb7455..0000000 Binary files a/website/__pycache__/app.cpython-311.pyc and /dev/null differ diff --git a/website/__pycache__/app.cpython-313.pyc b/website/__pycache__/app.cpython-313.pyc new file mode 100644 index 0000000..459cb20 Binary files /dev/null and b/website/__pycache__/app.cpython-313.pyc differ diff --git a/website/__pycache__/init_db.cpython-311.pyc b/website/__pycache__/init_db.cpython-311.pyc deleted file mode 100644 index 5cedb65..0000000 Binary files a/website/__pycache__/init_db.cpython-311.pyc and /dev/null differ diff --git a/website/__pycache__/init_db.cpython-313.pyc b/website/__pycache__/init_db.cpython-313.pyc new file mode 100644 index 0000000..3803438 Binary files /dev/null and b/website/__pycache__/init_db.cpython-313.pyc differ diff --git a/website/app.py b/website/app.py index ba49a57..8a68fb8 100644 --- a/website/app.py +++ b/website/app.py @@ -277,4 +277,4 @@ node_thought_association = db.Table('node_thought_association', if __name__ == '__main__': app = create_app() - app.run(host="0.0.0.0", port=6000, debug=True) \ No newline at end of file + app.run(host="0.0.0.0", port=5000, debug=True) \ No newline at end of file diff --git a/website/init_db.py b/website/init_db.py index c5d930a..aa75353 100644 --- a/website/init_db.py +++ b/website/init_db.py @@ -1,88 +1,144 @@ -from app import app, db, User, MindMapNode +import os +import sys +from pathlib import Path +import shutil -def init_database(): - """Initialize the database with admin user and mindmap structure.""" - with app.app_context(): - # Create all tables - db.create_all() - - # Check if we already have users - if User.query.first() is None: - print("Creating admin user...") - # Create admin user - admin = User(username='admin', email='admin@example.com', is_admin=True) - admin.set_password('admin123') - db.session.add(admin) - - # Create regular test user - test_user = User(username='test', email='test@example.com', is_admin=False) - test_user.set_password('test123') - db.session.add(test_user) - - db.session.commit() - print("Admin user created successfully!") - - # Check if we already have mindmap nodes - if MindMapNode.query.first() is None: - print("Creating initial mindmap structure...") - # Create initial mindmap structure - root = MindMapNode(name="Wissenschaftliche Mindmap") - db.session.add(root) - - # Level 1 nodes - node1 = MindMapNode(name="Naturwissenschaften", parent=root) - node2 = MindMapNode(name="Geisteswissenschaften", parent=root) - node3 = MindMapNode(name="Technologie", parent=root) - node4 = MindMapNode(name="Künste", parent=root) - db.session.add_all([node1, node2, node3, node4]) - - # Level 2 nodes - Naturwissenschaften - node1_1 = MindMapNode(name="Physik", parent=node1) - node1_2 = MindMapNode(name="Biologie", parent=node1) - node1_3 = MindMapNode(name="Chemie", parent=node1) - node1_4 = MindMapNode(name="Astronomie", parent=node1) - db.session.add_all([node1_1, node1_2, node1_3, node1_4]) - - # Level 2 nodes - Geisteswissenschaften - node2_1 = MindMapNode(name="Philosophie", parent=node2) - node2_2 = MindMapNode(name="Geschichte", parent=node2) - node2_3 = MindMapNode(name="Psychologie", parent=node2) - node2_4 = MindMapNode(name="Soziologie", parent=node2) - db.session.add_all([node2_1, node2_2, node2_3, node2_4]) - - # Level 2 nodes - Technologie - node3_1 = MindMapNode(name="Informatik", parent=node3) - node3_2 = MindMapNode(name="Biotechnologie", parent=node3) - node3_3 = MindMapNode(name="Künstliche Intelligenz", parent=node3) - node3_4 = MindMapNode(name="Energietechnik", parent=node3) - db.session.add_all([node3_1, node3_2, node3_3, node3_4]) - - # Level 2 nodes - Künste - node4_1 = MindMapNode(name="Bildende Kunst", parent=node4) - node4_2 = MindMapNode(name="Musik", parent=node4) - node4_3 = MindMapNode(name="Literatur", parent=node4) - node4_4 = MindMapNode(name="Film", parent=node4) - db.session.add_all([node4_1, node4_2, node4_3, node4_4]) - - # Level 3 nodes - a few examples - # Physik - MindMapNode(name="Quantenphysik", parent=node1_1) - MindMapNode(name="Relativitätstheorie", parent=node1_1) - - # Informatik - MindMapNode(name="Maschinelles Lernen", parent=node3_1) - MindMapNode(name="Softwareentwicklung", parent=node3_1) - MindMapNode(name="Datenbanken", parent=node3_1) - - # Commit changes - db.session.commit() - print("Mindmap structure created successfully!") - - print("Database initialization complete.") +# Pfade zu möglichen Datenbankdateien +db_paths = [ + Path("instance/mindmap.db"), + Path("mindmap.db"), + Path("website/instance/mindmap.db"), + Path("website/mindmap.db") +] -if __name__ == "__main__": - init_database() - print("You can now run the application with 'python app.py'") - print("Login with:") - print(" Admin: username=admin, password=admin123") - print(" User: username=test, password=test123") \ No newline at end of file +# Lösche bestehende Datenbankdateien +for db_path in db_paths: + if db_path.exists(): + try: + print(f"Lösche Datenbank: {db_path}") + os.remove(db_path) + except Exception as e: + print(f"Fehler beim Löschen von {db_path}: {e}") + +# Stelle sicher, dass das instance-Verzeichnis existiert +instance_dir = Path("instance") +if not instance_dir.exists(): + os.makedirs(instance_dir) + +# Importiere Datenbankmodelle und erstelle die Datenbank +from app import db, create_app, User, MindMapNode, Thought, Comment + +app = create_app() + +with app.app_context(): + print("Erstelle neue Datenbank...") + db.drop_all() # Stelle sicher, dass alle Tabellen gelöscht sind + db.create_all() # Erstelle Tabellen basierend auf den Modellen + + # Erstelle einen Admin-Benutzer + admin = User(username="admin", email="admin@example.com", is_admin=True) + admin.set_password("admin123") + db.session.add(admin) + + # Erstelle Root-Node + root = MindMapNode(name="Wissenschaft") + db.session.add(root) + + # Hauptkategorien erstellen + naturwissenschaften = MindMapNode(name="Naturwissenschaften", parent=root) + geisteswissenschaften = MindMapNode(name="Geisteswissenschaften", parent=root) + sozialwissenschaften = MindMapNode(name="Sozialwissenschaften", parent=root) + ingenieurwissenschaften = MindMapNode(name="Ingenieurwissenschaften", parent=root) + medizin = MindMapNode(name="Medizin", parent=root) + informatik = MindMapNode(name="Informatik", parent=root) + + db.session.add_all([naturwissenschaften, geisteswissenschaften, sozialwissenschaften, + ingenieurwissenschaften, medizin, informatik]) + + # Unterkategorien für Naturwissenschaften + physik = MindMapNode(name="Physik", parent=naturwissenschaften) + chemie = MindMapNode(name="Chemie", parent=naturwissenschaften) + biologie = MindMapNode(name="Biologie", parent=naturwissenschaften) + astronomie = MindMapNode(name="Astronomie", parent=naturwissenschaften) + geologie = MindMapNode(name="Geologie", parent=naturwissenschaften) + + # Unterkategorien für Physik + quantenphysik = MindMapNode(name="Quantenphysik", parent=physik) + relativitätstheorie = MindMapNode(name="Relativitätstheorie", parent=physik) + thermodynamik = MindMapNode(name="Thermodynamik", parent=physik) + + # Unterkategorien für Geisteswissenschaften + philosophie = MindMapNode(name="Philosophie", parent=geisteswissenschaften) + geschichte = MindMapNode(name="Geschichte", parent=geisteswissenschaften) + linguistik = MindMapNode(name="Linguistik", parent=geisteswissenschaften) + literaturwissenschaft = MindMapNode(name="Literaturwissenschaft", parent=geisteswissenschaften) + religionswissenschaft = MindMapNode(name="Religionswissenschaft", parent=geisteswissenschaften) + + # Unterkategorien für Sozialwissenschaften + soziologie = MindMapNode(name="Soziologie", parent=sozialwissenschaften) + psychologie = MindMapNode(name="Psychologie", parent=sozialwissenschaften) + politikwissenschaft = MindMapNode(name="Politikwissenschaft", parent=sozialwissenschaften) + wirtschaftswissenschaften = MindMapNode(name="Wirtschaftswissenschaften", parent=sozialwissenschaften) + + # Unterkategorien für Ingenieurwissenschaften + maschinenbau = MindMapNode(name="Maschinenbau", parent=ingenieurwissenschaften) + elektrotechnik = MindMapNode(name="Elektrotechnik", parent=ingenieurwissenschaften) + bauingenieurwesen = MindMapNode(name="Bauingenieurwesen", parent=ingenieurwissenschaften) + verfahrenstechnik = MindMapNode(name="Verfahrenstechnik", parent=ingenieurwissenschaften) + + # Unterkategorien für Medizin + humanmedizin = MindMapNode(name="Humanmedizin", parent=medizin) + zahnmedizin = MindMapNode(name="Zahnmedizin", parent=medizin) + pharmazie = MindMapNode(name="Pharmazie", parent=medizin) + neurologie = MindMapNode(name="Neurologie", parent=medizin) + onkologie = MindMapNode(name="Onkologie", parent=medizin) + + # Unterkategorien für Informatik + künstliche_intelligenz = MindMapNode(name="Künstliche Intelligenz", parent=informatik) + datenbanken = MindMapNode(name="Datenbanken", parent=informatik) + softwareentwicklung = MindMapNode(name="Softwareentwicklung", parent=informatik) + computergrafik = MindMapNode(name="Computergrafik", parent=informatik) + cybersicherheit = MindMapNode(name="Cybersicherheit", parent=informatik) + + # Alle Nodes zur Session hinzufügen + all_nodes = [physik, chemie, biologie, astronomie, geologie, + quantenphysik, relativitätstheorie, thermodynamik, + philosophie, geschichte, linguistik, literaturwissenschaft, religionswissenschaft, + soziologie, psychologie, politikwissenschaft, wirtschaftswissenschaften, + maschinenbau, elektrotechnik, bauingenieurwesen, verfahrenstechnik, + humanmedizin, zahnmedizin, pharmazie, neurologie, onkologie, + künstliche_intelligenz, datenbanken, softwareentwicklung, computergrafik, cybersicherheit] + + db.session.add_all(all_nodes) + + # Füge einen Beispiel-Gedanken hinzu + thought = Thought( + content="Dies ist ein Beispiel-Gedanke zur Wissenschaft allgemein.", + branch="Wissenschaft", + user_id=1 # Admin-Benutzer + ) + db.session.add(thought) + root.thoughts.append(thought) + + # Füge weitere Beispiel-Gedanken hinzu + thought_ai = Thought( + content="Künstliche Intelligenz transformiert viele Bereiche der Wissenschaft und Gesellschaft.", + branch="Künstliche Intelligenz", + user_id=1 + ) + db.session.add(thought_ai) + künstliche_intelligenz.thoughts.append(thought_ai) + + thought_physik = Thought( + content="Die Quantenphysik stellt unser Verständnis der Realität grundlegend in Frage.", + branch="Quantenphysik", + user_id=1 + ) + db.session.add(thought_physik) + quantenphysik.thoughts.append(thought_physik) + + db.session.commit() + + print("Datenbank wurde erfolgreich initialisiert!") + print(f"Admin-Benutzer erstellt: admin/admin123") + print(f"Root-Node 'Wissenschaft' erstellt mit mehreren Hauptkategorien und Unterkategorien") \ No newline at end of file diff --git a/website/instance/mindmap.db b/website/instance/mindmap.db index 7290efb..7fc8b16 100644 Binary files a/website/instance/mindmap.db and b/website/instance/mindmap.db differ diff --git a/website/run.py b/website/run.py index d03cb9c..75fc75b 100644 --- a/website/run.py +++ b/website/run.py @@ -1,11 +1,10 @@ #!/usr/bin/env python3 import os -from init_db import init_database -from app import app +import sys +from app import create_app + +app = create_app() if __name__ == "__main__": - # Initialize the database first - init_database() - - # Run the Flask application + # Run the app directly - no need to call init_database as it doesn't exist app.run(host="0.0.0.0", debug=True) \ No newline at end of file diff --git a/website/templates/index.html b/website/templates/index.html index f4f66a9..55e5b10 100644 --- a/website/templates/index.html +++ b/website/templates/index.html @@ -8,7 +8,7 @@
Erkenne Zusammenhänge zwischen verschiedenen Wissensgebieten durch intuitive Mindmaps.
Füge deine eigenen Gedanken zu bestehenden Themen hinzu und bereichere die Community.
Beteilige dich an Diskussionen und sieh wie sich Ideen gemeinsam entwickeln.
Wenn Sie diese Seite sehen können, funktioniert der grundlegende Flask-Server korrekt.
+Server-Status:
+Versuchen Sie, diese URL in verschiedenen Browsern zu öffnen.
+