Documentation Index
Fetch the complete documentation index at: https://foundry.awaaz.de/llms.txt
Use this file to discover all available pages before exploring further.
The Problem
At Awaaz.AI, our voice agents are powered by carefully crafted prompts β system instructions that define how an agent behaves on a call. Today, these prompts live in Google Docs and Drive folders. This creates real problems:- No version history you can actually use β Google Docs tracks character-level edits, not meaningful prompt versions. Rolling back to βthe version that worked well last Tuesdayβ is a nightmare.
- No structure β Prompts have variables like
{{user_name}},{{language}},{{loan_amount}}but thereβs no way to test them with real values without copy-pasting into a playground.
Your Mission
Build a Prompt Library β a full-stack web app where the team can:- Create and organize prompt templates with metadata
- Fill in variables and preview the rendered prompt
- Test prompts against an LLM and see the response instantly
- Track versions so we know what changed and when
Time Budget
You have 4 hours.Technical Requirements
Database Layer (PostgreSQL)
Design a schema that stores:Backend Layer
Build the following API endpoints: CRUDGET /promptsβ List all prompts (with filters: category, language, search by name)GET /prompts/:idβ Get a single prompt with its version historyPOST /promptsβ Create a new promptPUT /prompts/:idβ Update a prompt (auto-creates a new version)DELETE /prompts/:idβ Soft delete (setis_active = false)
POST /prompts/:id/renderβ Accept variable values, return the rendered prompt with all{{variables}}filled inPOST /prompts/:id/testβ Render the prompt, send it to an LLM API, return the modelβs response
GET /prompts/:id/versionsβ List all versions of a promptGET /prompts/:id/versions/:versionβ Get a specific versionPOST /prompts/:id/rollback/:versionβ Rollback to a previous version (creates a new version with the old body)
Frontend Layer (React or HTML + JS)
Build a single-page app with these views: Prompt List Page- Searchable, filterable table/grid of all prompts
- Show name, category, language, version number, last updated
- Filter by category and language
- Text editor for the prompt template body
- Auto-detect
{{variables}}from the template and show input fields for each - Live preview panel showing the rendered prompt as you type variable values
- βSaveβ button that creates a new version with an optional change note
- Fill in variables β click βTest with LLMβ β see the modelβs response
- Show latency and token count of the LLM response
- List of past versions with timestamps and change notes
- Click to view any version
- βRollback to this versionβ button
Example Prompt Template
Hereβs what a prompt in the library might look like: Name: Loan Reminder β Hindi Category: Collections Language: hi Template:Constraints & Ground Rules
| Constraint | Requirement |
|---|---|
| Backend | Python + FastAPI/Django |
| Database | PostgreSQL |
| Frontend | React or Angular |
| LLM API | Use OpenAI or Gemini API for the test feature (API key will be provided) |
| Auth | Skip authentication |
| Deployment | Run locally. No need to deploy. |
Evaluation Criteria
| Criteria | Weight | What Weβre Looking For |
|---|---|---|
| Working CRUD | 25% | Can you create, read, update, and list prompts end-to-end? |
| Variable Rendering | 20% | Does the template engine correctly fill in {{variables}}? Live preview works? |
| LLM Test Feature | 20% | Can you render a prompt and get an LLM response from the UI? |
| Version History | 15% | Are versions tracked? Can you view and rollback? |
| UI/UX | 10% | Is the interface clean and usable? (Doesnβt need to be pretty β needs to be functional) |
| Code Quality | 10% | Clean structure, error handling, separation of concerns |
Bonus Challenges π
- Diff View: Show a side-by-side diff between two prompt versions (use a library like
diff-match-patchorjsdiff) - Prompt Duplication: βClone this promptβ button to quickly create a variant (e.g., same prompt but for a different language)
- Tag System: Add freeform tags to prompts for more flexible organization
- Response Rating: After testing with an LLM, let the user rate the response (π/π) and store it β helps track which prompt versions perform best
- Export: Export a prompt as JSON or Markdown for sharing
π Hackathon Prize
The winner receives a USD $20 one-time credit towards a course or book of their choice.