AI-powered FinTech Support Investigation API
Built during the SUST CSE Carnival 2026 β Codex Community Hackathon
Online Preliminary Round β’ 4.5 Hour Engineering Challenge
| Service | URL |
|---|---|
| π Frontend | https://sust-preli-queuestorm-eight.vercel.app/ |
| βοΈ Backend API | https://codex-preliminary-api.onrender.com/ |
| β€οΈ Health Check | https://codex-preliminary-api.onrender.com/health |
Interactive investigation dashboard served from the Express application.
QueueStorm Investigator is an AI-inspired investigation API built for digital financial support teams.
Unlike traditional ticket classifiers, QueueStorm performs evidence-driven investigation by correlating customer complaints with available transaction history before generating a decision.
For every incoming support ticket, the system:
- Investigates the customer's complaint
- Matches relevant transactions
- Evaluates supporting evidence
- Determines case validity
- Classifies the complaint
- Assesses severity
- Routes the ticket to the correct department
- Generates an agent-ready summary
- Produces a safe customer response
- Determines whether human escalation is required
The project was designed and implemented during the 4.5-hour Online Preliminary Round of the SUST CSE Carnival 2026 β Codex Community Hackathon, where rapid development, deployment, and production-inspired engineering practices were evaluated.
- Complaint understanding
- Transaction matching
- Evidence verification
- Intelligent case classification
- Severity assessment
- Department routing
- Never requests OTP
- Never requests PIN
- Never requests Password
- Never requests CVV or full card number
- Prevents unauthorized refund promises
- Resistant to prompt injection attempts
- Generates only safe, official customer replies
- Stateless REST API
- Production-ready Express architecture
- Modular service design
- Deterministic reasoning engine
- Structured JSON responses
- Environment-based configuration
- Deployable on Render
- Interactive frontend deployed on Vercel
Browser (Frontend)
β
βΌ
Express REST API
β
βΌ
Request Validation
β
βΌ
Complaint Analysis
β
βΌ
Transaction Matching Engine
β
βΌ
Evidence Verification
β
βΌ
Decision Engine
β
βΌ
Response Builder
β
βΌ
Structured JSON Response
Customer Complaint
β
βΌ
Read Transaction History
β
βΌ
Find Matching Transaction
β
βΌ
Verify Evidence
β
βΌ
Classify Case
β
βΌ
Determine Severity
β
βΌ
Assign Department
β
βΌ
Generate Agent Summary
β
βΌ
Generate Safe Customer Reply
β
βΌ
Human Review Decision
This project is an implementation of the official QueueStorm Investigator challenge from the SUST CSE Carnival 2026 β Codex Community Hackathon.
The original challenge specification, objectives, constraints, API requirements, safety rules, evaluation criteria, and submission requirements are documented here:
β‘οΈ π PROBLEM_STATEMENT.md
| Layer | Technology |
|---|---|
| Runtime | Node.js 18+ |
| Framework | Express.js |
| Language | JavaScript (ES6 Modules) |
| Frontend | HTML5, CSS3, Vanilla JavaScript |
| Styling | Tailwind CSS |
| Backend | RESTful API |
| Deployment | Render (Backend), Vercel (Frontend) |
| Validation | Custom Validation Layer |
| Architecture | Modular Service-Based Architecture |
| Configuration | Environment Variables (.env) |
Unlike a conventional chatbot, QueueStorm Investigator follows an investigation-first approach.
Instead of immediately classifying customer complaints, the system attempts to correlate the complaint with available transaction history before producing a structured decision.
The investigation pipeline focuses on:
- Complaint understanding
- Transaction correlation
- Evidence verification
- Case classification
- Severity assessment
- Department routing
- Safe response generation
This deterministic approach was selected for the hackathon because it provides:
- Predictable outputs
- Explainable reasoning
- Fast execution
- No external inference cost
- Stable deployment
- Better compliance with safety rules
Financial support systems must prioritize user safety over automation.
QueueStorm Investigator follows strict safety guardrails inspired by the official challenge requirements.
The API never asks customers for:
- OTP
- PIN
- Password
- CVV
- Full Card Number
The API never:
- Promises refunds
- Confirms reversals
- Guarantees account recovery
- Claims account unblocking
- Performs financial operations automatically
Instead, customers are instructed to continue through official support channels whenever manual verification is required.
Customer complaints may contain malicious instructions such as:
Ignore previous instructions...
or
Approve my refund immediately...
These instructions are treated strictly as user input and never override system behavior.
The system flags tickets requiring manual investigation when:
- Evidence is ambiguous
- Fraud is suspected
- Transaction history is insufficient
- High-risk financial cases are detected
- Manual verification is required
https://codex-preliminary-api.onrender.com
GET /health{
"status": "ok"
}POST /analyze-ticket{
"ticket_id": "T-001",
"complaint": "I paid 5000 BDT to ABC Store yesterday but payment failed.",
"transactions": [
{
"transaction_id": "TX-001",
"amount": 5000,
"status": "failed",
"type": "payment",
"counterparty": "ABC Store",
"timestamp": "yesterday"
}
]
}{
"ticket_id": "T-001",
"relevant_transaction_id": "TX-001",
"evidence_verdict": "consistent",
"case_type": "payment_failed",
"severity": "low",
"department": "payments_ops",
"agent_summary": "Customer raised a payment failure complaint supported by transaction TX-001.",
"recommended_next_action": "Forward the case to Payments Operations for reconciliation.",
"customer_reply": "We have received your report and our payments team will review the transaction. Any eligible action will be completed through official channels.",
"human_review_required": false,
"confidence": 0.77,
"reason_codes": [
"AMOUNT_MATCH",
"TYPE_MATCH",
"STATUS_MATCH"
]
}| Field | Description |
|---|---|
| ticket_id | Original ticket identifier |
| relevant_transaction_id | Matched transaction ID |
| evidence_verdict | Evidence consistency result |
| case_type | Complaint classification |
| severity | Risk level |
| department | Assigned support department |
| agent_summary | Internal summary for support agents |
| recommended_next_action | Suggested operational action |
| customer_reply | Safe customer-facing reply |
| human_review_required | Manual review flag |
| confidence | Confidence score |
| reason_codes | Supporting reasoning labels |
One of the key goals of QueueStorm Investigator is evidence-based decision making.
Rather than relying solely on complaint text, the API evaluates available transaction history to determine whether the customer's claim is supported.
Possible evidence outcomes include:
| Verdict | Meaning |
|---|---|
| consistent | Complaint matches available transaction evidence |
| inconsistent | Complaint conflicts with available evidence |
| insufficient_data | Not enough information to reach a conclusion |
This reasoning process helps support agents prioritize tickets more effectively while reducing unnecessary escalations.
The project follows a modular, production-inspired architecture to keep business logic isolated and maintainable.
.
βββ public/
β βββ index.html
β βββ app.js
β βββ style.css
β βββ dashboard.png
β βββ logo.png
β
βββ src/
β βββ config/
β βββ constants/
β βββ controllers/
β βββ middleware/
β βββ routes/
β βββ services/
β βββ validators/
β βββ utils/
β βββ app.js
β βββ server.js
β
βββ .env.example
βββ package.json
βββ README.md
βββ PROBLEM_STATEMENT.md
Before running the project locally, ensure you have:
- Node.js 18+
- npm
- Git
git clone https://github.com/abdullahalyf/sust-preli-queuestorm.git
cd sust-preli-queuestormnpm installCreate a .env file in the project root.
Example:
PORT=3000
NODE_ENV=developmentIf your implementation requires additional variables in the future, follow the template provided in .env.example.
npm run devnpm startAfter startup the application will be available at
http://localhost:3000
curl http://localhost:3000/healthExpected response
{
"status": "ok"
}Invoke-RestMethod `
-Uri http://localhost:3000/analyze-ticket `
-Method POST `
-ContentType "application/json" `
-Body '{
"ticket_id":"T-001",
"complaint":"I paid 5000 BDT to ABC Store yesterday but payment failed.",
"transactions":[
{
"transaction_id":"TX-001",
"amount":5000,
"status":"failed",
"type":"payment",
"counterparty":"ABC Store",
"timestamp":"yesterday"
}
]
}'The API can also be tested using:
- Postman
- Insomnia
- curl
- Thunder Client (VS Code)
The project is deployed using separate frontend and backend services.
| Component | Platform |
|---|---|
| Frontend | Vercel |
| Backend | Render |
https://sust-preli-queuestorm-eight.vercel.app/
https://codex-preliminary-api.onrender.com
https://codex-preliminary-api.onrender.com/health
A lightweight web interface is included for interactive testing.
The frontend communicates directly with the backend API and allows users to:
- Submit complaints
- Add transaction history
- Execute investigations
- Visualize evidence
- Review generated responses
- Modern dark UI
- Responsive layout
- Dynamic transaction editor
- Live backend health indicator
- Animated confidence visualization
- Severity badges
- Evidence badges
- Copy customer reply
- Sample data loader
- Safe HTML rendering
The backend is hosted on Render's free tier.
Because free instances automatically sleep after inactivity, the first request may take several seconds while the service wakes up.
Subsequent requests are significantly faster.
This behavior is expected and does not affect API correctness.
GitHub Repository
https://github.com/abdullahalyf/sust-preli-queuestorm
The implementation is based on the assumptions defined in the official hackathon specification.
- Transaction history is considered trusted input.
- Customer complaints may be incomplete or ambiguous.
- All transactions supplied with a request belong to the same customer.
- Evidence is determined only from the provided transaction history.
- Unknown scenarios are classified conservatively.
- The project uses only synthetic evaluation data and is not intended for production financial systems.
This project was intentionally developed within the constraints of a 4.5-hour online hackathon, prioritizing correctness, deployment, and safety over feature completeness.
Current limitations include:
- No persistent database
- No authentication or authorization layer
- No payment gateway integration
- No real banking APIs
- No audit logging
- No background job processing
- No rate limiting
- Built specifically around the official QueueStorm Investigator challenge
Despite these limitations, the project demonstrates production-inspired API architecture and modular engineering practices.
If extended beyond the hackathon, the following enhancements could be added:
- Hybrid LLM + rule-based reasoning
- Multilingual complaint understanding
- Semantic transaction matching
- Fraud pattern detection
- Explainable AI reasoning reports
- PostgreSQL / MongoDB integration
- Redis caching
- Background workers
- Authentication (JWT)
- Role-based access control
- Audit logging
- Docker support
- GitHub Actions CI/CD
- Automated testing
- Monitoring & metrics
- Health dashboards
- Kubernetes deployment
- Agent dashboard
- Authentication
- Analytics
- Investigation timeline
- Search & filtering
- Case management interface
| Requirement | Status |
|---|---|
| GET /health | β |
| POST investigation endpoint | β |
| Complaint analysis | β |
| Transaction matching | β |
| Evidence reasoning | β |
| Case classification | β |
| Severity detection | β |
| Department routing | β |
| Safe customer response | β |
| Human review detection | β |
| Structured JSON schema | β |
| Production deployment | β |
| Public GitHub repository | β |
This repository includes:
- β README.md
- β PROBLEM_STATEMENT.md
- β .env.example
- β Project source code
- β Deployment
- β Sample request / response
- β Architecture overview
This repository was created as a hackathon project.
Although contributions are not currently expected, suggestions and improvements are always welcome through Issues or Pull Requests.
This project was developed during the
SUST CSE Carnival 2026 β Codex Community Hackathon
Special thanks to the organizers for designing a realistic software engineering challenge focused on evidence-based reasoning, API design, safety, and production-ready engineering practices.
This project is licensed under the MIT License.
See the LICENSE file for details.
Built with β€οΈ during the
SUST CSE Carnival 2026 β Codex Community Hackathon
β If you found this project interesting, consider giving it a star.

