An intelligent academic assistant that generates complete, human-like academic reports from various input formats while maintaining authenticity and bypassing AI detection.
- Dynamic Input Format Handling: Accepts plain text, bullet points, CSV, JSON, YAML, Q&A format
- Smart Report Generation: Auto-structures reports with proper academic sections
- Humanization Layer: Makes output sound naturally written by humans
- AI Detection Shield: Implements linguistic variation to bypass AI detectors
- Multiple Citation Formats: APA, MLA, IEEE, Chicago, Harvard support
- Flexible Export: DOCX, PDF, Markdown, TXT outputs
npm installCreate a .env file in the root directory:
GOOGLE_API_KEY=your_google_gemini_api_key_here
# or
GEMINI_API_KEY=your_google_gemini_api_key_here
DEFAULT_MODEL=gemini-2.5-proGet your free Google Gemini API key from: https://makersuite.google.com/app/apikey
# Generate from plain text
node src/cli.js generate --input "Climate change impacts on agriculture" --format APA --words 1500
# Generate from structured input file
node src/cli.js generate --file data/input.json --format MLA --tone formal
# Interactive mode
node src/cli.js interactive
# Generate with specific sections
node src/cli.js generate --input "AI in Healthcare" --sections "Abstract,Introduction,Analysis,Conclusion" --output report.docximport { ReportWriter } from './src/core/ReportWriter.js';
const writer = new ReportWriter();
const report = await writer.generate({
input: "Your topic or structured data",
format: "APA",
wordCount: 2000,
tone: "academic",
sections: ["Abstract", "Introduction", "Analysis", "Conclusion"]
});
// Export
await report.export("output.docx");
await report.export("output.pdf");
await report.export("output.md");
// Get detection safe score
const score = report.getDetectionSafeScore();
console.log(`Human-likeness score: ${score}/100`);reportWriter/
├── package.json
├── .env
├── src/
│ ├── index.js # Main entry point
│ ├── cli.js # CLI interface
│ ├── config/
│ │ ├── settings.js # Configuration
│ │ └── prompts.js # System prompts
│ ├── core/
│ │ ├── ReportWriter.js # Main class
│ │ ├── InputParser.js # Input format detection
│ │ ├── ReportGenerator.js # Report generation engine
│ │ ├── Humanizer.js # Humanization layer
│ │ └── DetectorShield.js # AI detection bypass
│ ├── utils/
│ │ ├── CitationManager.js # Citation formatting
│ │ ├── ExportHandler.js # Export utilities
│ │ ├── TextAnalyzer.js # Text quality analysis
│ │ └── Validators.js # Input validation
│ ├── templates/
│ │ ├── reportStructures.json
│ │ └── citationStyles.json
│ └── services/
│ ├── AIService.js # AI API integration
│ └── CitationAPI.js # Citation fetching
├── outputs/ # Generated reports
├── tests/ # Test files
└── examples/ # Example inputs
const writer = new ReportWriter();
const report = await writer.generate({
input: "Machine Learning in Healthcare",
wordCount: 2000
});const report = await writer.generate({
input: {
topic: "Climate Change",
bullets: [
"Causes of climate change",
"Impact on ecosystems",
"Mitigation strategies"
]
},
format: "APA",
wordCount: 3000,
tone: "research",
sections: ["Abstract", "Introduction", "Literature Review", "Analysis", "Conclusion"],
humanization: "high",
detectionShield: true,
includeReferences: true
});await report.exportAll("my-report"); // Generates .docx, .pdf, .mdEdit src/config/settings.js to customize:
- Default citation style
- Word count ranges
- Tone preferences
- AI detection thresholds
- Humanization levels
npm testMIT License