https://github.com/rudolphreti/bewerbungmaster
BewerbungMaster is a Blazor web application designed to efficiently create and manage job applications.
https://github.com/rudolphreti/bewerbungmaster
blazor-server csharp job-application-management pdf-generation
Last synced: about 1 year ago
JSON representation
BewerbungMaster is a Blazor web application designed to efficiently create and manage job applications.
- Host: GitHub
- URL: https://github.com/rudolphreti/bewerbungmaster
- Owner: rudolphreti
- License: mit
- Created: 2024-08-30T12:39:01.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T09:44:04.000Z (over 1 year ago)
- Last Synced: 2025-02-17T02:18:25.547Z (over 1 year ago)
- Topics: blazor-server, csharp, job-application-management, pdf-generation
- Language: C#
- Homepage:
- Size: 2.61 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# BewerbungMaster
BewerbungMaster is a Blazor application designed to efficiently create and manage job applications.

## Features
- Job application files generation (CVs, cover letters) from JSON data:


- Adding, editing and deleting entries
- Selecting the type of position and, depending on that, generating the appropriate cover letter
- Moving entries to the top and the end of the list
- Copying a job application folder path to the clipboard
- Copying a message to an employer to the clipboard
- Copying a cover letter to the clipboard
## To-Do
- adding entries manually
- unit tests
- integration tests eg. with Selenium
- isolate dependency injection logic
- check if I/O operations are asynchronous
- check for error handling
- check for performance
- check for security
- add XML documentation comments
- add toast notification
## Key Components and Architecture
### wwwroot Directory
- `JobAppDocs/`: Stores generated job application documents
- `Users/`: Contains user-specific document templates
- `data.json`: Stores job application data in JSON format
### Services
The `Services` directory contains the core business logic of the application:
- `FileManagementService.cs` and `FileManagementServiceStatic.cs`: File operations for job application documents
- `JsonService.cs`: Operations on the data.json and user.json files
- `PdfGenerationService.cs`: Generates PDF documents for job applications
- `ApplicationInitializationService.cs`: Methods running at startup, such as generating job application documents from json files
#### PdfGenerationService.cs
This service is responsible for generating PDF documents for job applications. It utilizes the iText7 library to create professional-looking PDFs with advanced features:
1. **iText7 Integration**: The service leverages iText7, a powerful PDF manipulation library, to create and modify PDF documents programmatically.
2. **Hyperlink Detection**: The service includes functionality to automatically detect URLs within the text content. When a URL is identified, it's converted into an active hyperlink in the generated PDF, enhancing the interactivity of the document.
3. **Syllable Hyphenation**: To improve the readability and layout of the generated PDFs, the service implements syllable hyphenation. This feature intelligently breaks words at appropriate syllable boundaries when necessary, ensuring a clean and professional appearance of the text, especially in narrow columns or justified text alignments.
4. **Dynamic Content Placement**: The service can dynamically position text, images, and other elements within the PDF, allowing for flexible and customizable document layouts.
5. **Font Management**: It handles various font styles and sizes, enabling rich text formatting in the generated PDFs.
These advanced features of the PdfGenerationService.cs contribute to creating polished, professional-looking job application documents that stand out to potential employers.
## Installation
Currently, only the source code is available. To set up the project:
1. Clone the repository
2. Open the solution in Visual Studio or your preferred IDE
3. Restore NuGet packages
4. Build the project
## Usage
1. Provide job data in the `data.json` file located in the `wwwroot/default` directory. Include the following information for each job application:
- Id
- URL
- Position
- Company
The `Crawlers` directory contains sample crawlers for extracting this data written in Python/Selenium. You need to have a chrome webdriver version, which is compatible with your Chrome-Browser: https://googlechromelabs.github.io/chrome-for-testing/
2. You can create your own documents in the `Users` directory within `wwwroot`. Make sure to indicate this directory in the `appsetings.Development.json` file.
3. Run the application and use the interface to manage your job applications and generate documents.
## Dependencies
This project uses the following main dependencies:
- .NET 8.0, C# 12
- itext7 (v8.0.5)
- itext7.bouncy-castle-adapter (v8.0.5) - doesn't work without it
- itext7.commons (v8.0.5)
- itext7.hyph (v8.0.5)
For a complete list of dependencies, please refer to the `BewerbungMasterApp.csproj` file.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Support
If you encounter any problems or have any questions, please open an issue in the GitHub repository.