Complete Email Sortierer implementation with Appwrite and Stripe integration
This commit is contained in:
103
server/verify-setup.mjs
Normal file
103
server/verify-setup.mjs
Normal file
@@ -0,0 +1,103 @@
|
||||
import { existsSync } from 'fs';
|
||||
import { join, dirname } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
console.log('🔍 Verifying Email Sortierer Setup\n');
|
||||
|
||||
let allChecksPass = true;
|
||||
|
||||
// Check 1: .env file exists
|
||||
console.log('Check 1: .env file exists');
|
||||
const envPath = join(__dirname, '.env');
|
||||
if (existsSync(envPath)) {
|
||||
console.log('✅ .env file found\n');
|
||||
} else {
|
||||
console.log('❌ .env file not found');
|
||||
console.log(' → Copy .env.example to .env and fill in your credentials\n');
|
||||
allChecksPass = false;
|
||||
}
|
||||
|
||||
// Check 2: Required environment variables
|
||||
console.log('Check 2: Required environment variables');
|
||||
const requiredVars = [
|
||||
'APPWRITE_ENDPOINT',
|
||||
'APPWRITE_PROJECT_ID',
|
||||
'APPWRITE_API_KEY',
|
||||
'APPWRITE_DATABASE_ID',
|
||||
'STRIPE_SECRET_KEY',
|
||||
'STRIPE_WEBHOOK_SECRET'
|
||||
];
|
||||
|
||||
let missingVars = [];
|
||||
for (const varName of requiredVars) {
|
||||
if (!process.env[varName]) {
|
||||
missingVars.push(varName);
|
||||
}
|
||||
}
|
||||
|
||||
if (missingVars.length === 0) {
|
||||
console.log('✅ All required environment variables are set\n');
|
||||
} else {
|
||||
console.log('❌ Missing environment variables:');
|
||||
missingVars.forEach(v => console.log(` - ${v}`));
|
||||
console.log(' → Add these to your .env file\n');
|
||||
allChecksPass = false;
|
||||
}
|
||||
|
||||
// Check 3: Node modules installed
|
||||
console.log('Check 3: Node modules installed');
|
||||
const nodeModulesPath = join(__dirname, 'node_modules');
|
||||
if (existsSync(nodeModulesPath)) {
|
||||
console.log('✅ node_modules found\n');
|
||||
} else {
|
||||
console.log('❌ node_modules not found');
|
||||
console.log(' → Run: npm install\n');
|
||||
allChecksPass = false;
|
||||
}
|
||||
|
||||
// Check 4: Required files exist
|
||||
console.log('Check 4: Required files exist');
|
||||
const requiredFiles = [
|
||||
'index.mjs',
|
||||
'bootstrap-appwrite.mjs',
|
||||
'e2e-test.mjs',
|
||||
'package.json',
|
||||
'../public/index.html'
|
||||
];
|
||||
|
||||
let missingFiles = [];
|
||||
for (const file of requiredFiles) {
|
||||
const filePath = join(__dirname, file);
|
||||
if (!existsSync(filePath)) {
|
||||
missingFiles.push(file);
|
||||
}
|
||||
}
|
||||
|
||||
if (missingFiles.length === 0) {
|
||||
console.log('✅ All required files exist\n');
|
||||
} else {
|
||||
console.log('❌ Missing files:');
|
||||
missingFiles.forEach(f => console.log(` - ${f}`));
|
||||
console.log('\n');
|
||||
allChecksPass = false;
|
||||
}
|
||||
|
||||
// Summary
|
||||
console.log('═══════════════════════════════════════════════════════');
|
||||
if (allChecksPass) {
|
||||
console.log('✅ Setup verification passed!');
|
||||
console.log('\nNext steps:');
|
||||
console.log('1. Run bootstrap script: npm run bootstrap');
|
||||
console.log('2. Update APPWRITE_DATABASE_ID in .env with the database ID from bootstrap');
|
||||
console.log('3. Start the server: npm start');
|
||||
console.log('4. Run tests: npm test');
|
||||
console.log('5. Open browser: http://localhost:3000');
|
||||
} else {
|
||||
console.log('❌ Setup verification failed');
|
||||
console.log('\nPlease fix the issues above and run this script again.');
|
||||
console.log('Run: node verify-setup.mjs');
|
||||
}
|
||||
console.log('═══════════════════════════════════════════════════════');
|
||||
Reference in New Issue
Block a user