Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vishal-girhepunje/filehandellingapp
Java project for converting fixed-column membership data to CSV files, adhering to client specifications, including data splitting by state and duplicate removal.
https://github.com/vishal-girhepunje/filehandellingapp
Last synced: 11 days ago
JSON representation
Java project for converting fixed-column membership data to CSV files, adhering to client specifications, including data splitting by state and duplicate removal.
- Host: GitHub
- URL: https://github.com/vishal-girhepunje/filehandellingapp
- Owner: vishal-girhepunje
- Created: 2024-03-21T12:59:25.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-03-21T15:29:43.000Z (9 months ago)
- Last Synced: 2024-03-22T14:29:07.353Z (9 months ago)
- Language: Java
- Size: 34.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FileHandellingApp
Java project for converting fixed-column membership data to CSV files, adhering to client specifications, including data splitting by state and duplicate removal.
# Membership Data Conversion ProjectThis project is aimed at converting membership data from a fixed-column format to comma-separated-value (CSV) files, following specific client requirements. It includes functionalities to import data from an input file, process it, and export it to multiple CSV files split by state.
## Project Structure
The project consists of the following components:
1. `src/main/java/com/smartdatasolutions/test`: Contains the Java source code.
2. `Members.txt`: Input file containing membership data in a fixed-column format.
3. `output`: Directory to store the output CSV files.## Prerequisites
Before running the project, ensure you have the following installed:
- Java Development Kit (JDK) version 8 or higher.
- An IDE such as IntelliJ IDEA or Eclipse.## How to Use
1. Clone this repository to your local machine.
2. Open the project in your preferred IDE.
3. Ensure that the input file `Members.txt` is placed in the project root directory.
4. Run the `Main` class located at `src/main/java/com/smartdatasolutions/test/impl/Main.java`.
5. Once the program completes execution, check the `output` directory for the generated CSV files.## Explanation of Project Flow
1. **Importing Members**: The `MemberImporterImpl` class reads data from the input file (`Members.txt`) and creates `Member` objects. It ensures that each line of the file is properly parsed to extract member information.
2. **Duplicate Removal**: The `Main` class ensures that duplicate member records are removed before further processing. This is achieved by the `getNonDuplicateMembers` method.
3. **Splitting by State**: After removing duplicates, the `Main` class splits the members by state using the `splitMembersByState` method. It creates separate lists of members for each state.
4. **Exporting to CSV**: Finally, the `Main` class utilizes the `MemberExporterImpl` class to export the member data to CSV files. Each CSV file is named with a state prefix and contains member details in the required format.
## Additional Notes
- The project follows the SOLID principles and is modularized for ease of maintenance and testing.
- Make sure to handle any exceptions that may occur during the execution of the program.
- Feel free to extend or modify the project as per your requirements.For any questions or issues, please contact [project owner/contact person].
## SQL Queries
### 1. Total Claimed Charge of Exported Documents
Find the total claimed charge of the exported documents.```sql
SELECT SUM(claimed_charge) AS total_claimed_charge
FROM document
WHERE status = 'EXPORTED';
```
### 2. Find insured_name, insured_address and claimed_charge for the documents that have status "TO_REPRICE" and customer id 1 and 2.```sql
SELECT insured_name, insured_address, claimed_charge FROM document d
JOIN batch b ON d.batch_id = b.id WHERE d.status = 'TO_REPRICE' AND b.customer_id IN (1, 2);