MultiExport is a powerful system for exporting election data in multiple formats such as PDF, Excel, and CSV, using Spring Boot. The project aims to provide a seamless and flexible way to extract election data and generate shareable reports.
muhamedsaad112-multiexport/
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── election/
│ │ │ ├── ElectionApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── ElectionControllerPdf.java
│ │ │ │ ├── ElectionExportController.java
│ │ │ │ ├── ExportController.java
│ │ │ │ └── PPdfController.java
│ │ │ ├── service/
│ │ │ │ ├── ElectionExportService.java
│ │ │ │ ├── ElectionServicePdf.java
│ │ │ │ ├── ExportService.java
│ │ │ │ ├── PdfService.java
│ │ │ │ └── ElectionServicePdf.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── templates/
│ │ ├── ElectionReport.html
│ │ └── electionReport1.html
│ └── test/
│ └── java/
│ └── com/
│ └── election/
│ └── ElectionApplicationTests.java
└── .mvn/
└── wrapper/
└── maven-wrapper.properties
✅ Export election data to PDF, Excel, and CSV formats
✅ Fully functional RESTful API for automated report generation
✅ Support for HTML templates to create custom PDF reports
✅ Flexible service to handle data extraction efficiently
✅ Built with Spring Boot and supports seamless integration with other systems
- Java 17+
- Spring Boot 3+
- Spring MVC
- Apache POI (for Excel export)
- iText PDF (for PDF generation)
- Lombok (to simplify code)
- Jackson Databind (for JSON processing)
- OpenCSV (for CSV processing)
- JFreeChart (for chart generation)
- Thymeleaf (for dynamic report templates)
- Maven (for dependency management)
Ensure the following are installed on your system:
- JDK 17 or later 🔗 Download
- Maven 🔗 Download
- Git (for version control) 🔗 Download
Open Terminal or Command Prompt and run:
git clone https://github.com/MuhamedSaad112/MultiExport.git
cd MultiExportRun the application using:
./mvnw spring-boot:run # (Linux/Mac)
mvnw.cmd spring-boot:run # (Windows)Or directly with Java:
java -jar target/multiexport.jar| Functionality | HTTP Method | Endpoint |
|---|---|---|
| Export Creator Excel | POST |
/api/export/creator/excel |
| Export Viewer Excel | POST |
/api/export/viewer/excel |
| Export Creator CSV | POST |
/api/export/creator/csv |
| Export Viewer CSV | POST |
/api/export/viewer/csv |
| Generate Election PDF | POST |
/election/generate-pdf |
| Generate Charts PDF | POST |
/pdf/charts |
📌 Note: All endpoints accept JSON input.
🔹 Modify application settings
Edit application.properties to change the default file names and configurations.
🔹 Add new fields
- Update
ElectionExportService.javato include new data fields. - Modify the HTML templates in
templates/to change the report structure.
To ensure the project runs correctly, execute:
mvn testWe welcome contributions! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b my-new-feature
- Make changes and commit:
git commit -m "Add new feature" - Push the branch and open a Pull Request.
This project is licensed under the MIT License – you are free to use and modify it while maintaining proper attribution.
If you encounter any issues or have questions, feel free to open an Issue in the repository or contact:
📧 Email: muhamedsaad112@gmail.com
🔗 GitHub: MuhamedSaad112
🚀 Enjoy seamless data exporting! 🗳️📊