This repository contains the main Laravel application for BouclePro
SocialPHP · BladeGitHub @csluckiLatest connection check failedOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Pair-aidance, mutual help and human/AI cooperation platform.
This repository is under active cleaning for public publication. Internal documentation, agent workflows, tests and operational tooling have been archived locally and are not published here.
Public repository — progressive cleanup phase.
Full product documentation is not yet published here.
After running php artisan migrate --seed, the following demo accounts are available for local development:
All demo emails use the reserved .test domain and arRead the full README ↗Pair-aidance, mutual help and human/AI cooperation platform.
This repository is under active cleaning for public publication. Internal documentation, agent workflows, tests and operational tooling have been archived locally and are not published here.
composer install
npm install && npm run build
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate --seed
php artisan storage:link
php artisan serve
Public repository — progressive cleanup phase. Full product documentation is not yet published here.
After running php artisan migrate --seed, the following demo accounts are available for local development:
| Name | Organization | Role | Password | |
|---|---|---|---|---|
[email protected] | Demo Admin | Main | Super Admin | password |
[email protected] | Demo Main Member 1 | Main | Member | password |
[email protected] | Demo Main Member 2 | Main | Member | password |
[email protected] | Demo LaunchPals Member 1 | LaunchPals | Admin | password |
[email protected] | Demo LaunchPals Member 2 | LaunchPals | Member | password |
| Local Apache server (as an example for testing) : https://test.laravel |
| Property | Main | LaunchPals |
|---|---|---|
| Slug | main | launchpals |
| Platform name | BouclePro | LaunchPals |
| Locale | fr | en |
| Loop mode | multi (multiple loops) | mono (single loop) |
| Primary loop | — | LaunchPalsCircle |
| Default org | Yes | No |
| Admin | [email protected] | [email protected] |
| Demo language | French | English |
All demo emails use the reserved .test domain and are safe for public documentation.
Dashboard seeders are skipped in production environments (app()->environment('production')).
Pour reproduire un bug de production, auditer des données réelles ou répéter une release, on travaille sur un jumeau local de la PROD — jamais sur la PROD.
PROD ──(pg_dump lecture seule)──▶ baseline locale ──(TEMPLATE)──▶ bouclepro_prod_work
aucune écriture neutralisée, immuable jetable, recréable
pg_dump en lecture seule.remember_token, clés IA, jetons d'invitation). Elle est scellée IS_TEMPLATE = true avec CONNECTION LIMIT = 0 : elle ne sert que de modèle, on ne travaille jamais dessus.bouclepro_prod_work, jetable et recréable en quelques secondes.bouclepro_prod_work.Organization = Tenant reste la règle : le seed QA n'alimente que main et launchpals et ne touche aucune autre Organization.Les empreintes de mot de passe de la PROD sont conservées : personne ne connaît les mots de passe des comptes réels. C'est précisément pourquoi l'étape QA est nécessaire pour ouvrir une session sur le jumeau.
1. Confirmer la version déployée en PROD. Elle est affichée dans le pied de page du site de production. C'est elle qui nommera la baseline — pas la version locale de develop, qui peut être plus récente.
2. Produire un dump PROD frais, en lecture seule, avec un chemin explicite :
ai/scripts/pg-dump.sh prod-dump _local/sync_prod/dumps/production_<version>_<horodatage>.dump
Toujours passer le chemin : la destination par défaut n'est pas l'emplacement canonique.
3. Choisir une baseline, ou en créer une. Lister celles qui existent déjà :
psql -h 127.0.0.1 -U bouclepro -d postgres \
-c "SELECT datname, datistemplate, datconnlimit FROM pg_database
WHERE datname LIKE 'bouclepro_prod_baseline_%' ORDER BY datname;"
Pour en créer une depuis le dump — --dry-run d'abord, puis la même commande sans :
export DATABASE_TARGET=bouclepro_prod_baseline_<version_prod>_<AAAAMMJJ>
./_local/sync_prod/create-prod-baseline.sh \
--dump _local/sync_prod/dumps/<le dump>.dump \
--name "$DATABASE_TARGET" \
--dry-run
DATABASE_TARGET doit valoir exactement --name. Ne pas utiliser --yes : la confirmation demande de saisir le nom de la base, et c'est la garde.
4. Recréer le jumeau, BASE= toujours explicite :
BASE=<la baseline choisie> ./_local/sync_prod/reset-prod-work.sh
5. Vérifier les migrations, et ne migrer que s'il y en a en attente :
php artisan migrate:status --env=prodwork
php artisan migrate --env=prodwork # seulement si Pending > 0
6. Injecter les comptes QA — dans le jumeau uniquement :
php artisan db:seed --class=UserSeeder --env=prodwork
7. Vérifier les comptes QA, en lecture seule : les cinq comptes du tableau Seed Data présents, non bannis, dans les Organizations attendues. Un seeder qui sort en succès ne garantit pas un compte connectable — UserSeeder utilise firstOrCreate, donc il n'écrase rien si l'email existe déjà.
8. Lancer le rehearsal :
./_local/sync_prod/rehearsal-serve.sh # http://127.0.0.1:8097
9. Tester les connexions et l'isolation tenant : un membre d'une Organization ne doit atteindre aucune surface d'une autre.
reset-prod-work.sh sans BASE= : son défaut historique pointe encore vers une baseline ancienne, et le jumeau obtenu passerait pour un jumeau courant.develop soit plus récent est normal : c'est migrate:status qui tranche.bouclepro (environnement de développement), ni sur bouclepro_test./login n'est pas forcément un défaut : vérifier banned_at avant de conclure.APP_URL et le port servi plutôt que du produit. Le script le rappelle au démarrage.Ce workflow s'appuie sur deux répertoires volontairement laissés hors du dépôt — non suivis par git, absents du dépôt public :
_local/sync_prod/ — outils de référence du workflow PROD → LOCAL (create-prod-baseline.sh, reset-prod-work.sh, rehearsal-serve.sh), ainsi que les dumps, rapports et journaux ;ai/scripts/ — outillage d'exploitation, dont pg-dump.sh.Les chemins cités sont relatifs à la racine du dépôt. Les identifiants de production vivent hors du dépôt et ne sont jamais affichés.
pg-dump.sh mirror-import, prod-mirror, import, reset — ces sous-commandes écrasent la base de développement locale ; elles relèvent de l'ancien modèle « restauration par-dessus bouclepro », remplacé par le couple baseline / jumeau.QaAccountsSeeder — déprécié, délègue à UserSeeder.LegacyDataOrganizationSeeder — hors de ce workflow : il réécrit organization_id en masse sur plusieurs tables.BouclePro Core is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Commercial licenses, plugin exceptions, and integration exceptions may be discussed on a case-by-case basis.
Existing third-party dependencies keep their own licenses.