This repository contains the code for the Census and Survey Processing System (CSPro) and CSEntry Android.
The CSPro suite of programs that runs on Windows is coded in C++17 using the Microsoft Foundation Class (MFC) framework, with a few tools coded in C#. This code is built using Microsoft Visual Studio.
CSEntry, the Android application, is coded in Java and Kotlin and built using Android Studio.
The shared runtime is coded in C++, with the NDK toolset building this for Android.
Details about building CSPro, as well as information about the codebase and programming principles, are available in BUILD.md.
Released versions of the software are available at the following sites:
- Census Bureau (CSPro and CSWeb)
- CSPro Users (CSPro and CSWeb)
- Google Play (CSEntry)
CSPro is a work of the United States government and any CSPro-specific code is released to the public domain within the United States. CSPro uses several open-source software packages, and it is essential to review each license to ensure that any derived use of this code follows all licenses.
The use of CSPro is also governed by a Terms of Service.
Most CSPro development occurs on a private repository. The commits in this public repository are mirrored from the development that occurs on the private repository. A list of pull requests that have been merged into the private repository's code is available at HISTORY.md.
If you submit a pull request that is accepted by the development team, the pull request will be processed in this public repository and/or the private repository. Regardless of order, the changes will be incorporated into the codebase.
The code snapshots in this public repository differ from the code on the private repository that is used to create the released version of CSPro:
-
The released version of CSPro uses the SQLite Encryption Extension (SEE) to support working with encrypted SQLite databases. Because SEE requires a license, it cannot be released in this public repository. The SQLite compilation units included here are from the public SQLite release: sqlite3.c and sqlite3.h. Any access to encrypted SQLite databases using code built from this public repository will result in an exception.
-
The API keys used to access or use CSWeb, Dropbox, and Google Maps have been removed (from ApiKeys.h and api_keys.xml). Those choosing to build CSPro from this public snapshot will have to provide their own API keys if they want to use these services.
We welcome contributions from everyone! If you'd like to contribute, please follow these guidelines:
- All contributions must be submitted via a pull request to the dev branch.
- Ensure that the pull request is well-documented and includes a clear description of the changes.
- Follow the project's coding style and best practices.
Thank you for helping improve this project!