diff --git a/src/app/eiffel/web.go b/src/app/eiffel/web.go
index 57d97d7397d1d603858ef52840f77ccac14bd034..1bef247231c9543f1da5a9ff6446416ccb3783d8 100644
--- a/src/app/eiffel/web.go
+++ b/src/app/eiffel/web.go
@@ -646,6 +646,22 @@ func elicitationTemplate(cfg Cfg, appCtx *hctx.AppCtx, webCtx *web.Ctx, defaultF
 
 var mongoClient *mongo.Client
 var mongoCollection *mongo.Collection
+var projectCollection *mongo.Collection
+
+// getProjectShortcut retrieves the shortcut for a project by its ProjectID
+func getProjectShortcut(ctx context.Context, projectID string) (string, error) {
+	var project struct {
+		Shortcut string `bson:"shortcut"`
+	}
+	
+	err := projectCollection.FindOne(ctx, bson.M{"project_id": projectID}).Decode(&project)
+	if err != nil {
+		log.Printf("Error fetching project shortcut for project_id '%s': %v", projectID, err)
+		return "", err
+	}
+	
+	return project.Shortcut, nil
+}
 
 func InitMongoDB() error {
 	clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
@@ -660,6 +676,7 @@ func InitMongoDB() error {
 	}
 
 	mongoCollection = client.Database("harmony").Collection("requirements")
+	projectCollection = client.Database("harmony").Collection("projects")
 	log.Println("Connected to MongoDB")
 	return nil
 }
@@ -677,6 +694,21 @@ func saveToMongoDB(formData *TemplateFormData) error {
 		"created_at":     time.Now(),
 	}
 
+	// Für projektbasierte Anforderungen: UUID und Shortcut hinzufügen
+	if formData.ProjectID != "" {
+		// UUID für diese Anforderung generieren
+		document["uuid"] = uuid.New().String()
+		
+		// Shortcut basierend auf Projekt-Kürzel generieren
+		if projectShortcut, err := getProjectShortcut(ctx, formData.ProjectID); err == nil && projectShortcut != "" {
+			// Anzahl der existierenden Anforderungen für dieses Projekt abrufen
+			count, _ := mongoCollection.CountDocuments(ctx, bson.M{"project_id": formData.ProjectID})
+			
+			// Shortcut im Format: [PROJECT_SHORTCUT]-REQ-[NUMMER] (z.B. "HM-REQ-001")
+			document["shortcut"] = fmt.Sprintf("%s-REQ-%03d", projectShortcut, count+1)
+		}
+	}
+
 	_, err := mongoCollection.InsertOne(ctx, document)
 	return err
 }