{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":726674286,"defaultBranch":"master","name":"ZipVizApp","ownerLogin":"JD499","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-03T03:14:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/112453386?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1703745923.0","currentOid":""},"activityList":{"items":[{"before":"89f7b8e8cbc018ef41c018083dbceeba7bdec4e3","after":"98ae3a633fc901bfe018114aca193f40e3ed0f4f","ref":"refs/heads/master","pushedAt":"2023-12-09T21:44:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Update technology versions in README\n\nThe technologies used section in the README file has been updated to include specific versions of Java, JFreeChart, Gson, and Gradle. Links have also been added for the named third-party libraries to allow users easy reference.","shortMessageHtmlLink":"Update technology versions in README"}},{"before":"db96081282679caeec12360b06750094aafd993e","after":"89f7b8e8cbc018ef41c018083dbceeba7bdec4e3","ref":"refs/heads/master","pushedAt":"2023-12-09T09:39:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Update setup instructions in README\n\nThe instructions for setting up the project in the README file have been updated. Instead of using Gradle commands, users are now advised to run ZipVizApp.java to start the application.","shortMessageHtmlLink":"Update setup instructions in README"}},{"before":"59eead03fbcaec528e20e0ad75bf442137d8e31c","after":"db96081282679caeec12360b06750094aafd993e","ref":"refs/heads/master","pushedAt":"2023-12-09T09:29:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Delete gradle/wrapper directory","shortMessageHtmlLink":"Delete gradle/wrapper directory"}},{"before":"6058dfba3cb7fe19d45e999950811a18d9e6bff6","after":"59eead03fbcaec528e20e0ad75bf442137d8e31c","ref":"refs/heads/master","pushedAt":"2023-12-09T09:29:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Delete .idea directory","shortMessageHtmlLink":"Delete .idea directory"}},{"before":"ab524fd88a40cfdff251a655f31b1504f6aebed1","after":"6058dfba3cb7fe19d45e999950811a18d9e6bff6","ref":"refs/heads/master","pushedAt":"2023-12-09T09:28:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add new entries to .gitignore file\n\nThe update includes addition of IntelliJ IDEA specific directory and the Gradle directory to the git ignore file. This ensures that unnecessary files or directories are not accidentally committed into the repository while using these tools.","shortMessageHtmlLink":"Add new entries to .gitignore file"}},{"before":"7ed418796f369a566ead79e2c03bc268f647dfba","after":"ab524fd88a40cfdff251a655f31b1504f6aebed1","ref":"refs/heads/master","pushedAt":"2023-12-09T09:13:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Update API key handling in DataFetcher\n\nThis update changes how the API key is fetched in the DataFetcher utility class. Now, instead of terminating the application if the API key environment variable is not set, a dialog is presented to the user requesting the key. Additionally, it renamed the API_KEY variable to ENV_API_KEY for clarity and introduced a new variable apiKey to handle the key input.","shortMessageHtmlLink":"Update API key handling in DataFetcher"}},{"before":"9cd65d8845c462b69e60f9876d0ab49626805033","after":"7ed418796f369a566ead79e2c03bc268f647dfba","ref":"refs/heads/master","pushedAt":"2023-12-09T08:46:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add API key check to DataFetcher constructor\n\nThe DataFetcher constructor now checks if the API key is defined and is not empty. A dialog box with an error message pops up and the system exits if the condition is not met, improving the robustness of the code.","shortMessageHtmlLink":"Add API key check to DataFetcher constructor"}},{"before":"07100480bd0680dcfc81afb9049de6c939a404d9","after":"9cd65d8845c462b69e60f9876d0ab49626805033","ref":"refs/heads/master","pushedAt":"2023-12-09T06:00:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Update API key usage instructions in README\n\nThe instructions for setting the U.S. Census Bureau's API key have been updated in the README. The API key is now stored as an environment variable instead of being hard-coded into the application. This change improves security and adaptability.","shortMessageHtmlLink":"Update API key usage instructions in README"}},{"before":"898c5ca22d032f663525522b51c53e5c87794884","after":"07100480bd0680dcfc81afb9049de6c939a404d9","ref":"refs/heads/master","pushedAt":"2023-12-09T05:55:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add DataFetcher class for demographic data retrieval\n\nA new DataFetcher class was introduced to fetch demographic data from an API. The class provides methods for requesting and processing the data, with the capability to return a parsed demographic data object based on a provided ZIP code. This implementation incorporates Singleton pattern, ensuring there's just a single instance of DataFetcher.","shortMessageHtmlLink":"Add DataFetcher class for demographic data retrieval"}},{"before":"5adde492db92cac3141e60dd2d39c2d667cf2ebd","after":"898c5ca22d032f663525522b51c53e5c87794884","ref":"refs/heads/master","pushedAt":"2023-12-09T05:41:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add README for ZipViz application\n\nA comprehensive README file has been added for the ZipViz application. This document provides a brief introduction to the application, its features, the code structure, technologies used, setup instructions, and a note about the API key usage.","shortMessageHtmlLink":"Add README for ZipViz application"}},{"before":"fd680c39f3f692d3bfc574f40faf5edf85e8d23b","after":"5adde492db92cac3141e60dd2d39c2d667cf2ebd","ref":"refs/heads/master","pushedAt":"2023-12-09T05:14:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Replace hard-coded API key with environment variable\n\nThe API key was previously hard-coded into the DataFetcher class. This update replaces the hard-coded key with a reference to an environment variable, enhancing security and allowing for easier modification of the key.","shortMessageHtmlLink":"Replace hard-coded API key with environment variable"}},{"before":"b07023ca5cd9a9d503e28f90726dbd309f82f899","after":"fd680c39f3f692d3bfc574f40faf5edf85e8d23b","ref":"refs/heads/master","pushedAt":"2023-12-09T05:10:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add README for ZipViz application\n\nA comprehensive README file has been added for the ZipViz application. This document provides a brief introduction to the application, its features, the code structure, technologies used, setup instructions, and a note about the API key usage.","shortMessageHtmlLink":"Add README for ZipViz application"}},{"before":"820874867e6593e2ccf1a5b15929abb158309d31","after":"b07023ca5cd9a9d503e28f90726dbd309f82f899","ref":"refs/heads/master","pushedAt":"2023-12-09T05:00:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add documentation to various classes\n\nClass documentation has been added across several classes, including ZipVizApp, DemographicData, DataFetcher, DemographicChartPanel, and DataInputPanel. The documentation provides a brief description of each class, clarifying their roles and responsibilities within the application.","shortMessageHtmlLink":"Add documentation to various classes"}},{"before":"acbb21ffaacfaaad0068446266cc78453829d1f6","after":"820874867e6593e2ccf1a5b15929abb158309d31","ref":"refs/heads/master","pushedAt":"2023-12-09T04:50:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Refactor several classes, enhance readability, and update methods\n\nMajor refactoring of multiple files to improve the code's readability and simplicity. Many methods such as 'getIncomeRange', 'calculateLorenzData', and 'request' got optimized. Code breaks down big chunks into separate methods, provides more detailed comments, and adjusts formatting. Some classes also switch from getters and setters to use records for more concise and readable code. Occurrences of 'getIncomeDistribution()' replace by 'incomeDistribution()'.","shortMessageHtmlLink":"Refactor several classes, enhance readability, and update methods"}},{"before":"95bba9e6cc952573eb451f98fb71cf0d640743ae","after":"acbb21ffaacfaaad0068446266cc78453829d1f6","ref":"refs/heads/master","pushedAt":"2023-12-09T04:27:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Implement observer pattern in data input panel\n\nThe DataInputPanel no longer fetches data and creates charts itself. Instead, it notifies observers when the user interacts with it, by submitting a ZIP code, choosing a chart, or pressing the submit button. The ApplicationWindow has been updated to observe DataInputPanel and process these events. The ability to export charts as images and CSV data files has also been added. These changes are a step towards improving the separation of concerns in the code.","shortMessageHtmlLink":"Implement observer pattern in data input panel"}},{"before":"8c5f745b1832c185417cdc2fc77f4a307148f291","after":"95bba9e6cc952573eb451f98fb71cf0d640743ae","ref":"refs/heads/master","pushedAt":"2023-12-09T03:44:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Replace ChartFactory with ChartFactoryProvider\n\nThe ChartFactory has been replaced with ChartFactoryProvider in the DemographicChartPanel and DataInputPanel classes. The purpose of this change is to make the code more modular and to provide an easier way to manage different types of chart factories.","shortMessageHtmlLink":"Replace ChartFactory with ChartFactoryProvider"}},{"before":"807a00420030265ec5d0b0cd769f5f46cfc5b6c6","after":"8c5f745b1832c185417cdc2fc77f4a307148f291","ref":"refs/heads/master","pushedAt":"2023-12-09T03:01:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add new chart factories and methods in ChartFactoryProvider\n\nExpanded the ChartFactoryProvider class to include additional chart factories, such as the InitialChartFactory. New methods were also implemented to return individual instances of each chart factory type, enhancing modularity and ease of use.","shortMessageHtmlLink":"Add new chart factories and methods in ChartFactoryProvider"}},{"before":"f5894f852ae80a86d59aea132fe05b34efacdf96","after":"807a00420030265ec5d0b0cd769f5f46cfc5b6c6","ref":"refs/heads/master","pushedAt":"2023-12-09T02:43:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Rename MainFrame to ApplicationWindow and update size\n\nThe MainFrame class, used to create the GUI for the application, has been renamed to ApplicationWindow. Correspondingly, the call to instantiate MainFrame in the ZipVizApp class has been updated. Additionally, the default application window size has been increased to 1366x768.","shortMessageHtmlLink":"Rename MainFrame to ApplicationWindow and update size"}},{"before":"45aa842fe1c1e4b33cb3fe6ca043d960e6e999b6","after":"f5894f852ae80a86d59aea132fe05b34efacdf96","ref":"refs/heads/master","pushedAt":"2023-12-09T02:33:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add ChartFactoryProvider for chart creation\n\nThis commit introduces a new ChartFactoryProvider class that handles the creation of different types of charts based on a given input. It also removes the switch statement from the DataInputPanel class by using the new ChartFactoryProvider to determine which ChartFactory to use.","shortMessageHtmlLink":"Add ChartFactoryProvider for chart creation"}},{"before":"cc3d9f18bb40c4ba5c3825e99295e45579ae6f47","after":"45aa842fe1c1e4b33cb3fe6ca043d960e6e999b6","ref":"refs/heads/master","pushedAt":"2023-12-09T02:33:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Remove VisualizationPanel class\n\nThe VisualizationPanel class was deleted as it was unused or irrelevant in the current scope of the project. This is part of an ongoing effort to clean up and improve the codebase by removing unnecessary elements.","shortMessageHtmlLink":"Remove VisualizationPanel class"}},{"before":"9df9cd051f7cf70238678ef4b24696da54aead48","after":"cc3d9f18bb40c4ba5c3825e99295e45579ae6f47","ref":"refs/heads/master","pushedAt":"2023-12-09T02:17:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Refactor data fetching and chart creation into separate method\n\nA new method fetchDataAndCreateChart() was created in DataInputPanel.java to handle data fetching and chart creation operations. This aids the separation of concerns and consequently decreases the complexity of the setupUI() method, enhancing code maintainability and readability.","shortMessageHtmlLink":"Refactor data fetching and chart creation into separate method"}},{"before":"ca66cdb1fd01f625383a7df7a71985891ea2071e","after":"9df9cd051f7cf70238678ef4b24696da54aead48","ref":"refs/heads/master","pushedAt":"2023-12-09T02:10:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Refactor chart factories and update their documentation\n\nThis commit involves a significant refactor of the jFreeChart Factory classes. It also introduces a new factory `InitialChartFactory`. Furthermore, detailed inline documentation has been added to each factory for clarity. This change aims to improve code readability and maintainability.","shortMessageHtmlLink":"Refactor chart factories and update their documentation"}},{"before":"f3558f65ba5ca52dd42b688b1363c13a5fdda458","after":"ca66cdb1fd01f625383a7df7a71985891ea2071e","ref":"refs/heads/master","pushedAt":"2023-12-09T01:48:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Replace printStackTrace with logger in DataInputPanel\n\nIn the DataInputPanel class, exceptions were previously printed directly to the standard error output using printStackTrace. This approach has been replaced with using a Logger to log severe exceptions. Logging provides more flexibility such as log levels and different output destinations.","shortMessageHtmlLink":"Replace printStackTrace with logger in DataInputPanel"}},{"before":"fa46997cf3f5402a570c98a58a3ae7719a4646ee","after":"f3558f65ba5ca52dd42b688b1363c13a5fdda458","ref":"refs/heads/master","pushedAt":"2023-12-09T01:35:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add data export function to visualization panel\n\nThe changes mainly focus on implementing a data export function on the visualization panel and are also making some updates on the chart display method. Now, the displayChart function includes demographic data as a parameter, and an export function has been added to the DataInputPanel which allows users to export the displayed data as either an image or as a CSV file.","shortMessageHtmlLink":"Add data export function to visualization panel"}},{"before":"105447c63cffc2857f41c4ac99a3aa235dd71853","after":"fa46997cf3f5402a570c98a58a3ae7719a4646ee","ref":"refs/heads/master","pushedAt":"2023-12-09T01:00:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Refactor DataFetcher to improve error handling\n\nThe fetchData() method in DataFetcher class has been refactored to improve error handling and data processing. Exception catching has been introduced to handle possible errors during data fetching. Additionally, the URL connection process, response reading and processing have been updated to provide a more robust way to ensure valid responses are returned while improper ones are dealt with appropriately.","shortMessageHtmlLink":"Refactor DataFetcher to improve error handling"}},{"before":"87376a1dcc7eb608cdeb74e6c68fe6ec337d876e","after":"105447c63cffc2857f41c4ac99a3aa235dd71853","ref":"refs/heads/master","pushedAt":"2023-12-09T00:25:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Add PieChartFactory and LineChartFactory classes\n\nNew PieChartFactory and LineChartFactory classes have been added to generate pie charts and line charts respectively using JFreeChart. The DataInputPanel's chartTypeComboBox has been updated to include these new chart options.","shortMessageHtmlLink":"Add PieChartFactory and LineChartFactory classes"}},{"before":"2798e0dbab7f6d0c0ecbcae8e7f8c06605393cc8","after":"87376a1dcc7eb608cdeb74e6c68fe6ec337d876e","ref":"refs/heads/master","pushedAt":"2023-12-09T00:13:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Implement factory design pattern for chart creation\n\nThe ChartFactory class has been converted to an interface to facilitate the creation of different kinds of charts. Different implementations of this interface, LorenzChartFactory, and BarChartFactory, have been added, each responsible for creating a specific type of chart. This approach follows the Factory design pattern, improving the code's extensibility and readability. The DataInputPanel class was also updated accordingly to utilize these new classes.","shortMessageHtmlLink":"Implement factory design pattern for chart creation"}},{"before":"a759054acc26508a779ff42b7cba3a30fcbc9fc2","after":"2798e0dbab7f6d0c0ecbcae8e7f8c06605393cc8","ref":"refs/heads/master","pushedAt":"2023-12-08T23:56:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Implement Singleton in DataFetcher class\n\nA Singleton pattern has been implemented in the DataFetcher class to avoid unnecessary instances. The DataInputPanel now calls the getInstance() method from the DataFetcher class to retrieve data, ensuring that only a single instance of DataFetcher is used throughout the application. This change should improve performance by saving resources from repeated object creation.","shortMessageHtmlLink":"Implement Singleton in DataFetcher class"}},{"before":"77966b24bc42f76473e66b28bec86ade0f7974d1","after":"a759054acc26508a779ff42b7cba3a30fcbc9fc2","ref":"refs/heads/master","pushedAt":"2023-12-03T07:32:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Now can switch between charts using a combobox","shortMessageHtmlLink":"Now can switch between charts using a combobox"}},{"before":"744162f74c384e186cf7cd235cbaf741402d46ef","after":"77966b24bc42f76473e66b28bec86ade0f7974d1","ref":"refs/heads/master","pushedAt":"2023-12-03T06:57:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JD499","name":"James","path":"/JD499","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112453386?s=80&v=4"},"commit":{"message":"Now can display a Lorenz Curve","shortMessageHtmlLink":"Now can display a Lorenz Curve"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADxkENcwA","startCursor":null,"endCursor":null}},"title":"Activity ยท JD499/ZipVizApp"}