Census2Xlsx
Census2Xlsx is a cross-platform data collection and analysis tool for the United States Census Bureau database.
Overview
Developed with Python 3.7, Electron 11.2.1, and React 17.0.1.
Used the following guide to set up my React-Electron development environment: https://flaviocopes.com/react-electron/.
The project has a Trello board for tracking features and development tasks. This board can be viewed at: https://trello.com/b/UD66VbiG/cen2xlsx.
This application was developed for Heartland Grant Solutions: http://www.heartlandgrants.org/.
Intended to be used in junction with Tableau.
Terminology
Census2Xlsx accepts a Report Area and a set of Tables from multiple Sections from the user to create the final xlsx file.
Location: A geographic location described by a census geocode. Locations can represent a variety of geographic levels defined but the US census. Currently support state, county, and place geographic levels.
Report Area: A set of locations.
Indicator: A data point used to convey the state, level, or amount of something.
Table: A set of related indicators.
Section: A set of related tables.
Features
-
Create a Report Area
-
Select Tables to be included in the report
-
Confirm your selections and enter a file name
-
Download report as a .xlsx file
-
Once the .xlsx file has been generated, you can use Tableau to make interactive graphs and maps
Roadmap
-
Write python script with hardcoded values to generate a report -
Write python script to save report as a .xlsx file -
Write python script to cache Census geocodes and tableIDs -
Prototype UI in Tkinter -
Develop UI with electron and react -
Add secondary features -
Implement unit tests and logging -
Build and Distribute to Windows and OSX systems
Quickstart
Clone the repository:
$ git clone https://github.com/Cherrmann8/Census2Xlsx.git
Download dependencies:
$ npm install
Start the application:
$ npm start
Take note to change the IS_DEV flag in the .env file when changing between development and production.
Build the application:
$ npm run build
Package the application using electron-builder:
$ npm run dist