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.