Accelerating access to public court data
ZipCase is a web application and API designed to streamline the retrieval of public court case information.
- Automated Case Search: Search for cases across multiple jurisdictions
- Multiple Case Number Formats: Support for standard (23CR123456-789) and LexisNexis (7892025CR 714844) formats can be pasted from virtually any text source
- Multi-Stage Processing: Case links are quickly provided and then full case data are retrieved in the background
- Real-time Status Updates: Visual indicators show search progress and results
- Portal Authentication: Secure login to court portals to access case data
- API Access: Developer API for programmatic access to case data
The project is organized into several components:
/zipcase/
├── frontend/ # React TypeScript application
├── serverless/ # AWS Lambda functions and API
│ ├── api/ # Public API service
│ ├── app/ # Application backend service
│ ├── infra/ # Serverless infrastructure
│ └── lib/ # Shared libraries
├── shared/ # Shared TypeScript types
└── infra/ # Terraform infrastructure
└── terraform/ # Terraform configurations
ZipCase follows a serverless architecture built on AWS:
- Frontend: React application served via CloudFront and S3
- Backend: AWS Lambda functions with API Gateway
- Storage: DynamoDB and S3 for case data and user preferences
- Authentication: Cognito for user authentication
- Queuing: SQS for asynchronous case processing
- Monitoring: CloudWatch metrics, alarms and SNS notifications
- Infrastructure: Defined with Terraform and Serverless Framework
- User searches for case numbers
- Case search requests are queued to SQS (CaseSearchQueue)
- Lambda processes find case IDs and mark cases as "found"
- Found cases are queued for data retrieval (CaseDataQueue)
- Case data is processed in parallel and stored in DynamoDB
- Frontend polls for updates and displays results in real-time
- Frontend Documentation - React application setup and deployment
- Serverless Documentation - Backend services and API
- Infrastructure - Terraform resources and configuration
- Alerting System - Error monitoring and notifications
- Node.js 18+
- AWS CLI configured with appropriate credentials
- Terraform (for infrastructure deployment)
- Serverless Framework
-
Clone the repository
git clone https://github.com/yourusername/zipcase.git cd zipcase
-
Set up the backend
cd serverless npm install
-
Set up the frontend
cd frontend npm install npm run dev
-
Deploy infrastructure
cd infra/terraform/dev terraform init terraform apply
-
Deploy services
cd serverless serverless deploy
For more detailed instructions, see the README files in each subdirectory.
This project is licensed under the MIT License - see the LICENSE file for details.