create-crm-tmp 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70,13 +70,14 @@ APP_NAME="${projectName
70
70
  .replaceAll(/([a-z])([A-Z])/g, "$1 $2")
71
71
  .replaceAll(/(^\w|\s\w)/g, (m) => m.toUpperCase())}"
72
72
 
73
- ENCRYPTION_KEY="" #openssl rand -base64 32
73
+ ENCRYPTION_KEY="" # openssl rand -base64 32
74
74
 
75
+ # API Google à ajouter dans console.cloud.google : Google Drive API, Google Calendar API, Google Sheet API
75
76
  GOOGLE_CLIENT_ID=""
76
77
  GOOGLE_CLIENT_SECRET=""
77
- GOOGLE_REDIRECT_URI=""
78
+ GOOGLE_REDIRECT_URI="http://localhost:3000/api/auth/google/callback"
78
79
 
79
- CRON_SECRET="" #openssl rand -base64 32
80
+ CRON_SECRET="" # openssl rand -base64 32
80
81
  `;
81
82
  fs.writeFileSync(envExamplePath, envExample);
82
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-crm-tmp",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Créer un nouveau projet CRM basé sur le template",
5
5
  "bin": {
6
6
  "create-crm-tmp": "./bin/create-crm-tmp.js"
@@ -80,14 +80,16 @@ Vous pouvez utiliser **Supabase** uniquement comme **hébergeur PostgreSQL** (l
80
80
  - Créez un nouveau projet.
81
81
  - Attendez que la base de données soit provisionnée.
82
82
  2. **Récupérer la connexion Postgres**
83
- - Dans Supabase, ouvrez `Settings > Database`.
84
- - Copiez la **connection string** en `postgresql://...` (par exemple, pour Node.js / server).
83
+ - Dans Supabase, cliquez sur `🔌 Connect`.
84
+ - Sélectionnez `ORMs` et choisissez le Tool `Prisma`
85
+ - Copiez les 2 premières variables d'environnement du contenu dans `.env.local` (`DATABASE_URL & DIRECT_URL`).
85
86
  3. **Configurer `DATABASE_URL`**
86
87
  - Dans votre projet généré (`mon-crm`), créez ou mettez à jour le fichier `.env` :
87
88
 
88
89
  ```env
89
90
  # Database (Supabase)
90
- DATABASE_URL="postgresql://<user>:<password>@<host>:<port>/<database>?sslmode=require"
91
+ DATABASE_URL="postgresql://postgres.project:[YOUR-PASSWORD]@aws.pooler.supabase.com:port/postgres?pgbouncer=true"
92
+ DIRECT_URL="postgresql://postgres.project:[YOUR-PASSWORD]@aws.pooler.supabase.com:port/postgres"
91
93
 
92
94
  # Better Auth
93
95
  BETTER_AUTH_SECRET="votre-clé-secrète-minimum-32-caractères"
@@ -97,8 +99,7 @@ Vous pouvez utiliser **Supabase** uniquement comme **hébergeur PostgreSQL** (l
97
99
  NEXT_PUBLIC_APP_URL="http://localhost:3000"
98
100
  NODE_ENV="development"
99
101
  ```
100
-
101
- - Remplacez la valeur de `DATABASE_URL` par celle fournie par Supabase (en gardant les paramètres de sécurité recommandés).
102
+
102
103
  4. **Appliquer les migrations Prisma sur Supabase**
103
104
 
104
105
  ```bash
@@ -111,90 +112,43 @@ Vous pouvez utiliser **Supabase** uniquement comme **hébergeur PostgreSQL** (l
111
112
  pnpm dev
112
113
  ```
113
114
 
