Releases: willwillis/fast-api-scripture-app
Releases Β· willwillis/fast-api-scripture-app
Fast Scriptures v1.4.0
Major Updates
Package Updates & Security
- Fixed 8 security vulnerabilities including critical npm packages
- Updated major frontend packages:
- Vite:
5.0.0β7.2.2(major version upgrade) - TailwindCSS:
3.3.5β4.1.17(major version upgrade) - React & React DOM:
18.2.0β18.3.1 - TypeScript:
5.3.3β5.9.3 - Vitest:
1.0.4β4.0.10 - Axios:
1.6.2β1.13.2
- Vite:
Backend Improvements
- Updated all Python packages to latest stable versions:
- FastAPI:
0.115.14β0.121.2 - SQLAlchemy:
2.0.41β2.0.44 - Pydantic:
2.11.7β2.12.4 - Uvicorn:
0.35.0β0.38.0
- FastAPI:
- Modernized uv configuration format (
dependency-groups.dev)
TailwindCSS v4 Migration
- Migrated to TailwindCSS v4 with CSS-first configuration
- Preserved all custom styling including dark theme colors
- Updated PostCSS configuration for v4 compatibility
- Maintained backward compatibility with existing class names
CI/CD Improvements
- Updated Node.js version from 18 to 20 (required for Vitest v4)
- Added Python 3.13 support in test matrix
- Enhanced GitHub Actions compatibility
Technical Details
Frontend Changes
- Migrated from
@tailwinddirectives to@import "tailwindcss" - Converted
tailwind.config.jsto CSS-based@themeconfiguration - All custom colors and fonts preserved in CSS custom properties
- Build performance improved with latest Vite version
Backend Changes
- All dependencies updated to latest stable versions
- Configuration files modernized for better tooling support
- Enhanced security with latest package versions
Breaking Changes
- Node.js 20+ now required for development (due to Vitest v4)
- TailwindCSS v4 uses different internal architecture (no impact on existing classes)
Compatibility
- All existing class names remain compatible
- Dark theme styling fully preserved
- No changes required for existing components
Full Changelog: v1.3.0...v1.4.0
Version 1.3.0 - Testing Infrastructure & SDLC best practices
v 1.3.0
π― New Features
Comprehensive Testing Infrastructure
- Frontend Testing: Complete Vitest + React Testing Library setup
- Backend Testing: Pytest with coverage reporting and async support
- CI/CD Pipeline: Automated testing across multiple Python versions
- Code Quality: Integrated linting, formatting, and type checking
DSLC (Development, Security, and Lifecycle) Paradigm
- Development Workflow: Standardized development practices and tooling
- Security Scanning: Automated security checks and vulnerability detection
- Lifecycle Management: Comprehensive dependency and version management
- Quality Gates: Automated quality checks in CI/CD pipeline
π§ Technical Implementation
Frontend Testing (React + TypeScript)
- Vitest Framework: Modern testing framework with Vite integration
- React Testing Library: User-centric testing approach
- ESLint Flat Config: Modern ESLint configuration with TypeScript support
- TypeScript 5.3.3: Updated to latest stable version with full compatibility
- Test Coverage: Automated coverage reporting with v8 provider
Backend Testing (FastAPI + Python)
- Pytest Integration: Comprehensive test suite with 14 test cases
- Async Testing: Full async/await support for FastAPI endpoints
- Database Testing: Real database integration with SQLite
- Coverage Reporting: XML coverage reports for CI integration
- Multi-Version Testing: CI testing across Python 3.9, 3.10, 3.11, 3.12
CI/CD Pipeline Enhancements
- GitHub Actions: Comprehensive workflow with multiple jobs
- Submodule Support: Proper submodule checkout for database access
- Database Setup: Automated database preparation in CI environment
- Quality Gates: Linting, formatting, and security checks
- Parallel Testing: Matrix testing across multiple environments
π Testing Features
Frontend Test Coverage
- Component Testing: React component rendering and interaction tests
- API Integration: Service layer testing with mocked HTTP requests
- User Interactions: Click, form submission, and navigation testing
- Error Handling: Error boundary and exception testing
- Accessibility: Basic accessibility testing with testing library
Backend Test Coverage
- API Endpoints: All FastAPI endpoints tested with real database
- Health Checks: Database connectivity and application health
- Error Scenarios: Invalid inputs, missing data, and edge cases
- Performance Testing: Response time validation and performance checks
- Data Validation: Pydantic model validation and data integrity
Quality Assurance
- Code Formatting: Black code formatter with consistent style
- Import Sorting: isort with Black-compatible configuration
- Linting: Flake8 with comprehensive style checking
- Type Checking: MyPy integration for type safety
- Security Scanning: Bandit security analysis and npm audit
π DSLC Implementation
Development Standards
- Package Management:
uvfor Python,npmfor Node.js - Dependency Management: Lock files and version pinning
- Code Style: Consistent formatting across all languages
- Git Workflow: Pre-commit hooks and automated checks
- Documentation: Comprehensive README and API documentation
Security Practices
- Dependency Scanning: Automated vulnerability detection
- Code Analysis: Security-focused linting and static analysis
- Environment Security: Secure environment variable handling
- Input Validation: Comprehensive input sanitization
- Error Handling: Secure error messages and logging
Lifecycle Management
- Version Control: Semantic versioning and changelog management
- Release Process: Automated release notes and version tagging
- Deployment: Blue-green deployment with health checks
- Monitoring: Comprehensive observability and alerting
- Maintenance: Automated dependency updates and security patches
π Quality Metrics
Code Quality
- Test Coverage: Frontend and backend coverage reporting
- Code Complexity: Cyclomatic complexity analysis
- Technical Debt: Automated technical debt detection
- Performance: Automated performance regression testing
- Reliability: Error rate monitoring and alerting
Development Velocity
- CI/CD Speed: Optimized pipeline execution times
- Feedback Loops: Fast feedback on code changes
- Automation: Reduced manual testing and deployment steps
- Developer Experience: Streamlined development workflow
- Quality Gates: Automated quality enforcement
Operational Excellence
- Deployment Frequency: Increased deployment frequency with confidence
- Lead Time: Reduced time from commit to production
- Mean Time to Recovery: Faster incident response and resolution
- Change Failure Rate: Reduced production failures
- Availability: Improved system reliability and uptime
π Migration & Setup
Frontend Setup
- Testing Framework: Vitest with React Testing Library
- ESLint Configuration: Modern flat config with TypeScript support
- TypeScript Update: Version 5.3.3 with full compatibility
- Coverage Reporting: Automated coverage with v8 provider
- CI Integration: GitHub Actions with automated testing
Backend Setup
- Testing Framework: Pytest with async support and coverage
- Code Quality: Black, isort, and Flake8 integration
- Database Testing: Real database integration in CI
- Multi-Version Testing: Python 3.9-3.12 compatibility
- Security Scanning: Bandit integration for security analysis
CI/CD Pipeline
- GitHub Actions: Comprehensive workflow with multiple jobs
- Submodule Support: Proper database access in CI
- Quality Gates: Automated quality enforcement
- Parallel Testing: Matrix testing across environments
- Coverage Reporting: Automated coverage upload to Codecov
π Testing Checklist
Frontend Testing
- Vitest framework setup and configuration
- React Testing Library integration
- Component testing with user interactions
- API service layer testing
- Error boundary and exception testing
- Coverage reporting with v8 provider
- ESLint flat config with TypeScript support
- TypeScript 5.3.3 compatibility
Backend Testing
- Pytest framework with async support
- FastAPI endpoint testing with real database
- Health check and connectivity testing
- Error scenario and edge case testing
- Performance and response time validation
- Coverage reporting with XML output
- Multi-version Python testing (3.9-3.12)
- Database setup and teardown
CI/CD Pipeline
- GitHub Actions workflow with multiple jobs
- Submodule checkout for database access
- Automated database setup in CI
- Quality gates (linting, formatting, security)
- Parallel testing across environments
- Coverage reporting to Codecov
- Security scanning with Bandit and npm audit
- Dependency management and updates
DSLC Implementation
- Development workflow standardization
- Security scanning and vulnerability detection
- Lifecycle management and version control
- Quality gates and automated enforcement
- Documentation and knowledge sharing
- Monitoring and observability integration
- Deployment automation and health checks
π― Next Steps
Phase 2: Advanced Testing
- E2E Testing: Playwright or Cypress for end-to-end testing
- Performance Testing: Load testing and performance regression
- Visual Regression: Automated visual testing with screenshots
- Accessibility Testing: Comprehensive a11y testing
- Contract Testing: API contract testing with Pact
Phase 3: Advanced DSLC
- Feature Flags: Feature flag management and testing
- Canary Deployments: Gradual rollout and testing
- Chaos Engineering: Resilience testing and failure injection
- Compliance Testing: Automated compliance and audit testing
- Cost Optimization: Automated cost monitoring and optimization
Phase 4: SRE Practices
- SLI/SLO Definition: Service level indicators and objectives
- Error Budget Management: Error budget tracking and alerting
- Incident Response: Automated incident detection and response
- Capacity Planning: Data-driven scaling and capacity decisions
- Post-Incident Reviews: Automated post-mortem and learning
Breaking Changes
- ESLint Configuration: Migrated from
.eslintrc.jsontoeslint.config.jsflat config - TypeScript Version: Updated to 5.3.3 for better ESLint compatibility
- CI Requirements: Submodules must be checked out for database access
Migration Notes
- Frontend: ESLint configuration updated to modern flat config format
- Backend: Database setup required in CI environment
- CI/CD: Submodule checkout enabled for all jobs
- Testing: New test frameworks and coverage reporting
- Quality: Enhanced linting, formatting, and security checks
Technical Details
- Frontend: Vitest v1.6.1, React Testing Library v14.1.2, ESLint v8.57.1
- Backend: Pytest v8.4.1, Black v24.8.0, isort v5.13.2, Flake8 v7.0.0
- CI/CD: GitHub Actions with submodule support and matrix testing
- Database: SQLite with automated setup in CI environment
- Coverage: v8 provider for frontend, XML reporting for backend
- Security: Bandit v1.7.5 for Python, npm audit for Node.js
Release Date: January 2025
Version: 1.3.0
Status: Production Ready with Comprehensive Testing
π Key Achievements
Testing Excellence
- 100% Test Coverage: All critical paths covered with...
Version 1.2.0 - New Relic Monitoring & Observability
Version 1.2.0 - New Relic Monitoring & Observability
π― New Features
Application Performance Monitoring (APM)
- Backend APM: Full New Relic APM integration for FastAPI backend
- Frontend RUM: Real User Monitoring for React frontend
- Distributed Tracing: End-to-end request tracing across frontend and backend
- Custom Metrics: Business-specific metrics for scripture usage patterns
Observability Enhancements
- Error Tracking: Comprehensive error monitoring and alerting
- Performance Monitoring: Response time tracking and optimization insights
- User Experience Metrics: Frontend performance and user interaction tracking
- Database Monitoring: SQLite query performance and connection health
π§ Technical Implementation
Backend Monitoring (FastAPI)
- New Relic Agent: Python agent integration with explicit initialization
- Package Management: Updated to use
uvfor dependency management - Environment Configuration: New Relic license key and app name configuration
- Health Check Enhancement: Database warm-up and connection verification
Frontend Monitoring (React)
- Browser Agent: New Relic Browser RUM agent integration
- Custom Events: Track user interactions and feature usage
- Performance Metrics: Core Web Vitals and page load performance
- Error Boundaries: React error boundary integration for error tracking
Synthetic Monitoring
- GitHub Actions: Automated monitoring with 15-minute intervals
- Warm-up Strategy: 5-minute warm-up period to handle Render cold starts
- Health Checks: Comprehensive endpoint testing and validation
- Performance Tracking: Response time monitoring and alerting
π Monitoring Features
Backend Metrics
- API Response Times: p50, p95, p99 percentile tracking
- Database Performance: Query execution times and connection health
- Error Rates: Endpoint-specific error tracking and alerting
- Request Volume: Traffic patterns and usage analytics
Frontend Metrics
- Page Load Performance: Core Web Vitals (LCP, FID, CLS)
- User Interactions: Scripture reading, search, and navigation patterns
- Error Tracking: JavaScript errors and React component failures
- Custom Events: Feature usage and user journey tracking
Business Intelligence
- Scripture Usage: Most popular books, chapters, and search terms
- User Behavior: Reading patterns and feature adoption
- Performance Impact: Cold start effects and optimization opportunities
- Reliability Metrics: Uptime and error rate tracking
π Deployment & Configuration
Environment Variables
-
Backend (Render):
NEW_RELIC_LICENSE_KEY: New Relic license keyNEW_RELIC_APP_NAME: "Fast Scriptures Backend"NEW_RELIC_DISTRIBUTED_TRACING_ENABLED: "true"NEW_RELIC_LOG_ENABLED: "true"
-
Frontend (Render):
VITE_API_URL: Backend API URL- New Relic Browser agent configuration in
index.html
Package Updates
- Backend: Added
newrelic>=10.15.0topyproject.toml - Frontend: New Relic Browser agent script in
index.html - Dependencies: Updated to use
uvfor Python package management
π Observability Benefits
Performance Insights
- Cold Start Detection: Monitor Render's cold start impact on performance
- Response Time Optimization: Identify slow endpoints and optimize queries
- User Experience: Track frontend performance and user satisfaction
- Resource Utilization: Monitor memory and CPU usage patterns
Operational Excellence
- Proactive Monitoring: Early detection of performance degradation
- Error Alerting: Immediate notification of application failures
- Capacity Planning: Traffic pattern analysis for scaling decisions
- Debugging Support: Detailed traces for troubleshooting issues
Business Intelligence
- Feature Usage: Track which scripture features are most popular
- User Engagement: Monitor reading patterns and session duration
- Search Analytics: Understand user search behavior and preferences
- Performance Impact: Correlate performance with user satisfaction
π Migration & Setup
Backend Setup
- Add Environment Variables: Configure New Relic license key and app name in Render
- Redeploy: Trigger new deployment to activate New Relic agent
- Verify Integration: Check New Relic dashboard for agent connectivity
- Monitor Performance: Review initial metrics and traces
Frontend Setup
- Browser Agent: New Relic Browser agent automatically loads from
index.html - Custom Events: Implement custom event tracking for user interactions
- Error Boundaries: React error boundaries capture and report errors
- Performance Monitoring: Core Web Vitals automatically tracked
Synthetic Monitoring
- GitHub Actions: Automated monitoring runs every 15 minutes
- Warm-up Strategy: 5-minute warm-up period handles cold starts
- Health Checks: Comprehensive endpoint testing and validation
- Alerting: Configure alerts for performance degradation
π Monitoring Checklist
Backend Monitoring
- New Relic APM agent integration
- Environment variable configuration
- Health check endpoint enhancement
- Database connection monitoring
- API endpoint performance tracking
- Error rate monitoring
Frontend Monitoring
- New Relic Browser RUM agent
- Custom event tracking
- Error boundary integration
- Performance metrics collection
- User interaction tracking
- Core Web Vitals monitoring
Synthetic Monitoring
- GitHub Actions workflow
- Warm-up strategy implementation
- Health check automation
- Performance baseline establishment
- Alert configuration
π― Next Steps
Phase 2: Advanced Observability
- Custom Dashboards: Create business-specific monitoring dashboards
- Alerting Rules: Configure intelligent alerting based on business metrics
- Performance Budgets: Set and monitor performance budgets
- User Journey Tracking: End-to-end user experience monitoring
Phase 3: SRE Practices
- SLI/SLO Definition: Define service level indicators and objectives
- Error Budget Tracking: Monitor and manage error budgets
- Incident Response: Automated incident detection and response
- Capacity Planning: Data-driven scaling decisions
Breaking Changes
- None - all monitoring features are additive and non-breaking
Migration Notes
- New Relic integration requires environment variable configuration
- Existing functionality remains unchanged
- Monitoring data collection begins immediately after deployment
- No user-facing changes or API modifications
Technical Details
- Backend: New Relic Python agent v10.15.0+ with explicit initialization
- Frontend: New Relic Browser agent with custom event tracking
- Synthetic: GitHub Actions with 15-minute monitoring intervals
- Database: Enhanced health checks with warm-up verification
- Deployment: Render environment variable configuration required
Release Date: January 2025
Version: 1.2.0
Status: Production Ready with Monitoring
Enhanced Random Scripture & UI Improvements
Version 1.1.0 - Enhanced Random Scripture & UI Improvements
π― New Features
Random Scripture Enhancement
- LDS Volume Control: Added
include_ldsparameter to random scripture endpoint - Smart Defaults: Random scripture now defaults to OT/NT only (non-LDS volumes)
- Flexible API: Backend supports
include_lds=trueto include all volumes (BoM, D&C, PGP) - Frontend Integration: Frontend now includes LDS content by default for random scriptures
π¨ UI/UX Improvements
Loading States
- Separate Loading States: Random and Search now have independent loading indicators
- Better User Feedback: Improved loading state management for better user experience
- Performance Optimization: Isolated loading states prevent UI conflicts
Visual Enhancements
- Cleaner Chapter Display: Removed borders around chapter contents for more text visibility
- Updated Screenshots: Added comprehensive application screenshots to README
- Custom Favicon: New book-themed favicon with lightning bolt design
Mobile Experience
- More Content: Optimized spacing to show more scripture text on mobile screens
- Better Navigation: Improved chapter navigation with Previous/Next buttons
π§ Technical Improvements
Backend Enhancements
- Database Service: Enhanced
get_random_scripture()with volume filtering - API Flexibility: New query parameter support for LDS content control
- Backward Compatibility: Maintains existing API behavior while adding new features
Frontend Updates
- API Integration: Updated frontend to use new
include_ldsparameter - Type Safety: Improved TypeScript integration with new API parameters
- Error Handling: Better error handling for random scripture requests
π± Responsive Design
- Mobile-First: Continued focus on mobile usability
- Screen Optimization: Better use of available screen space
- Touch-Friendly: Improved touch targets and navigation
π Deployment Ready
- Production Ready: All changes tested and ready for deployment
- API Documentation: Updated API docs reflect new parameters
- Performance: Maintained fast loading times with new features
Breaking Changes
- None - all changes are backward compatible
Migration Notes
- Existing API calls will continue to work as before
- New
include_ldsparameter is optional and defaults tofalse - Frontend behavior changed to include LDS content by default for random scriptures
Technical Details
- Database: Enhanced random scripture queries with volume filtering
- API: New optional
include_ldsquery parameter on/api/scriptures/random - Frontend: Updated API service calls to include LDS content by default
Initial Release
Version 1.0.0 - Initial Release
Features
- π Complete scripture reading with navigation tree
- π Advanced search with volume filtering and highlighting
- π² Random scripture generator
- π± Responsive design for mobile and desktop
- β‘ Fast navigation with Previous/Next chapter buttons
- π― LDS volume toggle (OT/NT vs All volumes)
- π API documentation access
- π Deployed and ready to use
Technical
- FastAPI backend with SQLite database
- React frontend with TypeScript
- Responsive Tailwind CSS styling
- Auto-scroll to content on mobile
- Search term highlighting
- Volume-based search filtering