Files
dwroller/database/legacy/dbinstall.js
Alex dde3abda55 feat: Add validation and normalization utilities for player records
- Implemented `validatePlayer` and `normalizeTabInfo` functions in `database/validate.js` for player data validation and normalization.
- Added error handling for required fields and enforced data types and constraints.
- Introduced standardization for characteristics and skills.

feat: Create script for extracting rules from PDF files

- Developed `extract-rules.js` to extract text from PDF rulebooks and categorize rules.
- Integrated `pdftotext` for PDF processing and created a searchable rules database.
- Implemented rule categorization and indexing for efficient searching.

feat: Implement RulesTab component for rule searching

- Created `RulesTab.jsx` for searching and displaying rules with filtering options.
- Added recent searches and quick reference buttons for user convenience.
- Integrated API calls for fetching rules and displaying results dynamically.

feat: Add test script for Rules API

- Created `test-rules.js` to test the functionality of the Rules API endpoints.
- Included tests for search and stats endpoints to ensure proper response handling.
2025-08-16 12:15:32 +02:00

41 lines
1.2 KiB
JavaScript

const mongoose = require('mongoose');
const Player = require('./playerModel');
const GMSession = require('./gmSessionModel');
async function setupDatabase() {
try {
console.log('Connecting to MongoDB...');
await mongoose.connect('mongodb://localhost:27017/deathwatch', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
console.log('Connected to MongoDB.');
console.log('Initializing collections...');
// Initialize Players collection
const samplePlayers = [
{ name: 'Player1', rollerInfo: {}, shopInfo: {}, tabInfo: {} },
{ name: 'Player2', rollerInfo: {}, shopInfo: {}, tabInfo: {} },
];
await Player.insertMany(samplePlayers);
console.log('Players collection initialized.');
// Initialize GM Sessions collection
const sampleSessions = [
{ sessionId: 'session1', isActive: true },
{ sessionId: 'session2', isActive: false },
];
await GMSession.insertMany(sampleSessions);
console.log('GM Sessions collection initialized.');
console.log('Database setup completed successfully.');
} catch (error) {
console.error('Error during database setup:', error.message);
} finally {
mongoose.connection.close();
}
}
setupDatabase();