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.
- package/bin/create-crm-tmp.js +4 -3
- package/package.json +1 -1
- package/template/README.md +31 -77
package/bin/create-crm-tmp.js
CHANGED
|
@@ -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
package/template/README.md
CHANGED
|
@@ -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,
|
|
84
|
-
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
117
|
+
6. **Lancez le script permettant de créer un compte Admin**
|
|
156
118
|
|
|
157
119
|
```bash
|
|
158
|
-
|
|
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
|
-
|
|
164
|
-
pnpm dev
|
|
123
|
+
# Modifier les champ "[email] [password] [name] pour configurer votre compte Admin
|
|
165
124
|
```
|
|
166
125
|
|
|
167
|
-
|
|
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
|
-
#
|
|
173
|
-
|
|
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
|
-
|
|
182
|
-
├──
|
|
183
|
-
│
|
|
184
|
-
|
|
185
|
-
│
|
|
186
|
-
│ │ ├──
|
|
187
|
-
│ │ ├──
|
|
188
|
-
│ │ ├──
|
|
189
|
-
│ │ ├──
|
|
190
|
-
│ │
|
|
191
|
-
│
|
|
192
|
-
│
|
|
193
|
-
│
|
|
194
|
-
|
|
195
|
-
├──
|
|
196
|
-
|
|
197
|
-
└──
|
|
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
|