renderreport 0.1.0-alpha.2

Data-driven report generation with Typst as embedded render engine — no CLI dependency
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
# GitHub Repository Setup Guide

## Repository Information

### Basic Settings

**Repository Name:** `renderreport`

**Short Description (160 chars max):**
```
Data-driven PDF report generation with Typst - Component-based Rust library with charts, barcodes, and 25+ components (early development)
```

**Website:** `https://github.com/casoon/renderreport`

**Topics/Keywords:**
```
rust
pdf
typst
reporting
pdf-generation
charts
barcodes
components
typst-templates
report-generation
data-visualization
barcode-generator
pivot-tables
crosstab
document-generation
```

---

## About Section

**Long Description for GitHub About:**

```
🚀 RenderReport - Modern PDF Report Generation for Rust

A component-based Rust library for generating professional PDF reports using embedded Typst. 
No CLI dependencies, no external tools - just pure Rust + Typst magic.

✨ Features:
• 25 ready-to-use components (ScoreCard, Charts, Barcodes, Tables, etc.)
• 8 chart types (Bar, Line, Pie, Area, Scatter, Radar, Sparklines, Gauges)
• 11 barcode formats (QR Code, Code128, EAN, UPC, DataMatrix, PDF417, etc.)
• CSS-like theming system with token-based styling
• Template packs for extensibility
• Type-safe API with builder pattern
• Comprehensive examples with pre-generated PDFs

⚠️ Early Development Stage (v0.1.0-alpha.1)
APIs may change. Contributions welcome!

Inspired by JasperReports, Eclipse BIRT, and Pentaho Reporting.
```

---

## README.md Badges to Add

Add these badges at the top of README.md after the title:

```markdown
# @casoon/renderreport

[![Crates.io](https://img.shields.io/crates/v/renderreport.svg)](https://crates.io/crates/renderreport)
[![Documentation](https://docs.rs/renderreport/badge.svg)](https://docs.rs/renderreport)
[![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE-MIT)
[![Build Status](https://github.com/casoon/renderreport/workflows/CI/badge.svg)](https://github.com/casoon/renderreport/actions)
[![Rust Version](https://img.shields.io/badge/rust-1.70%2B-blue.svg)](https://www.rust-lang.org)

> ⚠️ **Early Development Stage** - This project is in active early development. APIs may change, and some features are still being implemented and optimized.
```

---

## Repository Settings

### General

- ✅ **Public**
- ✅ Issues enabled
- ✅ Projects enabled
- ✅ Wiki disabled (use docs/ folder instead)
- ✅ Discussions enabled (recommended for community)

### Branch Protection Rules (for main branch)

- ✅ Require pull request reviews before merging
- ✅ Require status checks to pass before merging
  - CI / test
  - CI / clippy
- ✅ Require branches to be up to date before merging

### Labels to Create

Standard labels + these custom ones:

```
component: new feature - New component implementation
example: documentation - Example code or documentation
typst: template - Typst template related
enhancement: API - API improvements
bug: rendering - Rendering/PDF generation bugs
help wanted: good first issue - Good for newcomers
```

---

## Social Preview Image

**Recommended dimensions:** 1280x640px

**Content suggestion:**
```
Title: RenderReport
Subtitle: Professional PDF Reports for Rust
Visual: Example report preview with charts and components
Tech stack badges: Rust + Typst
```

*(Image needs to be created separately)*

---

## Initial README Enhancement

Add a **Features Showcase** section with visual examples:

```markdown
## 📊 Component Showcase

### Charts & Visualizations
- **8 Chart Types**: Bar, Line, Pie, Area, Scatter, Radar, plus Sparklines and Gauges
- **Real-time Data**: Dynamic data binding with theme support
- **Example**: [charts_demo.pdf](examples/output/charts_demo.pdf) (21 KB)

### Barcodes & QR Codes
- **11 Formats**: Code128, Code39, EAN-13, EAN-8, UPC-A, UPC-E, QR Code, Data Matrix, PDF417, ITF, Codabar
- **Use Cases**: Retail, shipping, healthcare, inventory management
- **Example**: [barcode_demo.pdf](examples/output/barcode_demo.pdf) (56 KB)

### Data Analysis
- **Pivot Tables**: Dynamic data aggregation with row/column totals
- **Crosstabs**: Multi-dimensional analysis
- **Example**: Sales by region, customer segmentation, performance metrics

### Text & Formatting
- **Smart Formatting**: Currency (€$£¥), percentages, dates (ISO/EU/US)
- **Internationalization**: Resource bundles for multiple languages
- **Typography**: Full control over fonts, sizes, weights, colors

[View all examples →](examples/output/)
```

---

## Release Strategy

### Version 0.1.0-alpha.1 (Current)

**Release Title:** "Initial Alpha Release - Core Components"

