Πίνακας ελέγχου 📊
Το πρώτο πράγμα που βλέπετε όταν συνδέεστε, και ειλικρινά η σελίδα που θα αφήσετε ανοικτή όλη την ημέρα. Η
σελίδα προσγείωσης (/, Components/Pages/Index.razor) είναι ένα ζωντανό, κινητή-πρώτα κέντρο εντολών για το
δραστηριότητα του υπογεγραμμένου χρήστη σε όλα τα τρέχοντα cBot, backtests, πόρους και (για διαχειριστές) το κόμβο
σύμπλεγμα. Ανανεώνεται ο εαυτός του, φαίνεται υπέροχα σε ένα τηλέφωνο, και ποτέ δεν σας κάνει χτύπημα F5.
Τι δείχνει
Από την κορυφή προς τα κάτω, προτεραιότητα-παραγγελίας για ένα τηλέφωνο (κάθε μπλοκ είναι ένα πλήρες πλάτος στοίβα στοιχείο σε κινητό, ένα αποκριτικό πλέγμα σε tablet/desktop):
- Κεφαλίδα — τίτλος, ένας ζωντανός δείκτης (ένα πραγματικό παλμικό σημείο. στατικό κάτω από
prefers-reduced-motion), το ώρα τελευταία ενημέρωση, και ένα περίοδος εναλλαγή (1H · 24H · 7D · 30D) που μονάδες τα KPI και διάγραμμα. - Ήρωας KPI — τέσσερα ένα ματιά κάρτες, κάθε ένα μεγάλο αριθμό + ένα σχεδίασμα ένα σημείο SVG, και (όπου
σημαντικό) ένα δέλτα κατά την προηγούμενη περίοδο:
- Ενεργό τώρα — τρέχει + backtests τώρα έναρξη/τρέχοντας.
- Ποσοστό επιτυχίας — ολοκληρωμένα ÷ (ολοκληρωμένα + απέτυχε) πάνω περίοδο. δέλτα σε ποσοστιαία σημεία.
- Ολοκληρωμένα — τελειωμένα τρέχει/backtests αυτή περίοδο. δέλτα κατά την προηγούμενη περίοδο.
- Απέτυχε — αποτυχίες αυτή περίοδο. δέλτα (λιγότερο καλύτερη, έτσι ένα απόθεμα δείχνει πράσινο).
- Δραστηριότητα διάγραμμα — ένα ApexCharts περιοχή χρονολόγιο του ξεκίνησε / ολοκληρωμένα / απέτυχε ανά χρόνο bucket.
- Παράδειγμα κατάσταση δακτύλιο — ένα donut του τρέχει / backtests / εκκρεμής / ολοκληρωμένα / απέτυχε, σύνολο σε το κέντρο.
- Backtests — ένα τρία-πλακέτα στιγμιότυπο (τρέχοντας / ολοκληρωμένα / απέτυχε), κάντε κλικ μέσα σε
/backtest. - Αντιγραφή διαπραγμάτευσης — τα δικά σας αντιγραφή-διαπραγμάτευσης προφίλ με ένα ζωντανό κατάσταση σημείο, προορισμού αριθμό, και ένα Ζωντανό
σήμα σε τρέχοντας προφίλ. κάντε κλικ μέσα σε
/copy-trading. - AI πράκτορες — η προσωπικότητα-οδήγηση διαπραγμάτευσης πράκτορες με τρέχει κατάσταση (αρχέτυπο · κατάσταση) και τελευταία ενέργεια
χρόνο. κάντε κλικ μέσα σε
/agent-studio. - Ζωντανό δραστηριότητα τροφοδοσία — το 20 πλέον πρόσφατα συμβάντα (νεότερο πρώτα) με ένα κατάσταση-χρωματιστό σημείο και α σχετική σφραγίδα.
- Σύμπλεγμα υγείας (διαχειριστές μόνο) — ενεργή-κατά-συνολο κόμβι και ένα χωρητικότητα-σε-χρήση μέτρο.
- Πόρο πλακέτες — cBots, διαπραγμάτευσης λογαριασμούς, cTrader αναγνωριστικά, MCP κλειδιά (κάντε κλικ μέσα σε τις σελίδες τους).
Προσαρμόστε το πίνακα ελέγχου σας
Κάθε μπλοκ πάνω είναι ένα widget είστε έλεγχος. Χτυπήστε Προσαρμογή (πάνω δεξιά του κεφαλίδα) για άνοιγμα α διάλογος όπου εμφάνιση/απόκρυψη κάθε widget και reorder τους με πάνω/κάτω βέλη. Επαναφορά προεπιλογή επαναφορά ο κατάλογο διαταγή. Η επιλογή σας είναι αποθηκευμένο διακομιστή-πλευρά ανά χρήστη, έτσι ακολουθεί σας διαμέσου πρόγραμμα περιήγησης και συσκευές — όχι ακριβώς αυτό καρτέλα.
- Δυνατότητα-πύλη και διαχειριστής-μόνο widget (αντιγραφή διαπραγμάτευσης, AI πράκτορες, σύμπλεγμα υγείας) μόνο εμφανίζεται στο διάλογος όταν ανάπτυξη/ρόλος μπορώ να χρησιμοποιήσετε αυτά.
- Το widget κατάλογο είναι ένα ενιαίο πηγή αλήθειας σε
Core/Dashboard/DashboardWidgets.cs. παρουσίαση (ετικέτα + εικονίδιο + διαθεσιμότητα) ζει σεComponents/Dashboard/DashboardWidgetMeta.cs.
Πώς παραμένει ζωντανό
Η σελίδα δημοσκοπεί GET /api/dashboard/overview?period=<1h|24h|7d|30d> κάθε 10 δευτερόλεπτα και επαναδίδει τη
widget σε θέση — χωρίς χειροκίνητα επαναφορτώνω. Ένα παροδικό φέρει αποτυχία είναι χωμένα και επανάληψη σε το επόμενο κλικ.
η βρόχος διακοπές καθαρά σε άφθονο. Το πρώτο φόρτωμα δείχνει ένα σκελετό. ένα ισχυρό αποτυχία δείχνει μια λάθος
κάρτα με Επανάληψη. ένας χρήστης με όχι δεδομένα βλέπει μηδενισμένα KPI και κενό-κατάσταση αντίγραφο.
Πίσω άκρο
Endpoints/DashboardEndpoints.csχάρτης/overview(και κρατά τη παλαιότερη κλιμακωτή/stats). Είναι ανά χρήστη και διαχειριστής-πύλη μέσωICurrentUser. το ρολόι έρχεται απόTimeProvider. Ενέχει επίσης χάρτηςGET/PUT /api/dashboard/layout— το χρήστη widget διάταξης, φορτωμένο σε σελίδα αρχή και αποθηκευμένο από το Προσαρμογή διάλογος.- Διάταξη αποθήκευσης είναι το
UserDashboardaggregate (Core/Dashboard/UserDashboard.cs): ένα πίνακας ανά χρήστη (μοναδικό σεUserId), ιδιοκτησία ένα διατηρημένη κατάλογο widget ρυθμίσεις (ορατό + διαταγή) αποθήκευση ως αjsonbστήλη. Η διατηρημένη κατάλογο είναι μόνο ποτέ μεταλλάξεται μέσωApply/Reset, το οποίο επικύρωση κάθε κλειδί κατά τονDashboardWidgetsκατάλογο και κρατήστε το συλλογή ολοκληρωμένα και de-duplicated. Άγνωστο κλειδιά απορρίπτονται μεDomainException→400. Endpoints/DashboardQuery.csκτίζει το σύνθετοDashboardOverviewδιαβάστε μοντέλο: ένα όλη-χρόνου κατάσταση στιγμιότυπο (ομάδα προσπάθειες), ένα windowed σύνολο παρουσίες υλοποιημένο μία φορά, και πόρο/κόμβο προσπάθειες. Παράδειγμα κατάσταση και τερματικό σφραγίδες ζουν σε TPH subtypes (δεν στήλες), έτσι σειρές είναι διαβάστε σε μνήμη μέσω κοινήςInstanceEndpoints.GetStartedAt/GetStoppedAtβοηθός. Συμβάν χρόνο =stopped ?? started ?? created.Endpoints/DashboardModels.csκρατά τα DTOs, περίοδο→(παράθυρο, bucket-count) σχέδιο, καιDashboardMath— καθαρό, ντερμινιστικό bucketing + KPI/δέλτα μαθηματικά (χωρίς I/O,τώραέχει περάσει σε).
KPI δέλτα συγκρίνετε το τρέχον παράθυρο κατά την άμεσα προηγούμενο (το ερώτημα φέρει ένα διπλό παράθυρο γι' αυτό). Υπάρχει χωρίς ζωντανό λογαριασμό P&L τροφοδοσία — η πλατφόρμα μόνο έχει ίδια κεφάλαια για backtests και prop-firm ιχνηλάτηση — έτσι ο πίνακας ελέγχου είναι σκόπιμα λειτουργικό (δραστηριότητα, αναλογική, ποσοστό επιτυχίας), δεν ένα κομίστη ισοζύγιο κροτίδα.
Σχέδιο & tokens
Όλα χρώμα έρχεται από σχέδιο tokens (var(--app-success|-warning|-error|-info|-primary|-text*)), έτσι ένα
λευκό-ετικέτα παλέτα ρέει μέσα για δωρεάν — συμπεριλαμβάνονται το διάγραμμα, του οποίου σειρά χρώματα είναι διαβάστε από το
επιλυμένα tokens κατά τη διάρκεια runtime μέσω window.appReadTokens (SVG δεν μπορώ να καταναλώσετε CSS μεταβλητές απευθείας). Χωρίς
σκληρό-κωδικοποιημένα hex οπουδήποτε στο πίνακας ελέγχου. Δείτε ../ui-guidelines.md.
Το "Powered by cMind" σύνδεσμο
Ο πίνακας ελέγχου δείχνει ένα μικρό, γεύση "Powered by cMind" σύνδεσμο το οποίο δείχνει σε αυτό τεκμηρίωση
τοποθεσία. Είναι εμφανίζεται από προεπιλογή — είμαστε υπερήφανοι του έργου και ενισχύει άλλα επιπόλαιων να βρουν
αυτό — αλλά είναι εντελώς δικό σας κλήση. Resellers τρέχοντας ένα πλήρως λευκό-ετικέτα παράδειγμα flip
App:Branding:ShowSiteLink σε false και αυτό εξαφανίζεται. Δείτε
Λευκό-ετικέτα κοσμήματος.
Δοκιμές
- Ενότητα-στυλ (
tests/IntegrationTests/DashboardMathTests.cs) — bucketing, ποσοστό επιτυχίας, προηγούμενο-περίοδο δέλτα, περίοδο ανάλυση, κενό/όριο (συμβάν σετώρα, διαίρεση-κατά-μηδέν φρουρό). - Ενότητα (
tests/UnitTests/Dashboard/UserDashboardTests.cs) — τοUserDashboardaggregate: προεπιλογή σπόρος, εφαρμογή διαταγή/ορατότητα, append-παραληφθεί, διπλό-κατάρρευση, άγνωστο-κλειδί απόρριψη, επαναφορά. - Ολοκλήρωση (
tests/IntegrationTests/DashboardQueryTests.cs,DashboardLayoutTests.cs) — το διαβάστε μοντέλο κατά πραγματικό Postgres (κατάσταση/KPI/δραστηριότητα/πόρι, διαχειριστής κόμβο υγείας, κενό-χρήστη διαδρομή), το νέο backtests/copy-profiles/agents τμήματα, και μια διάταξη γύρω-τρίπλα (σώζω προσαρμοσμένη διάταξη → επαναφόρτωση → διαταγή + ορατότητα ισχύει). - E2E (
tests/E2ETests/DashboardTests.cs,DashboardCustomizeTests.cs) — desktop + κινητό: KPI κάρτες, διάγραμμα, δακτύλιο και τροφοδοσία εμφάνιση. περίοδο εναλλαγή ανταλλαγές η ενεργό περίοδο και επαναφορτώνω. ένα KPI drills διαμέσου σε/run. απόκρυψη ένα widget ισχύει διαμέσου ένα επαναφόρτωση, Επαναφορά φέρνει αυτό πίσω, και η προσαρμογή διάλογος εργάζεται σε ένα τηλέφωνο με χωρίς οριζόντιο overflow./είναι επίσης σεPageSmokeTests,MobileLayoutTests(κοχύλι + χωρίς-overflow) καιMobileJourneyTests.