academic-document-checker 0.4.1b1__tar.gz
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.
- academic_document_checker-0.4.1b1/LICENSE +21 -0
- academic_document_checker-0.4.1b1/MANIFEST.in +7 -0
- academic_document_checker-0.4.1b1/PKG-INFO +520 -0
- academic_document_checker-0.4.1b1/README.md +471 -0
- academic_document_checker-0.4.1b1/config/default_config.yaml +45 -0
- academic_document_checker-0.4.1b1/pyproject.toml +126 -0
- academic_document_checker-0.4.1b1/requirements-dev.txt +16 -0
- academic_document_checker-0.4.1b1/requirements.txt +16 -0
- academic_document_checker-0.4.1b1/setup.cfg +4 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/PKG-INFO +520 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/SOURCES.txt +66 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/dependency_links.txt +1 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/entry_points.txt +2 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/requires.txt +25 -0
- academic_document_checker-0.4.1b1/src/academic_document_checker.egg-info/top_level.txt +1 -0
- academic_document_checker-0.4.1b1/src/doc_checker/__init__.py +3 -0
- academic_document_checker-0.4.1b1/src/doc_checker/__main__.py +6 -0
- academic_document_checker-0.4.1b1/src/doc_checker/ai/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/ai/cost_tracker.py +108 -0
- academic_document_checker-0.4.1b1/src/doc_checker/ai/model_manager.py +124 -0
- academic_document_checker-0.4.1b1/src/doc_checker/ai/openai_provider.py +71 -0
- academic_document_checker-0.4.1b1/src/doc_checker/ai/provider_base.py +63 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/aims_section.py +192 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/base_analyzer.py +57 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/citations.py +346 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/formatting.py +185 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/grammar.py +285 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/medical_guidelines.py +340 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/medical_terminology.py +137 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/methods_terminology.py +171 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/numeracy.py +150 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/statement_placement.py +291 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/structure.py +409 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/title_page.py +283 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/tracked_changes.py +135 -0
- academic_document_checker-0.4.1b1/src/doc_checker/analyzers/uk_spelling.py +235 -0
- academic_document_checker-0.4.1b1/src/doc_checker/cli.py +607 -0
- academic_document_checker-0.4.1b1/src/doc_checker/core/__init__.py +5 -0
- academic_document_checker-0.4.1b1/src/doc_checker/core/cache_manager.py +229 -0
- academic_document_checker-0.4.1b1/src/doc_checker/core/parser.py +632 -0
- academic_document_checker-0.4.1b1/src/doc_checker/core/profile_loader.py +242 -0
- academic_document_checker-0.4.1b1/src/doc_checker/core/rule_engine.py +287 -0
- academic_document_checker-0.4.1b1/src/doc_checker/journals/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/generic.yaml +69 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/grant-proposal.yaml +72 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/grants/nih.yaml +56 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/grants/nsf.yaml +55 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/journals/bmj.yaml +68 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/journals/lancet.yaml +78 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/journals/nejm.yaml +58 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/medical-journal.yaml +107 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/phd-thesis.yaml +87 -0
- academic_document_checker-0.4.1b1/src/doc_checker/profiles/uk-academic-manuscript.yaml +77 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/correction_log_reporter.py +180 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/html_reporter.py +166 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/json_reporter.py +68 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/junit_reporter.py +78 -0
- academic_document_checker-0.4.1b1/src/doc_checker/reporters/terminal_reporter.py +190 -0
- academic_document_checker-0.4.1b1/src/doc_checker/utils/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/utils/config.py +103 -0
- academic_document_checker-0.4.1b1/src/doc_checker/utils/sanitizer.py +131 -0
- academic_document_checker-0.4.1b1/src/doc_checker/validators/__init__.py +0 -0
- academic_document_checker-0.4.1b1/src/doc_checker/validators/profile_validator.py +130 -0
- academic_document_checker-0.4.1b1/templates/correction_log_template.html +272 -0
- academic_document_checker-0.4.1b1/templates/report_template.html +377 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Academic Document Checker Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: academic-document-checker
|
|
3
|
+
Version: 0.4.1b1
|
|
4
|
+
Summary: Rule-based academic document checker with optional AI enhancement (coming in v1.5+)
|
|
5
|
+
Author: Academic Document Checker Team
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/darmsc/Academic_Document_Checker
|
|
8
|
+
Project-URL: Documentation, https://github.com/darmsc/Academic_Document_Checker#readme
|
|
9
|
+
Project-URL: Repository, https://github.com/darmsc/Academic_Document_Checker
|
|
10
|
+
Project-URL: Issues, https://github.com/darmsc/Academic_Document_Checker/issues
|
|
11
|
+
Keywords: academic,document,checker,thesis,medical,journal,validation
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Intended Audience :: Education
|
|
15
|
+
Classifier: Topic :: Text Processing :: Linguistic
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Requires-Python: >=3.8
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: click>=8.0
|
|
28
|
+
Requires-Dist: python-docx>=0.8.11
|
|
29
|
+
Requires-Dist: PyYAML>=6.0
|
|
30
|
+
Requires-Dist: rich>=13.0
|
|
31
|
+
Requires-Dist: jinja2>=3.1
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-benchmark>=4.0; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-mock>=3.10; extra == "dev"
|
|
37
|
+
Requires-Dist: black>=23.0; extra == "dev"
|
|
38
|
+
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
39
|
+
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
40
|
+
Provides-Extra: ai
|
|
41
|
+
Requires-Dist: openai>=1.0; extra == "ai"
|
|
42
|
+
Requires-Dist: anthropic>=0.20; extra == "ai"
|
|
43
|
+
Provides-Extra: medical
|
|
44
|
+
Requires-Dist: language-tool-python>=2.7; extra == "medical"
|
|
45
|
+
Requires-Dist: pyspellchecker>=0.7.0; extra == "medical"
|
|
46
|
+
Provides-Extra: all
|
|
47
|
+
Requires-Dist: academic-document-checker[ai,dev,medical]; extra == "all"
|
|
48
|
+
Dynamic: license-file
|
|
49
|
+
|
|
50
|
+
# Academic Document Checker
|
|
51
|
+
|
|
52
|
+
> A Python CLI tool that automatically validates academic documents (Word, PDF, and more) with profile-based checking for PhD theses, medical journals, and more.
|
|
53
|
+
|
|
54
|
+
## What Does It Do?
|
|
55
|
+
|
|
56
|
+
The Academic Document Checker analyzes your Word documents and provides comprehensive feedback on:
|
|
57
|
+
|
|
58
|
+
- ✅ **Structure** - Required sections, heading hierarchy, organization
|
|
59
|
+
- ✅ **Formatting** - Word counts, figure limits, citation style
|
|
60
|
+
- ✅ **Citations** - Format validation, orphaned references, completeness
|
|
61
|
+
- ✅ **Grammar** - Academic tone, passive voice, sentence complexity
|
|
62
|
+
- ✅ **Style** - Writing quality, clarity, domain-specific requirements
|
|
63
|
+
|
|
64
|
+
## Why Use This Tool?
|
|
65
|
+
|
|
66
|
+
### For PhD Students
|
|
67
|
+
- Ensure your thesis meets institutional requirements before submission
|
|
68
|
+
- Catch structural and formatting issues early
|
|
69
|
+
- Validate citation completeness and consistency
|
|
70
|
+
- Get feedback on academic writing style
|
|
71
|
+
|
|
72
|
+
### For Medical Researchers
|
|
73
|
+
- Check compliance with journal-specific guidelines (Lancet, NEJM, BMJ)
|
|
74
|
+
- Validate CONSORT/STROBE/PRISMA checklist items
|
|
75
|
+
- Ensure proper medical terminology usage
|
|
76
|
+
- Meet strict word and reference limits
|
|
77
|
+
|
|
78
|
+
### For Academic Supervisors
|
|
79
|
+
- Standardize quality expectations across students
|
|
80
|
+
- Quickly identify common issues in student work
|
|
81
|
+
- Provide consistent, objective feedback
|
|
82
|
+
- Save time on structural reviews
|
|
83
|
+
|
|
84
|
+
## Quick Start
|
|
85
|
+
|
|
86
|
+
### Installation
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
pip install academic-document-checker
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Basic Usage
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Check a PhD thesis
|
|
96
|
+
doc-checker check thesis.docx --profile phd-thesis
|
|
97
|
+
|
|
98
|
+
# Check a medical journal manuscript
|
|
99
|
+
doc-checker check manuscript.docx --profile lancet
|
|
100
|
+
|
|
101
|
+
# Generate HTML report
|
|
102
|
+
doc-checker check thesis.docx --profile phd-thesis --format html --output report.html
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Example Output
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
📄 Checking: thesis.docx
|
|
109
|
+
📋 Profile: PhD Thesis
|
|
110
|
+
|
|
111
|
+
Structure Analysis:
|
|
112
|
+
✓ All required sections present
|
|
113
|
+
❌ Missing: "List of Abbreviations"
|
|
114
|
+
⚠️ Section order: "Discussion" should come before "Conclusion"
|
|
115
|
+
|
|
116
|
+
Formatting:
|
|
117
|
+
✓ Abstract: 287 words (limit: 500)
|
|
118
|
+
❌ Total words: 38,450 (minimum: 40,000)
|
|
119
|
+
✓ References: 67 (minimum: 50)
|
|
120
|
+
|
|
121
|
+
Citations:
|
|
122
|
+
⚠️ 3 citations not found in references
|
|
123
|
+
⚠️ 5 references never cited in text
|
|
124
|
+
✓ Citation format is consistent (APA)
|
|
125
|
+
|
|
126
|
+
Grammar & Style:
|
|
127
|
+
⚠️ Passive voice: 28% (recommended: <25%)
|
|
128
|
+
⚠️ 12 sentences exceed 40 words
|
|
129
|
+
💡 Consider more active voice in Discussion section
|
|
130
|
+
|
|
131
|
+
Summary: 2 errors, 7 warnings, 1 suggestion
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Profile System
|
|
135
|
+
|
|
136
|
+
The tool uses **profiles** to adapt checking rules for different document types:
|
|
137
|
+
|
|
138
|
+
### Available Profiles
|
|
139
|
+
|
|
140
|
+
| Profile | Best For | Key Features |
|
|
141
|
+
|---------|----------|--------------|
|
|
142
|
+
| **generic** | General academic papers | Basic structure, flexible formatting |
|
|
143
|
+
| **phd-thesis** | Doctoral dissertations | 15+ required sections, 40k+ words, comprehensive |
|
|
144
|
+
| **medical-journal** | Medical research papers | IMRAD structure, clinical guidelines, medical terms |
|
|
145
|
+
| **lancet** | The Lancet submissions | 3000 word limit, 30 references, strict formatting |
|
|
146
|
+
| **nejm** | NEJM submissions | 2700 word limit, 40 references, NEJM style |
|
|
147
|
+
| **bmj** | BMJ submissions | 4000 word limit, patient involvement, BMJ boxes |
|
|
148
|
+
| **grant-proposal** | Generic grant applications | Aims, budget, significance, innovation sections |
|
|
149
|
+
| **nih** | NIH grant applications | NIH-specific sections, page limits, review criteria |
|
|
150
|
+
| **nsf** | NSF grant applications | Broader impacts, intellectual merit requirements |
|
|
151
|
+
|
|
152
|
+
### Profile Inheritance
|
|
153
|
+
|
|
154
|
+
Profiles build on each other to avoid duplication:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
Generic Publication
|
|
158
|
+
├── PhD Thesis
|
|
159
|
+
├── Medical Journal
|
|
160
|
+
│ ├── The Lancet
|
|
161
|
+
│ ├── NEJM
|
|
162
|
+
│ ├── BMJ
|
|
163
|
+
│ └── Custom Journals...
|
|
164
|
+
└── Grant Proposal
|
|
165
|
+
├── NIH
|
|
166
|
+
├── NSF
|
|
167
|
+
└── Custom Grants...
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Features
|
|
171
|
+
|
|
172
|
+
### 1. Multi-Format Support
|
|
173
|
+
Works with Word documents (.docx), plain text (.txt), and Markdown (.md) out of the box.
|
|
174
|
+
PDF and LaTeX support is planned for a future release.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Word document
|
|
178
|
+
doc-checker check thesis.docx --profile phd-thesis
|
|
179
|
+
|
|
180
|
+
# Markdown
|
|
181
|
+
doc-checker check thesis.md --profile phd-thesis
|
|
182
|
+
|
|
183
|
+
# Plain text
|
|
184
|
+
doc-checker check thesis.txt --profile phd-thesis
|
|
185
|
+
|
|
186
|
+
# Future formats (planned)
|
|
187
|
+
doc-checker check thesis.pdf --profile phd-thesis
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 2. Multi-Profile Support
|
|
191
|
+
Choose the right profile for your document type. Each profile has specific requirements and validation rules.
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
doc-checker profiles --list
|
|
195
|
+
doc-checker check document.docx --profile phd-thesis
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 3. Comprehensive Checking
|
|
199
|
+
- **Structure**: Required sections, heading hierarchy, numbering
|
|
200
|
+
- **Formatting**: Word limits, figure counts, spacing requirements
|
|
201
|
+
- **Citations**: Format detection, completeness, consistency
|
|
202
|
+
- **Grammar**: Academic tone, passive voice, sentence length
|
|
203
|
+
- **Style**: Writing quality, clarity, domain-specific standards
|
|
204
|
+
|
|
205
|
+
### 4. Multiple Output Formats
|
|
206
|
+
```bash
|
|
207
|
+
# Terminal output (default)
|
|
208
|
+
doc-checker check thesis.docx --profile phd-thesis
|
|
209
|
+
|
|
210
|
+
# HTML report
|
|
211
|
+
doc-checker check thesis.docx --profile phd-thesis --format html --output report.html
|
|
212
|
+
|
|
213
|
+
# JSON output (for automation)
|
|
214
|
+
doc-checker check thesis.docx --profile phd-thesis --format json --output results.json
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 5. Custom Profiles
|
|
218
|
+
Create profiles for your institution or specific needs:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Create new profile
|
|
222
|
+
doc-checker profile create my-university --extends phd-thesis
|
|
223
|
+
|
|
224
|
+
# Validate custom profile
|
|
225
|
+
doc-checker profile validate my-profile.yaml
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 6. AI Enhancement (Roadmap)
|
|
229
|
+
|
|
230
|
+
⚠️ **Coming in Future Releases** - AI features are planned but not yet implemented.
|
|
231
|
+
|
|
232
|
+
The tool will support three AI options in future versions:
|
|
233
|
+
|
|
234
|
+
#### v1.5 (Target: Q3 2026) - Cloud AI
|
|
235
|
+
- **Providers**: OpenAI (ChatGPT), Anthropic (Claude)
|
|
236
|
+
- **Cost**: $0.10-$0.50 per document
|
|
237
|
+
- **Quality**: Excellent
|
|
238
|
+
- **Privacy**: Document sent to provider's servers
|
|
239
|
+
- **Use case**: Best for final review before submission
|
|
240
|
+
|
|
241
|
+
#### v2.0 (Target: Q4 2026) - Local AI
|
|
242
|
+
- **Provider**: Ollama (runs on your computer)
|
|
243
|
+
- **Cost**: Free
|
|
244
|
+
- **Quality**: Good
|
|
245
|
+
- **Privacy**: Completely private, offline
|
|
246
|
+
- **Use case**: Budget-friendly, sensitive documents
|
|
247
|
+
|
|
248
|
+
#### v2.5 (Target: Q1 2027) - Fine-Tuned Models
|
|
249
|
+
- **Provider**: Custom models via Ollama/Hugging Face
|
|
250
|
+
- **Cost**: Free (after training)
|
|
251
|
+
- **Quality**: Excellent for specific domains
|
|
252
|
+
- **Privacy**: Completely private, offline
|
|
253
|
+
- **Use case**: Institution-specific requirements
|
|
254
|
+
|
|
255
|
+
**Current Version (v1.0)**: Rule-based checking only (no AI required)
|
|
256
|
+
|
|
257
|
+
See [`plans/UPDATED_PROJECT_PLAN_v2.0.md`](plans/UPDATED_PROJECT_PLAN_v2.0.md) for detailed AI strategy.
|
|
258
|
+
|
|
259
|
+
## Documentation
|
|
260
|
+
|
|
261
|
+
### Planning Documents
|
|
262
|
+
- **[Project Plan (v2.0)](plans/UPDATED_PROJECT_PLAN_v2.0.md)** - Consolidated project plan with all specifications
|
|
263
|
+
- Technical architecture
|
|
264
|
+
- Development roadmap
|
|
265
|
+
- Testing strategy
|
|
266
|
+
- AI enhancement strategy
|
|
267
|
+
- ICMJE/COPE compliance
|
|
268
|
+
- Profile specifications
|
|
269
|
+
|
|
270
|
+
### User Guides (Coming Soon)
|
|
271
|
+
- User Guide - How to use the tool effectively
|
|
272
|
+
- Creating Custom Profiles - Build your own profiles
|
|
273
|
+
- Medical Guidelines - Understanding clinical reporting standards
|
|
274
|
+
- Configuration Reference - All configuration options
|
|
275
|
+
|
|
276
|
+
## Command Reference
|
|
277
|
+
|
|
278
|
+
### Checking Documents
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
# Basic check
|
|
282
|
+
doc-checker check <file> --profile <profile-name>
|
|
283
|
+
|
|
284
|
+
# Multiple files
|
|
285
|
+
doc-checker check chapter*.docx --merge
|
|
286
|
+
|
|
287
|
+
# Custom configuration
|
|
288
|
+
doc-checker check <file> --config custom-rules.yaml
|
|
289
|
+
|
|
290
|
+
# Specify output
|
|
291
|
+
doc-checker check <file> --format html --output report.html
|
|
292
|
+
|
|
293
|
+
# Set severity threshold
|
|
294
|
+
doc-checker check <file> --severity error
|
|
295
|
+
|
|
296
|
+
# Ignore sections
|
|
297
|
+
doc-checker check <file> --ignore "Acknowledgements,Appendices"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Managing Profiles
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# List available profiles
|
|
304
|
+
doc-checker profiles --list
|
|
305
|
+
|
|
306
|
+
# Show profile details
|
|
307
|
+
doc-checker profile show phd-thesis
|
|
308
|
+
|
|
309
|
+
# Create custom profile
|
|
310
|
+
doc-checker profile create <name> --extends <parent-profile>
|
|
311
|
+
|
|
312
|
+
# Validate profile
|
|
313
|
+
doc-checker profile validate <profile-file>
|
|
314
|
+
|
|
315
|
+
# Compare profiles
|
|
316
|
+
doc-checker profile diff <profile1> <profile2>
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Configuration
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
# Initialize configuration
|
|
323
|
+
doc-checker init
|
|
324
|
+
|
|
325
|
+
# Show current configuration
|
|
326
|
+
doc-checker config --show
|
|
327
|
+
|
|
328
|
+
# Set default profile
|
|
329
|
+
doc-checker config set default-profile phd-thesis
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## Configuration File
|
|
333
|
+
|
|
334
|
+
Create a `.doc-checker.yaml` file in your project:
|
|
335
|
+
|
|
336
|
+
```yaml
|
|
337
|
+
# Default profile to use
|
|
338
|
+
default_profile: "phd-thesis"
|
|
339
|
+
|
|
340
|
+
# Citation style preference
|
|
341
|
+
citation_style: "apa"
|
|
342
|
+
|
|
343
|
+
# Custom dictionary
|
|
344
|
+
custom_dictionary:
|
|
345
|
+
- "bioinformatics"
|
|
346
|
+
- "proteomics"
|
|
347
|
+
- "metabolomics"
|
|
348
|
+
|
|
349
|
+
# Ignore patterns
|
|
350
|
+
ignore_sections:
|
|
351
|
+
- "Acknowledgements"
|
|
352
|
+
- "Dedication"
|
|
353
|
+
|
|
354
|
+
# Severity threshold
|
|
355
|
+
severity: "warning" # Only show warnings and errors
|
|
356
|
+
|
|
357
|
+
# Output preferences
|
|
358
|
+
output:
|
|
359
|
+
format: "html"
|
|
360
|
+
include_suggestions: true
|
|
361
|
+
show_line_numbers: true
|
|
362
|
+
|
|
363
|
+
# AI enhancement (optional)
|
|
364
|
+
ai:
|
|
365
|
+
enabled: false
|
|
366
|
+
provider: "openai"
|
|
367
|
+
model: "gpt-4"
|
|
368
|
+
api_key: "${OPENAI_API_KEY}" # Use environment variable
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Requirements
|
|
372
|
+
|
|
373
|
+
- Python 3.8 or higher
|
|
374
|
+
- Supported document formats: `.docx` (Word), `.md` (Markdown), `.txt` (plain text)
|
|
375
|
+
- Internet connection only required for optional AI features (planned for v1.5+)
|
|
376
|
+
- Future format support planned: PDF, LaTeX, RTF
|
|
377
|
+
|
|
378
|
+
## Development Status & Release Plan
|
|
379
|
+
|
|
380
|
+
### Current Status
|
|
381
|
+
🚀 **v0.4.1-beta** — Bug fixes, improved citation handling, and integration tests complete
|
|
382
|
+
📅 **Next Milestone**: v1.0.0 Public Release (Target: Q2 2026)
|
|
383
|
+
|
|
384
|
+
### Release Roadmap
|
|
385
|
+
|
|
386
|
+
#### v1.0 - Rule-Based Core (Target: Q2 2026) 🎯 CURRENT FOCUS
|
|
387
|
+
**Status**: Final Polish & Documentation
|
|
388
|
+
|
|
389
|
+
**Completed**:
|
|
390
|
+
- ✅ Phase 1: Foundation & Core Architecture
|
|
391
|
+
- ✅ Phase 2: Core Analyzers (Structure, Formatting, Citations)
|
|
392
|
+
- ✅ Phase 3: Medical & PhD Profiles (ICMJE/COPE Compliance)
|
|
393
|
+
- ✅ Phase 3b: Grant Proposal Profiles (NIH, NSF)
|
|
394
|
+
- ✅ MVP Stage 1: Verification & Testing Foundation (70%+ coverage)
|
|
395
|
+
- ✅ MVP Stage 2: Sample Documents Creation (4 complete datasets)
|
|
396
|
+
- ✅ MVP Stage 3: Integration Testing & Bug Fixes (135 tests, 0 failures)
|
|
397
|
+
|
|
398
|
+
**In Progress**:
|
|
399
|
+
- 🔄 Phase 4: User Documentation
|
|
400
|
+
|
|
401
|
+
**Features**:
|
|
402
|
+
- Complete rule-based document checking
|
|
403
|
+
- Structure, formatting, citations, grammar analysis
|
|
404
|
+
- ICMJE/COPE compliance validation
|
|
405
|
+
- HTML, JSON, Terminal, JUnit reports
|
|
406
|
+
- Multiple profiles (PhD thesis, medical journals, generic)
|
|
407
|
+
- CI/CD integration support
|
|
408
|
+
- Comprehensive documentation
|
|
409
|
+
|
|
410
|
+
**No AI required** - Fast, free, works offline
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
#### v1.5 - Cloud AI Integration (Target: Q3 2026)
|
|
415
|
+
**Status**: Planned for 8 weeks after v1.0 release
|
|
416
|
+
|
|
417
|
+
**Scope**:
|
|
418
|
+
- ⏳ Phase 5: Cloud AI Integration (Weeks 16-23)
|
|
419
|
+
|
|
420
|
+
**New Features**:
|
|
421
|
+
- Optional `--ai-enhance` flag
|
|
422
|
+
- OpenAI (GPT-4) integration
|
|
423
|
+
- Anthropic (Claude) integration
|
|
424
|
+
- Cost estimation and tracking
|
|
425
|
+
- AI-powered content quality analysis
|
|
426
|
+
- Semantic citation validation
|
|
427
|
+
- Context-aware writing suggestions
|
|
428
|
+
|
|
429
|
+
**Requires**: User-provided API key, internet connection
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
#### v2.0 - Local AI Support (Target: Q4 2026)
|
|
434
|
+
**Status**: Planned for 6 weeks after v1.5 release
|
|
435
|
+
|
|
436
|
+
**Scope**:
|
|
437
|
+
- ⏳ Phase 6: Local AI Support (Weeks 24-29)
|
|
438
|
+
|
|
439
|
+
**New Features**:
|
|
440
|
+
- Ollama integration
|
|
441
|
+
- Local LLM support (Llama 3, Mistral, etc.)
|
|
442
|
+
- `--ai-provider local` option
|
|
443
|
+
- Model management CLI (`doc-checker ai models`)
|
|
444
|
+
- Completely offline AI analysis
|
|
445
|
+
- Zero API costs
|
|
446
|
+
|
|
447
|
+
**Requires**: Ollama installed, 8GB+ RAM, 5-10GB disk space
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
#### v2.5 - Fine-Tuned Models (Target: Q1 2027)
|
|
452
|
+
**Status**: Planned for 12+ weeks after v2.0 release
|
|
453
|
+
|
|
454
|
+
**Scope**:
|
|
455
|
+
- ⏳ Phase 7: Fine-Tuned Models (Weeks 30-41+)
|
|
456
|
+
|
|
457
|
+
**New Features**:
|
|
458
|
+
- Pre-trained domain-specific models:
|
|
459
|
+
- `medical-v1` - Medical journal manuscripts
|
|
460
|
+
- `phd-thesis-v1` - PhD dissertations
|
|
461
|
+
- `generic-academic-v1` - General academic papers
|
|
462
|
+
- Hugging Face model distribution
|
|
463
|
+
- Custom model fine-tuning scripts
|
|
464
|
+
- Institution-specific model support
|
|
465
|
+
- Fine-tuning documentation and guides
|
|
466
|
+
|
|
467
|
+
**Requires**: Same as v2.0
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
#### v3.0+ - Future Enhancements
|
|
472
|
+
- PDF document support
|
|
473
|
+
- Markdown and LaTeX support
|
|
474
|
+
- Multi-language support
|
|
475
|
+
- Collaborative checking
|
|
476
|
+
- Web interface
|
|
477
|
+
- **Profile Governance & Accreditation System** (see [`plans/profile-governance-strategy.md`](plans/profile-governance-strategy.md))
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
See [`plans/UPDATED_PROJECT_PLAN_v2.0.md`](plans/UPDATED_PROJECT_PLAN_v2.0.md) for detailed roadmap.
|
|
482
|
+
|
|
483
|
+
## Contributing
|
|
484
|
+
|
|
485
|
+
Contributions are welcome! Here's how you can help:
|
|
486
|
+
|
|
487
|
+
- **Add profiles** - Create profiles for specific journals or institutions
|
|
488
|
+
- **Improve analyzers** - Enhance existing checks or add new ones
|
|
489
|
+
- **Write documentation** - Improve guides and examples
|
|
490
|
+
- **Report bugs** - Open issues for problems you encounter
|
|
491
|
+
- **Suggest features** - Share ideas for improvements
|
|
492
|
+
|
|
493
|
+
## Technology Stack
|
|
494
|
+
|
|
495
|
+
- **Python 3.8+** - Core language
|
|
496
|
+
- **Click/Typer** - CLI framework
|
|
497
|
+
- **python-docx** - Word document parsing
|
|
498
|
+
- **LanguageTool** - Grammar checking
|
|
499
|
+
- **Rich** - Terminal output
|
|
500
|
+
- **Jinja2** - Report generation
|
|
501
|
+
- **pytest** - Testing
|
|
502
|
+
- **Future**: PyPDF2/pdfplumber (PDF), python-markdown (Markdown), pylatex (LaTeX)
|
|
503
|
+
|
|
504
|
+
## License
|
|
505
|
+
|
|
506
|
+
[MIT](LICENSE)
|
|
507
|
+
|
|
508
|
+
## Support
|
|
509
|
+
|
|
510
|
+
- **Issues**: [GitHub Issues](https://github.com/darmsc/Academic_Document_Checker/issues)
|
|
511
|
+
- **Discussions**: [GitHub Discussions](https://github.com/darmsc/Academic_Document_Checker/discussions)
|
|
512
|
+
- **Documentation**: [Full documentation](https://github.com/darmsc/Academic_Document_Checker/docs)
|
|
513
|
+
|
|
514
|
+
## Acknowledgements
|
|
515
|
+
|
|
516
|
+
This tool is designed to help academic writers produce high-quality documents. It complements, but does not replace, human review and editorial judgment.
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
**Status**: Active Development - Phase 4 | **Current Version**: 0.4.1-beta | **Target v1.0**: Q2 2026 | **Last Updated**: April 2026
|