114
- L’application utilisera désormais la base PostgreSQL hébergée sur Supabase.
115
-
116
- ## 🚀 Installation
117
-
118
- 1. **Cloner le projet**
119
-
120
- ```bash
121
- git clone <votre-repo>
122
- cd crm-template
123
- ```
124
-
125
- 2. **Installer les dépendances**
126
-
127
- ```bash
128
- pnpm install
129
- ```
130
-
131
- 3. **Configurer les variables d'environnement**
132
-
133
- Créez un fichier `.env` à la racine du projet :
134
-
135
- ```env
136
- # Database
137
- DATABASE_URL="postgresql://postgres:password@localhost:5432/crm_db"
138
-
139
- # Better Auth (générer avec: openssl rand -base64 32)
140
- BETTER_AUTH_SECRET="votre-clé-secrète-minimum-32-caractères"
141
- BETTER_AUTH_URL="http://localhost:3000"
142
-
143
- # Application
144
- NEXT_PUBLIC_APP_URL="http://localhost:3000"
145
- NODE_ENV="development"
146
- ```
147
-
148
- 4. **Créer la base de données**
149
-
150
- ```bash
151
- createdb crm_db
152
- # Ou: psql -U postgres -c "CREATE DATABASE crm_db;"
153
- ```
115
+ Ouvrez [http://localhost:3000](http://localhost:3000) pour voir l'application.
154
116
 
155
- 5. **Appliquer les migrations**
117
+ 6. **Lancez le script permettant de créer un compte Admin**
156
118
 
157
119
  ```bash
158
- pnpm prisma migrate deploy
159
- ```
160
-
161
- 6. **Lancer le serveur de développement**
120
+ # Lancez ceci
121
+ npm tsx scripts/create-admin.ts [email] [password] [name]
162
122
 
163
- ```bash
164
- pnpm dev
123
+ # Modifier les champ "[email] [password] [name] pour configurer votre compte Admin
165
124
  ```
166
125
 
167
- Ouvrez [http://localhost:3000](http://localhost:3000) pour voir l'application.
168
-
169
- 7. **Créer votre premier admin**
170
-
126
+ 7. **Lancez le script permettant d'ajouter les permissions dans la base de données**
171
127
  ```bash
172
- # Ouvrir Prisma Studio
173
- pnpm prisma studio
174
-
175
- # Modifier le champ "role" de votre utilisateur en "ADMIN"
128
+ # Lancez ceci
129
+ npm tsx scripts/seed-roles.ts
176
130
  ```
177
131
 
178
132
  ## 📁 Structure du projet
179
133
 
180
134
  ```
181
- src/
182
- ├── app/
183
- ├── (auth)/ # Groupe de routes d'authentification
184
- ├── (dashboard)/ # Espace connecté (protégé)
185
- ├── dashboard/ # Tableau de bord
186
- │ │ ├── contacts/ # Gestion des contacts
187
- │ │ ├── agenda/ # Agenda (mois / semaine / jour)
188
- │ │ ├── automatisation/ # Workflows / automatisations
189
- │ │ ├── templates/ # Templates d’emails
190
- │ │ ├── settings/ # Paramètres (profil, entreprise, intégrations…)
191
- ├── users/ # Gestion des utilisateurs & rôles (admin)
192
- │ └── layout.tsx # Layout avec sidebar
193
- ├── api/ # API (contacts, workflows, intégrations, users, etc.)
194
- │ └── page.tsx # Page d'accueil (redirection)
195
- ├── components/ # Composants UI (sidebar, headers, skeletons…)
196
- ├── lib/ # Auth, Prisma, rôles, intégrations Google, workflows…
197
- └── proxy.ts # Protection des routes (proxy)
135
+ .
136
+ ├── prisma/
137
+ └── schema.prisma # Schéma Prisma (migrations via CLI)
138
+ ├── src/
139
+ │ ├── app/
140
+ │ │ ├── (auth)/ # Pages d'authentification
141
+ │ │ ├── (dashboard)/ # Espace connecté (contacts, agenda, etc.)
142
+ │ │ ├── api/ # Routes API (contacts, workflows, users, intégrations…)
143
+ │ │ ├── layout.tsx # Layout racine (HTML, <body>, providers…)
144
+ │ │ └── page.tsx # Page d'accueil / redirection
145
+ │ ├── components/ # Composants UI (sidebar, headers, formulaires…)
146
+ ├── lib/ # Auth, Prisma, rôles, intégrations externes, utils…
147
+ └── proxy.ts # Protection des routes (proxy Next.js)
148
+ ├── scripts/
149
+ ├── create-admin.ts # Script pour créer un compte admin
150
+ │ └── seed-roles.ts # Script pour insérer rôles & permissions
151
+ └── ...
198
152
  ```
199
153
 
200
154
  ## 🔒 Protection & rôles