Sangeetha-Grantha

Metadata Value
Status Active
Version 1.1.0
Last Updated 2026-09-10
Author Sangeetha Grantha Team
Document Type Evidence record

Frontend-Backend API Coverage Report


[!NOTE] Historical evidence: results, counts, commands, and observations below belong to the original work described here. The editorial update date is not a new test or corpus verification. For present behavior, use current quality checks.


Generated: 2025-01-27
Scope: Complete mapping of UI operations to backend API endpoints
Status: Comprehensive analysis with identified gaps


Executive Summary

This report provides a comprehensive mapping between frontend UI operations and backend API endpoints in the Sangeetha Grantha admin web application. The analysis covers all 6 main pages and their associated operations, comparing them against available backend endpoints.

Key Findings


1. Dashboard Page (/)

UI Operations

Operation Frontend Function Status
Load dashboard statistics getDashboardStats() ✅ Supported
Load recent audit logs getAuditLogs() ✅ Supported
Navigate to Krithis list Navigation only N/A
Navigate to Reference Data Navigation only N/A
Navigate to new Krithi editor Navigation only N/A

Backend Endpoints Used

Coverage Status: ✅ 100% Complete


2. Krithi List Page (/krithis)

UI Operations

Operation Frontend Function Status
Search krithis searchKrithis(query) ✅ Supported
Navigate to krithi editor Navigation only N/A
Navigate to new krithi Navigation only N/A
Filter krithis (UI only) Client-side filtering N/A
Pagination (UI only) Client-side pagination N/A

Backend Endpoints Used

Coverage Status: ✅ 100% Complete

Note: The UI shows pagination controls but doesn’t implement pagination API calls yet. The backend supports pagination via page and pageSize query parameters.


3. Krithi Editor Page (/krithis/new, /krithis/:id)

UI Operations - Metadata Tab

Operation Frontend Function Status
Load krithi details getKrithi(id) ✅ Supported
Create new krithi createKrithi(payload) ✅ Supported
Update krithi updateKrithi(id, payload) ✅ Supported
Load reference data (composers, ragas, etc.) getComposers(), getRagas(), etc. ✅ Supported
Transliterate content transliterateContent(krithiId, content, ...) ✅ Supported
Validate krithi Not implemented in UI ⚠️ Backend stub exists

UI Operations - Structure Tab

Operation Frontend Function Status
Load krithi sections getKrithiSections(krithiId) ✅ Supported
Save krithi sections saveKrithiSections(krithiId, sections) ✅ Supported

UI Operations - Lyrics Tab

Operation Frontend Function Status
Load lyric variants getKrithiLyricVariants(krithiId) ✅ Supported
Create lyric variant createLyricVariant(krithiId, payload) MISSING
Update lyric variant updateLyricVariant(variantId, payload) MISSING
Save variant sections saveVariantSections(variantId, sections) MISSING

UI Operations - Tags Tab

Operation Frontend Function Status
Load krithi tags getKrithiTags(krithiId) ✅ Supported
Load all tags getAllTags() ✅ Supported
Tag management (via Tags page) See Tags Page section ✅ Supported

UI Operations - Notation Tab

Operation Frontend Function Status
Load notation getAdminKrithiNotation(krithiId, form) ✅ Supported
Create notation variant createNotationVariant(krithiId, payload) ✅ Supported
Update notation variant updateNotationVariant(variantId, payload) ✅ Supported
Delete notation variant deleteNotationVariant(variantId) ✅ Supported
Create notation row createNotationRow(variantId, payload) ✅ Supported
Update notation row updateNotationRow(rowId, payload) ✅ Supported
Delete notation row deleteNotationRow(rowId) ✅ Supported

UI Operations - Audit Tab

Operation Frontend Function Status
Load audit logs for krithi getKrithiAuditLogs(krithiId) ✅ Supported

Backend Endpoints Used

Metadata Operations

Structure Operations

Lyrics Operations

Tags Operations

Notation Operations

Audit Operations

Coverage Status: ⚠️ 93% Complete (3 Missing Endpoints)

Critical Gaps:

  1. POST /v1/admin/krithis/{id}/variants - Create lyric variant
  2. PUT /v1/admin/variants/{variantId} - Update lyric variant
  3. POST /v1/admin/variants/{variantId}/sections - Save variant sections

Impact: Users cannot create, update, or save sections for lyric variants through the UI. The frontend code attempts to call these endpoints, but they do not exist in the backend.


4. Reference Data Page (/reference)

UI Operations

