generated from nhcarrigan/template
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
---
|
||||
title: Resume Builder
|
||||
---
|
||||
|
||||
Resume Builder (hereinafter the "Application") is a static site generator that transforms a YAML or JSON resume source into a styled HTML resume website, along with downloadable formats. It is designed for easy customization and deployment, using TypeScript for parsing and rendering, and outputs a ready-to-host static site.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
The Resume Builder generates a professional, accessible resume website from structured data. The live website displays:
|
||||
|
||||
### Features
|
||||
- **Responsive Design**: Mobile-friendly layout that works on all devices
|
||||
- **Print-Optimized**: Print or save as PDF with optimized styling
|
||||
- **Multiple Formats**: Download resume data in YAML or JSON format
|
||||
- **Professional Sections**: Employment, volunteer work, education, certifications, projects, and publications
|
||||
- **Navigation Links**: Quick jump links to different resume sections
|
||||
- **Contact Integration**: Direct links to testimonials and contact forms
|
||||
|
||||
### Using the Resume Website
|
||||
1. **Browse Sections**: Use the navigation links to jump to specific sections (Employment, Education, etc.)
|
||||
2. **Download Data**: Click "YAML" or "JSON" links to download the resume in structured formats
|
||||
3. **Print/Save PDF**: Click the "print" link to open browser print dialog for PDF saving
|
||||
4. **Contact**: Use the "submit your own request" link to contact for opportunities
|
||||
|
||||
### Resume Sections
|
||||
- **Employment**: Current and past positions with company details, dates, and descriptions
|
||||
- **Volunteer Work**: Community involvement and volunteer positions
|
||||
- **Education**: Academic background and certifications
|
||||
- **Certifications**: Professional certifications and credentials
|
||||
- **Projects**: Notable projects and achievements
|
||||
- **Publications**: Articles, papers, and published works
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
The Resume Builder is a Node.js-based static site generator that transforms YAML resume data into a complete website.
|
||||
|
||||
### Architecture
|
||||
- **TypeScript Parser**: `src/parse.ts` - Main build script that processes YAML data
|
||||
- **Data Schema**: `src/interfaces/resume.ts` - TypeScript interfaces defining resume structure
|
||||
- **Source Data**: `src/source.yaml` - YAML file containing all resume information
|
||||
- **Static Assets**: `src/static/` - CSS styles and JavaScript for the generated site
|
||||
- **Output**: `site/` - Generated HTML, CSS, JS, YAML, and JSON files
|
||||
|
||||
### Requirements
|
||||
- Node.js (latest LTS recommended)
|
||||
- pnpm package manager
|
||||
- TypeScript support via tsx
|
||||
|
||||
### Installation & Setup
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone <repository-url>
|
||||
cd resume
|
||||
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Build the site
|
||||
pnpm run build
|
||||
```
|
||||
|
||||
### Available Scripts
|
||||
- `pnpm run build` - Generate the static site from YAML data
|
||||
- `pnpm run lint` - Run ESLint for code quality
|
||||
- `pnpm run spelling` - Check spelling in source.yaml
|
||||
- `pnpm run test` - Run validation tests
|
||||
|
||||
### Data Structure
|
||||
The resume data follows this schema:
|
||||
- `name`: Full name
|
||||
- `contact`: Contact information
|
||||
- `summary`: Professional summary
|
||||
- `employment[]`: Array of employment positions
|
||||
- `volunteer[]`: Array of volunteer positions
|
||||
- `education[]`: Array of educational background
|
||||
- `certifications[]`: Array of certifications
|
||||
- `projects[]`: Array of notable projects
|
||||
- `publications[]`: Array of publications
|
||||
|
||||
### Customization
|
||||
1. **Content**: Edit `src/source.yaml` with your resume data
|
||||
2. **Styling**: Modify `src/static/style.css` for visual customization
|
||||
3. **Structure**: Update `src/parse.ts` to change HTML generation
|
||||
4. **Types**: Extend `src/interfaces/resume.ts` for new data fields
|
||||
|
||||
### Deployment
|
||||
The `site/` directory contains all files needed for static hosting:
|
||||
- `index.html` - Main resume webpage
|
||||
- `style.css` - Styling
|
||||
- `dates.js` - JavaScript for date handling
|
||||
- `resume.yaml` - YAML format download
|
||||
- `resume.json` - JSON format download
|
||||
|
||||
Deploy to any static hosting service (Netlify, Vercel, GitHub Pages, etc.)
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
### License
|
||||
This software is licensed under Naomi's Public License. Copyright held by Naomi Carrigan.
|
||||
|
||||
For complete legal terms, refer to:
|
||||
- [Global Software License](https://docs.nhcarrigan.com/#/license)
|
||||
- [LICENSE.md](LICENSE.md) in the repository
|
||||
- [PRIVACY.md](PRIVACY.md) for privacy policy
|
||||
- [TERMS.md](TERMS.md) for terms of service
|
||||
- [SECURITY.md](SECURITY.md) for security policies
|
||||
|
||||
### Data Privacy
|
||||
The resume website is a static site that:
|
||||
- Does not collect user data
|
||||
- Does not use cookies or tracking
|
||||
- Does not store personal information
|
||||
- Contains only publicly available professional information
|
||||
|
||||
### Third-Party Services
|
||||
The generated website may include links to external services:
|
||||
- Testimonials platform (testimonials.nhcarrigan.com)
|
||||
- Contact forms (forms.nhcarrigan.com)
|
||||
- External headers/scripts (cdn.nhcarrigan.com)
|
||||
|
||||
Users should review the privacy policies of any external services they choose to interact with.
|
||||
|
||||
## 4. Contributing Documentation
|
||||
|
||||
### Getting Started
|
||||
1. Fork the repository
|
||||
2. Clone your fork locally
|
||||
3. Install dependencies: `pnpm install`
|
||||
4. Make your changes
|
||||
5. Test your changes: `pnpm run build && pnpm run test && pnpm run lint && pnpm run spelling`
|
||||
6. Submit a pull request
|
||||
|
||||
### Contribution Guidelines
|
||||
- Read the [Code of Conduct](CODE_OF_CONDUCT.md) before participating
|
||||
- Follow the existing code style and conventions
|
||||
- Only modify `src/source.yaml` for content changes
|
||||
- Do not commit files in the `site/` directory (auto-generated)
|
||||
- Ensure all tests pass before submitting
|
||||
- Provide clear commit messages and PR descriptions
|
||||
|
||||
### Development Workflow
|
||||
1. **Content Updates**: Edit `src/source.yaml` with new resume information
|
||||
2. **Code Changes**: Modify TypeScript files in `src/` directory
|
||||
3. **Styling**: Update CSS in `src/static/style.css`
|
||||
4. **Testing**: Add tests in `test/` directory using Vitest
|
||||
5. **Build**: Run `pnpm run build` to generate the site
|
||||
|
||||
### Quality Checks
|
||||
All contributions must pass:
|
||||
- **ESLint**: Code quality and style checking
|
||||
- **Spelling**: cspell validation of YAML content
|
||||
- **Tests**: Vitest validation of data structure
|
||||
- **Build**: Successful site generation
|
||||
|
||||
### Reporting Issues
|
||||
- Use GitHub Issues for bugs and feature requests
|
||||
- Provide detailed reproduction steps for bugs
|
||||
- Include relevant error messages and logs
|
||||
- Tag issues appropriately (bug, enhancement, documentation)
|
||||
|
||||
### Contact
|
||||
- [Chat Server](http://chat.nhcarrigan.com) for real-time discussion
|
||||
- Email: contact@nhcarrigan.com for direct communication
|
||||
- GitHub Issues for project-specific discussions
|
||||
|
||||
### Project Structure
|
||||
```
|
||||
src/
|
||||
├── parse.ts # Main build script
|
||||
├── source.yaml # Resume data (edit this)
|
||||
├── interfaces/
|
||||
│ └── resume.ts # TypeScript type definitions
|
||||
└── static/
|
||||
├── style.css # Website styling
|
||||
└── dates.js # Date handling JavaScript
|
||||
|
||||
test/
|
||||
└── validate.spec.ts # Validation tests
|
||||
|
||||
site/ # Generated output (do not edit)
|
||||
├── index.html
|
||||
├── style.css
|
||||
├── dates.js
|
||||
├── resume.yaml
|
||||
└── resume.json
|
||||
```
|
||||
Reference in New Issue
Block a user