**Release Notes:**
```markdown
## 🎉 First Alpha Release

This is the initial alpha release of RenderReport, a component-based PDF report generation library for Rust.

### ✨ What's Included

**Components (25 total):**
- 7 Standard: ScoreCard, Finding, AuditTable, Section, Image, Callout, SummaryBox
- 7 Advanced: List, Grid, ProgressBar, KeyValueList, Divider, Watermark, PageBreak
- 3 Charts: Chart (6 types), Sparkline, Gauge
- 2 Data Analysis: Crosstab, PivotTable
- 1 Barcode: 11 formats supported
- 5 Text: Label, Text, NumberField, DateField, ResourceField

**Examples:**
- 7 pre-generated PDF examples (204 KB total)
- Comprehensive documentation in examples/README.md
- Real-world use cases (SEO audit, charts, barcodes)

**Testing:**
- 81 unit tests (all passing)
- 25 Typst templates
- CI/CD pipeline with GitHub Actions

### ⚠️ Alpha Status

This is an early development release. Expect:
- API changes in future versions
- Some Typst template optimizations in progress
- Documentation improvements ongoing
- Community feedback welcome!

### 📦 Installation

```toml
[dependencies]
renderreport = "0.1.0-alpha.1"
```

### 🚀 Quick Start

```rust
use renderreport::prelude::*;

let engine = Engine::new()?;
let report = engine
    .report("default")
    .title("My Report")
    .add_component(ScoreCard::new("Quality", 95))
    .build();

let pdf = engine.render_pdf(&report)?;
std::fs::write("report.pdf", pdf)?;
```

### 🙏 Acknowledgments

Inspired by enterprise reporting frameworks:
- JasperReports (chart components, crosstabs)
- Eclipse BIRT (cross tabs, text fields)
- Pentaho Reporting (sparklines, resource fields)

Built with [Typst](https://typst.app) - a modern markup-based typesetting system.

### 📝 Feedback

Please report issues, suggest features, or contribute via:
- GitHub Issues: https://github.com/casoon/renderreport/issues
- Discussions: https://github.com/casoon/renderreport/discussions

---

**Full Changelog**: https://github.com/casoon/renderreport/commits/v0.1.0-alpha.1
```

---

## Issue Templates

Create `.github/ISSUE_TEMPLATE/bug_report.md`:

```markdown
---
name: Bug Report
about: Report a bug or unexpected behavior
title: '[BUG] '
labels: bug
assignees: ''
---

**Describe the bug**
A clear description of what the bug is.

**To Reproduce**
Steps to reproduce:
1. Create component '...'
2. Render report '...'
3. See error

**Code Sample**
```rust
// Minimal code to reproduce the issue
```

**Expected behavior**
What you expected to happen.

**Actual behavior**
What actually happened.

**Environment:**
- RenderReport version: [e.g. 0.1.0-alpha.1]
- Rust version: [e.g. 1.75.0]
- OS: [e.g. Ubuntu 22.04, macOS 14]

**Additional context**
Any other information about the problem.
```

Create `.github/ISSUE_TEMPLATE/feature_request.md`:

```markdown
---
name: Feature Request
about: Suggest a new feature or component
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

**Is your feature request related to a problem?**
A clear description of the problem. Ex. I'm frustrated when [...]

**Describe the solution you'd like**
What you want to happen.

**Describe alternatives you've considered**
Other solutions or features you've considered.

**Component Type (if applicable)**
- [ ] New component
- [ ] Chart type
- [ ] Text formatting
- [ ] Theme feature
- [ ] API enhancement
- [ ] Documentation
- [ ] Example

**Additional context**
Mockups, examples from other tools, or any other context.

**Inspired by (optional)**
If inspired by JasperReports, BIRT, Pentaho, or other tools, please link to documentation.
```

---

## Contributing Guide Enhancement

Add to CONTRIBUTING.md:

```markdown
## 🎯 Good First Issues

Looking for a way to contribute? Check out issues labeled `good first issue`:
- Add new component types
- Improve Typst templates
- Add more examples
- Improve documentation
- Fix Clippy warnings

## 💡 Component Ideas

Want to add a new component? Consider:
- **Charts**: Gantt, Candlestick, Heatmap, Treemap
- **Tables**: Editable fields, conditional formatting
- **Layout**: Columns, Tabs, Accordion
- **Interactive**: Form fields, checkboxes (PDF forms)
- **Media**: Video links, audio annotations

Check existing components in `src/components/` for patterns.
```

---

## GitHub Actions Secrets

For automated releases, add these secrets in repository settings:

- `CARGO_REGISTRY_TOKEN` - For publishing to crates.io
- (No other secrets needed for now)

---

## Post-Push Checklist

After `git push -u origin main`:

1. ✅ Go to https://github.com/casoon/renderreport
2. ✅ Add description and topics
3. ✅ Enable Discussions
4. ✅ Add badges to README.md
5. ✅ Create issue templates
6. ✅ Set up branch protection
7. ✅ Pin important issues/discussions
8. ✅ Create v0.1.0-alpha.1 release with notes
9. ✅ Share on social media/forums (optional)
10. ✅ Consider adding to awesome-rust lists

---

## Community

**Where to share:**
- This Week in Rust
- /r/rust
- Rust Users Forum
- Hacker News (if interest is high)
- X/Twitter with #rustlang

**Sample announcement tweet:**
```
🚀 Introducing RenderReport v0.1.0-alpha.1!

Generate professional PDF reports in #Rust with:
✨ 25 components (charts, barcodes, tables)
📊 8 chart types + sparklines + gauges  
🏷️ 11 barcode formats (QR, EAN, Code128...)
🎨 CSS-like theming

Early stage but functional!
https://github.com/casoon/renderreport

#rustlang #opensource
```