Operation Frontend Function Status
Load reference statistics getReferenceStats() ✅ Supported
Load composers getComposers() ✅ Supported
Create composer createComposer(payload) ✅ Supported
Update composer updateComposer(id, payload) ✅ Supported
Delete composer deleteComposer(id) ✅ Supported
Load ragas getRagas() ✅ Supported
Create raga createRaga(payload) ✅ Supported
Update raga updateRaga(id, payload) ✅ Supported
Delete raga deleteRaga(id) ✅ Supported
Load talas getTalas() ✅ Supported
Create tala createTala(payload) ✅ Supported
Update tala updateTala(id, payload) ✅ Supported
Delete tala deleteTala(id) ✅ Supported
Load temples getTemples() ✅ Supported
Create temple createTemple(payload) ✅ Supported
Update temple updateTemple(id, payload) ✅ Supported
Delete temple deleteTemple(id) ✅ Supported
Load deities getDeities() ✅ Supported

Backend Endpoints Used

Reference Statistics

Composers CRUD

Ragas CRUD

Talas CRUD

Temples CRUD

Deities (Read-only)

Coverage Status: ✅ 100% Complete

Note: The frontend uses public endpoints (/v1/composers, /v1/ragas, etc.) for reading, which is appropriate. Admin endpoints are used for mutations.


5. Imports Page (/imports)

UI Operations

Operation Frontend Function Status
Load imports list getImports(status?) ✅ Supported
Scrape content from URL scrapeContent(url) ✅ Supported
Review import reviewImport(id, request) ✅ Supported

Backend Endpoints Used

Coverage Status: ✅ 100% Complete


6. Tags Page (/tags)

UI Operations

Operation Frontend Function Status
Load all tags getAllTags() ✅ Supported
Create tag createTag(payload) ✅ Supported
Update tag updateTag(id, payload) ✅ Supported
Delete tag deleteTag(id) ✅ Supported
Search tags (client-side) Client-side filtering N/A

Backend Endpoints Used

Coverage Status: ✅ 100% Complete


Summary of Missing Endpoints

Critical Gaps (3 endpoints)

These endpoints are called by the frontend but do not exist in the backend:

  1. POST /v1/admin/krithis/{id}/variants
    • Purpose: Create a new lyric variant for a krithi
    • Frontend Usage: KrithiEditor.tsx - Lyrics tab
    • Impact: Users cannot create new lyric variants
    • Recommendation: Implement in AdminKrithiRoutes.kt or create a new AdminLyricVariantRoutes.kt
  2. PUT /v1/admin/variants/{variantId}
    • Purpose: Update an existing lyric variant
    • Frontend Usage: KrithiEditor.tsx - Lyrics tab
    • Impact: Users cannot update existing lyric variants
    • Recommendation: Implement in AdminKrithiRoutes.kt or create a new AdminLyricVariantRoutes.kt
  3. POST /v1/admin/variants/{variantId}/sections
    • Purpose: Save sections (lyrics) for a lyric variant
    • Frontend Usage: KrithiEditor.tsx - Lyrics tab
    • Impact: Users cannot save lyrics for variant sections
    • Recommendation: Implement in AdminKrithiRoutes.kt or create a new AdminLyricVariantRoutes.kt

Implementation Notes

The frontend expects these endpoints to follow a similar pattern to notation variants:

The backend already has:

Action Required: Implement the three missing endpoints in the backend to complete lyric variant management functionality.


Additional Observations

1. Pagination

2. Filtering

3. Validation Endpoint

4. Reference Data Endpoints

5. Audit Logs


Recommendations

High Priority

  1. Implement missing lyric variant endpoints (3 endpoints)
    • This is blocking full functionality of the Lyrics tab in KrithiEditor
    • Users cannot create or update lyric variants currently

Medium Priority

  1. Implement pagination in KrithiList
    • Backend supports it, frontend should use it for better UX
  2. Implement server-side filtering
    • Move filtering logic from client to server for better performance

Low Priority

  1. Complete validation endpoint implementation
    • Either implement full validation logic or remove the stub
  2. Add error handling for missing endpoints
    • Frontend should gracefully handle 404s for missing endpoints

Appendix: Complete Endpoint Inventory

Health & Status

Public Krithi Endpoints

Admin Krithi Endpoints

Admin Notation Endpoints

Public Reference Data Endpoints

Admin Reference Data Endpoints

Admin Dashboard Endpoints

Audit Endpoints

Import Endpoints


Conclusion

The frontend-backend API coverage is 93% complete, with only 3 critical endpoints missing for lyric variant management. All other major functionality is fully supported. The missing endpoints should be implemented to complete the Lyrics tab functionality in the KrithiEditor.

Overall Assessment:Good - Minor gaps that can be addressed quickly.


Report generated by automated analysis of frontend pages and backend route definitions.


Section index · Documentation home · Feature status