A comprehensive system for tracking, managing, and ensuring compliance with state-level library book protection laws and book challenge processes across the United States.
As book challenges and banning attempts have increased across the nation, many states have responded by enacting "Right to Read" or "Freedom to Read" legislation. This project provides:
- Policy Templates: Model policies compliant with state-specific legislation
- Challenge Tracking: Systems to track and manage book challenges through proper review processes
- Compliance Monitoring: Tools to ensure districts meet their legal obligations
- Reporting: Generate reports on challenge trends, outcomes, and compliance status
bookban-unban/
├── README.md # This file
├── agents.md # Documentation for AI agents working on this project
├── src/
│ ├── core/ # Core shared functionality
│ │ ├── models/ # Base data models
│ │ ├── services/ # Shared services
│ │ └── utils/ # Utility functions
│ └── states/ # State-specific implementations
│ └── connecticut/ # Connecticut implementation
├── policies/ # Policy templates
│ └── connecticut/ # CT-specific policy templates
├── data/ # Data schemas and sample data
│ └── connecticut/ # CT-specific data
└── tests/ # Test suites
└── connecticut/ # CT-specific tests
Connecticut's "Don't Ban Library Books Act" (Senate Bill 1271) requires all school and public libraries to establish standardized policies for:
-
Collection Development and Maintenance Policy
- Guidelines for acquiring and maintaining library materials
- Must follow state non-discrimination statutes
- Cannot ban books based on author's origin, background, or views
-
Library Program and Display Policy
- Standards for library programs and material displays
- Ensures inclusive representation
-
Library Material Review and Reconsideration Policy
- Formal process for handling book challenges
- Uniform request for review/reconsideration form
- Committee review requirements
Key Protections:
- Librarian immunity from criminal and civil liability
- Prohibition on banning books due to author characteristics
- Required involvement of accredited librarians in review processes
- Node.js 18+ or Python 3.10+
- PostgreSQL 14+ (for production) or SQLite (for development)
# Clone the repository
git clone https://github.com/ConAcademy/bookban-unban.git
cd bookban-unban
# Install dependencies
npm install
# or
pip install -r requirements.txt
# Set up the database
npm run db:setup
# or
python scripts/setup_db.py
# Run in development mode
npm run dev
# or
python -m bookban_unban.mainCreate a .env file based on .env.example:
DATABASE_URL=postgresql://user:password@localhost:5432/bookban
STATE=connecticut
LOG_LEVEL=infoimport { ChallengeService } from './src/states/connecticut/services';
const challenge = await ChallengeService.createChallenge({
bookTitle: "Example Book",
author: "Author Name",
challenger: {
name: "Parent Name",
relationship: "parent",
contactEmail: "[email protected]"
},
district: "Example School District",
reason: "Content concern",
dateSubmitted: new Date()
});import { ComplianceService } from './src/states/connecticut/services';
const report = await ComplianceService.generateDistrictReport({
district: "Example School District",
year: 2025
});See API Documentation for full API reference.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details.
- Connecticut Library Consortium for advocacy efforts
- American Library Association Office for Intellectual Freedom
- All librarians defending the freedom to read