Skip to content

Releases: willwillis/fast-api-scripture-app

Fast Scriptures v1.4.0

18 Nov 05:10

Choose a tag to compare

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

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
  • 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 @tailwind directives to @import "tailwindcss"
  • Converted tailwind.config.js to CSS-based @theme configuration
  • 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

25 Jul 04:03

Choose a tag to compare

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: uv for Python, npm for 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

  1. Testing Framework: Vitest with React Testing Library
  2. ESLint Configuration: Modern flat config with TypeScript support
  3. TypeScript Update: Version 5.3.3 with full compatibility
  4. Coverage Reporting: Automated coverage with v8 provider
  5. CI Integration: GitHub Actions with automated testing

Backend Setup

  1. Testing Framework: Pytest with async support and coverage
  2. Code Quality: Black, isort, and Flake8 integration
  3. Database Testing: Real database integration in CI
  4. Multi-Version Testing: Python 3.9-3.12 compatibility
  5. Security Scanning: Bandit integration for security analysis

CI/CD Pipeline

  1. GitHub Actions: Comprehensive workflow with multiple jobs
  2. Submodule Support: Proper database access in CI
  3. Quality Gates: Automated quality enforcement
  4. Parallel Testing: Matrix testing across environments
  5. 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.json to eslint.config.js flat 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...
Read more

Version 1.2.0 - New Relic Monitoring & Observability

25 Jul 02:37

Choose a tag to compare

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 uv for 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 key
    • NEW_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.0 to pyproject.toml
  • Frontend: New Relic Browser agent script in index.html
  • Dependencies: Updated to use uv for 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

  1. Add Environment Variables: Configure New Relic license key and app name in Render
  2. Redeploy: Trigger new deployment to activate New Relic agent
  3. Verify Integration: Check New Relic dashboard for agent connectivity
  4. Monitor Performance: Review initial metrics and traces

Frontend Setup

  1. Browser Agent: New Relic Browser agent automatically loads from index.html
  2. Custom Events: Implement custom event tracking for user interactions
  3. Error Boundaries: React error boundaries capture and report errors
  4. Performance Monitoring: Core Web Vitals automatically tracked

Synthetic Monitoring

  1. GitHub Actions: Automated monitoring runs every 15 minutes
  2. Warm-up Strategy: 5-minute warm-up period handles cold starts
  3. Health Checks: Comprehensive endpoint testing and validation
  4. 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

23 Jul 03:12

Choose a tag to compare

Version 1.1.0 - Enhanced Random Scripture & UI Improvements

🎯 New Features

Random Scripture Enhancement

  • LDS Volume Control: Added include_lds parameter to random scripture endpoint
  • Smart Defaults: Random scripture now defaults to OT/NT only (non-LDS volumes)
  • Flexible API: Backend supports include_lds=true to 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_lds parameter
  • 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_lds parameter is optional and defaults to false
  • 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_lds query parameter on /api/scriptures/random
  • Frontend: Updated API service calls to include LDS content by default

Initial Release

05 Jul 17:34

Choose a tag to compare

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