{"id":22606355,"url":"https://github.com/greycloudss/multithreaded-person-importer","last_synced_at":"2025-07-19T04:32:19.885Z","repository":{"id":266542010,"uuid":"898640357","full_name":"greycloudss/Multithreaded-Person-Importer","owner":"greycloudss","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-04T19:06:04.000Z","size":131,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-04T20:20:15.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greycloudss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-04T18:55:38.000Z","updated_at":"2024-12-04T19:06:08.000Z","dependencies_parsed_at":"2024-12-04T20:30:29.511Z","dependency_job_id":null,"html_url":"https://github.com/greycloudss/Multithreaded-Person-Importer","commit_stats":null,"previous_names":["greycloudss/multithreaded-person-importer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FMultithreaded-Person-Importer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FMultithreaded-Person-Importer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FMultithreaded-Person-Importer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FMultithreaded-Person-Importer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greycloudss","download_url":"https://codeload.github.com/greycloudss/Multithreaded-Person-Importer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236914263,"owners_count":19224722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T14:13:18.927Z","updated_at":"2025-02-03T08:28:50.146Z","avatar_url":"https://github.com/greycloudss.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Person Manager Application\r\n\r\n## Overview\r\n\r\nThe **Person Manager Application** is a JavaFX-based desktop application designed for managing and filtering data records of individuals. It features an interactive table for displaying data, dynamic filtering by date range, and sorting functionality.\r\n\r\n## Features\r\n\r\n- **Dynamic Table View**: Displays data records with columns for attributes like ID, first name, last name, email, gender, country, domain, and birth date.\r\n- **Data Import**: Loads data from multiple CSV files and combines it into a unified view.\r\n- **Date Range Filtering**: Filter records based on a range of birth dates using a user-friendly date picker.\r\n- **Alphabetical Sorting**: Supports ascending and descending sorting of records by first name.\r\n- **Multithreaded Import**: Efficiently loads data using multithreading for responsive performance.\r\n\r\n## Getting Started\r\n\r\n### Prerequisites\r\n\r\n- **Java 17 or newer**: Ensure you have JavaFX bundled or installed separately.\r\n- **IntelliJ IDEA or Eclipse**: IDEs recommended for building and running the project.\r\n\r\n## Usage\r\n\r\n1. Launch the application.\r\n2. Use the \"From\" and \"To\" date pickers to filter records by a range of birth dates.\r\n3. Select a sorting option (ascending or descending) from the dropdown menu.\r\n4. Click \"Find\" to display the filtered and sorted records in the table view.\r\n\r\n## Architecture\r\n\r\nThe Person Manager Application consists of the following components:\r\n\r\n- **Person**:\r\n  - A data model representing an individual with attributes like ID, name, email, gender, and birth date.\r\n  - Includes getter methods for accessing attributes.\r\n\r\n- **Importer**:\r\n  - Handles the loading of data from CSV files.\r\n  - Processes data asynchronously using threads.\r\n  - Cleans and parses raw data into Person objects.\r\n\r\n- **HelloController**:\r\n  - Manages the application's user interface and logic.\r\n  - Implements filtering and sorting based on user inputs.\r\n  - Handles the integration between the data model and the table view.\r\n\r\n- **HelloApplication**:\r\n  - Entry point of the application.\r\n  - Initializes and displays the JavaFX UI.\r\n\r\n## Contribution\r\n\r\nContributions are welcome! If you’d like to report a bug or request a feature, feel free to open an issue or submit a pull request.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fmultithreaded-person-importer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreycloudss%2Fmultithreaded-person-importer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fmultithreaded-person-importer/lists"}