CSV → PDF candidate dossier generator with professional formatting.
Privacy-first: phone numbers and emails are always masked. Pure client-side solution - no server required.
District teams often struggle with inconsistent candidate forms and poorly formatted PDFs.
This tool transforms structured CSV data into professional, LaTeX-quality PDF dossiers with consistent formatting.
You simply upload a structured CSV and get print-ready PDFs with one candidate per page, professional typography, and automatic privacy protection.
Visit: https://yourusername.github.io/ummidvaar-dastaavez/
- Download the CSV template from the application
- Fill in candidate data with all required fields
- Upload your CSV file to the web interface
- Click "Generate PDF" to open print dialog
- Save as PDF from your browser's print dialog
No installation, no server, no dependencies - everything runs in your browser.
.
├── index.html # Complete web application (HTML/CSS/JS)
├── README.md # This file
├── LICENSE # MIT License
├── .gitignore # Git ignore rules
└── samples/
├── candidate_template.csv # Empty template with headers
└── sample_data.csv # Example with filled data
The CSV must have these exact headers (18 fields):
preference,name,category,caste,age,gender,occupation,education,year_joined,phone,email,criminal_record,rationale,strengths,weaknesses,proposers,positions_held,elections_contested
| Field | Description | Example |
|---|---|---|
| preference | Priority order (1,2,3...) | 1 |
| name | Full candidate name | "Rajender Kumar Chaudhary" |
| category | Reservation category | OBC |
| caste | Caste/Community | Jat |
| age | Age in years | 54 |
| gender | Gender | Male |
| occupation | Current occupation | "Advocate/Farmer" |
| education | Educational qualifications | "BA, LLB, LLM (Pursuing)" |
| year_joined | Year joined party | 1985 |
| phone | Mobile number (will be masked) | 9012239999 |
| Email address (will be masked) | rajender@example.com | |
| criminal_record | Any criminal cases | "No adverse records" |
| rationale | Reason for candidacy | "Belief in party ideology..." |
| strengths | Key strengths | "Strong administrative connections..." |
| weaknesses | Areas for improvement | "Limited digital experience" |
| proposers | Supporting leaders | "Ram Singh (Ex HM); Furkan Ahmed (MLA)" |
| positions_held | Party/organizational positions | "Ward President (2010-2015)" |
| elections_contested | Electoral history | "Assembly 2022 (Runner-up)" |
- Phone masking: Automatically shows only last 4 digits (******2345)
- Email masking: Shows only first letter and domain (r***@example.com)
- No data storage: All processing happens client-side
- No data transmission: Your CSV never leaves your browser
- Compliance: Follows Indian IT Act (2000, amended) and data minimization principles
- Non-partisan: For neutral administrative documentation only
- Fork or upload this repository to your GitHub account
- Go to Settings → Pages
- Set Source to "Deploy from a branch"
- Select main branch and / (root) folder
- Click Save
- Your site will be live at
https://yourusername.github.io/ummidvaar-dastaavez/
Simply upload index.html to any web server. The application is completely self-contained.
Open index.html directly in your browser. Note: Some browsers may restrict file uploads when opened locally.
Professional colour palette optimized for readability:
- Primary Blue: #1e3a8a (Headers, buttons)
- Gold Accent: #fbbf24 (Badges, section dividers)
- Navy Text: #0f172a (Body text)
- Grey: #64748b (Secondary text)
Typography follows LaTeX conventions:
- Headers: Arial/Sans-serif
- Body text: Times New Roman/Serif
- Optimal print margins and spacing
- Professional PDF output with LaTeX-quality typography
- One-page-per-candidate format for easy filing
- Automatic data masking for privacy protection
- Dark mode support for comfortable viewing
- CSV validation with clear error messages
- Preview mode before generating PDF
- No dependencies - pure HTML/CSS/JavaScript
- Offline capable - works without internet once loaded
Works on all modern browsers:
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Opera 76+
For best PDF output, use Chrome or Edge.
- CSV Parsing: Handles quoted fields, commas within quotes, and various line endings
- PDF Generation: Uses browser print functionality with CSS print media queries
- Masking: Applied at render time, original data never displayed
- Character Encoding: Full UTF-8 support for Hindi/regional text
- Code: MIT License
- Documentation: CC BY-NC-SA 4.0
- No warranties: Provided "AS IS" without guarantees of suitability
- Compliance: Intended for lawful use under Indian IT Act, 2000
- Non-partisan: For standardized administrative documentation only
| Issue | Solution |
|---|---|
| File upload doesn't work | Check file is .csv format, not .xlsx or .pdf |
| Missing columns error | Ensure all 18 required headers are present |
| PDF looks different than preview | Use Chrome/Edge for best print output |
| Phone numbers not masked | This is automatic and cannot be disabled |
| Special characters display incorrectly | Save CSV as UTF-8 encoding |
उम्मीदवार दस्तावेज़ (Ummidvaar Dastaavez)
Built for transparent, standardized, and inclusive documentation.
Professional design system for government and civic applications.
- Technology: HTML5, CSS3, JavaScript (ES6+)
- License: MIT (code) + CC BY-NC-SA (content)
- v1.0.0 (2025) - Initial release with core functionality
- CSV upload and validation
- Professional PDF generation
- Mandatory privacy masking
- Professional design system implementation