Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Application personnelle de suivi de budget, installable sur l'écran d'accueil de l'iPhone. HTML / CSS / JavaScript purs (modules ES), sans étape de build ni dépendance payante. Synchronisation multi-appareils via Firebase Realtime Database (offre gratuite).README 전문 보기 ↗
Application personnelle de suivi de quelques budgets choisis, des charges fixes et de l'évolution du salaire, installable sur l'écran d'accueil de l'iPhone. HTML / CSS / JavaScript purs (modules ES), sans étape de build ni dépendance payante. Synchronisation multi-appareils via Firebase Realtime Database (offre gratuite), avec le même compte que Mon Garage, Ma Maison, Carnet et Allure.
Trois pages, peu de chiffres : on ne note pas tout, on suit ce qui compte.
rec-<id>-<AAAA-MM> que la génération automatique : pas de doublon) ; total par mois et par an ; évolution sur 12 mois (comparaison avec un an avant) ou par année (moyenne mensuelle, mois en cours incomplet non compté).users/<uid>/budget/plans/<id>, et dans l'export JSON.users/<uid>/budget/hidden pour ne plus la compter. Publiées par ces apps, avec le même compte, sous users/<uid>/budget/linked/garage et …/linked/maison ; Mon budget les lit dans son propre nœud et ne les réécrit jamais. Ne pas les ressaisir à la main.budget_theme_auto_v1) ; « clair » est conservé.index.html Squelette HTML
manifest.webmanifest Manifeste PWA (icônes icon-*.png, apple-touch-icon.png)
database.rules.json Règles fermées à publier sur l'ANCIENNE base publique (voir « Sécurité »)
css/ tokens, theme, base, composants, mise en page, views/budget.css, ardoise (couleurs gris bleu et cobalt, chargé en dernier)
js/
main.js Point d'entrée
config/firebase-config.js Configuration Firebase (projet commun test-e27e9) + adresse de l'ancienne base
core/ store (synchro fine), schema, money (centimes), selectors, validation, dates
services/ firebase (compte + synchro), storage
features/ auth (connexion, Réglages › Compte), pin (verrou facultatif), recurring (génération automatique)
ui/ icônes, modales, toasts, thème, graphiques, motion (ressorts, compteur à rouleaux)
views/ note (Noter), plan (Prévoir), track (Suivre), quickadd (édition d'une opération), settings
Les montants sont stockés en centimes entiers (aucune erreur d'arrondi).
sw.js pré-met en cache l'app-shell à l'installation : l'app s'ouvre même sans réseau, y compris dès le tout premier lancement hors ligne. Il vérifie aussi à chaque ouverture si les fichiers ont changé sur le serveur, pour afficher la dernière version publiée. La synchronisation Firebase reste en ligne (les écritures hors ligne sont conservées et renvoyées au retour du réseau, voir « Robustesse de la synchronisation »).
test-e27e9, même firebase-config.js). Les données sont sous users/<uid>/budget : theme, categories/<id>, transactions/<id>, recurring/<id>, goals/<id>, plans/<id>. Le même nœud reçoit linked/garage (écrit par Mon Garage), linked/maison (Ma Maison) et migrated (marque du transfert) : Mon budget les lit et ne les réécrit jamais.benjbepoix-stack.github.io) ; dans un même navigateur, être connecté dans Mon Garage suffit. Sur iPhone, chaque app installée sur l'écran d'accueil a son propre stockage : une connexion par app, une seule fois.budget_last_uid) : les données locales sont vidées avant la synchro (le thème est conservé). À la première connexion après la mise à jour, rien n'est vidé.budget_unsynced) : à la connexion, elles sont ajoutées au compte élément par élément (rien d'autre n'est écrasé ; les données non modifiées de l'appareil sont remplacées par celles du compte). Connexion à un autre compte que le dernier connecté : elles sont vidées avec le reste.Configuration : js/config/firebase-config.js (valeurs identiques à celles de Mon Garage). Si FIREBASE_CONFIG vaut null, l'app fonctionne uniquement sur l'appareil. La connexion e-mail / mot de passe doit être activée dans le projet (Authentication → Sign-in method), ce qui est déjà le cas pour Mon Garage.
Au premier instantané de users/<uid>/budget après connexion, si migrated est absent, Mon budget lit l'ancienne base publique en REST (mon-budget-ade0b…/budget.json, 8 s max) :
theme, categories, transactions, recurring, goals et linked sont écrits dans le nouveau nœud (sans écraser une collection ou un linked/<app> déjà présent, publié entre-temps par Mon Garage ou Ma Maison), avec migrated: { from: '<hôte>', at, by: 'budget' }, puis affichés ; un thème « sombre » transféré devient « Auto » ;migrated: { from: 'local', … }, en une seule écriture élément par élément (deux appareils qui démarrent en même temps fusionnent leurs opérations) ;migrated et ses données priment, rien n'est réécrit.Un nœud sans aucune collection (seulement linked, migrated et / ou theme) est considéré comme vide : les données de l'appareil n'en sont jamais effacées (un thème déjà enregistré dans le compte est gardé). Les opérations récurrentes du mois sont générées après ce premier chargement.
apiKey et le reste de firebase-config.js ne sont pas des secrets : Firebase les destine au navigateur. Les données sont protégées par le compte : les règles du projet test-e27e9 (gérées dans le dépôt Mon Garage) n'autorisent users/<uid> qu'au compte connecté. Aucune règle à publier pour les nouveaux chemins.mon-budget-ade0b (lisible et modifiable par n'importe qui jusque-là) une fois les données transférées : ouvrez Mon budget connecté sur un appareil à jour, vérifiez que vos opérations s'affichent (et, dans la console Firebase du projet test-e27e9, que users/<uid>/budget/migrated existe), puis console Firebase du projet mon-budget-ade0b → Realtime Database → Règles → coller le contenu de database.rules.json (".read": false, ".write": false) → Publier. Après cela, l'ancienne base n'est plus lisible ni modifiable : un appareil resté sur l'ancienne version passe en « Local » (ses saisies restent sur l'appareil, puis partent dans le compte après sa mise à jour et sa connexion).users/<uid>/budget/transactions/<id>) : deux appareils qui ajoutent chacun une dépense hors ligne ne s'écrasent pas.budget_unsynced) et renvoyées au lancement suivant ou à la connexion.python3 -m http.server 8080 # puis http://localhost:8080
GitHub Pages : Settings → Pages → Deploy from a branch → main / root.
Style minimaliste commun aux apps (cartes pleines), couleurs Ardoise (gris bleu et cobalt, police IBM Plex Sans).
Mouvement (js/ui/motion.js) : animations à ressort (courbes CSS linear() calculées par une petite simulation), interruptibles. Le bouton « Ajouter » s'agrandit en cercle jusqu'à devenir le fil et s'y referme ; les questions glissent comme des cartes ; le montant défile en rouleaux et une jauge « il restera » avance pendant la frappe (ambre et petit tremblement au-delà du plafond) ; « C'est noté » s'ouvre depuis « Valider », la coche se dessine et le montant part en pièce dans la jauge du budget ; les nouvelles saisies se glissent en tête de liste. Sur Suivre, les courbes se tracent à l'ouverture (plafond allumé si la projection le dépasse, point du jour qui respire), les barres montent, le mois glisse dans le sens du geste (flèches ou balayage du nom du mois) et les montants roulent vers leur nouvelle valeur. Avec « Réduire les animations » (iPhone), il ne reste que des fondus courts.
Logo : ligne continue, une courbe qui monte d'un seul trait jusqu'à un point d'arrivée, en dégradé indigo → rose sur fond blanc (icon.svg, décliné en icon-192.png, icon-512.png, apple-touch-icon.png). Même famille que les logos de Mon Garage et Ma Maison.