From clickable prototype to a live corporate training platform
How Amity Training Solutions got a secure platform where companies book training against a credit wallet, and pay GST-ready invoices online.
A polished prototype, but nothing was saved, the login was fake, and it could not bill a single client.
Filari built the backend, security, billing and reporting, keeping the approved design.
Credit wallets, GST-ready invoices and online payments, live in about two weeks. Confirm timeline
Add an .mp4 path or YouTube link to data-video on the hero.
What Filari did for Amity
Amity Training Solutions sells corporate training to Indian companies through prepaid training credits. Filari took Amity's front-end prototype, which lost all data on refresh, and turned it into a secure, live platform where companies book training against a real credit wallet, Amity approves and delivers it, and the platform raises GST-compliant invoices and collects payment online.
Meet the client
Amity Training Solutions is an Indian corporate training provider running leadership, behavioural, functional and technical programmes through a network of more than 100 expert trainers. Its clients are HR and L&D teams who need to plan training, stay within budget and prove results.
Key takeaways
- Filari turned Amity's clickable prototype into a live B2B training platform in about two weeks. Confirm
- Every credit movement is recorded, so a company's balance can always be traced to the booking that changed it.
- Prices are calculated on the server, so a client cannot change what they are charged from their browser.
- Invoices split GST into CGST, SGST or IGST, and clients can pay online through Razorpay.
- The platform ships with 125 automated tests and 16 acceptance suites run before every release.
A prototype that looked finished, with nothing behind it
A design team had built a polished prototype of Amity's training-credit idea. Sales demos went well. When our team opened the code, we found only the front of a building: no database, no real login and no way to bill. Almost the whole app lived in one 10,000-line file, so a small change on one screen kept breaking another.
Nothing was saved: a booking disappeared on page refresh.
Anyone could be an admin: two fixed demo passwords and a browser-side admin switch.
It could not bill: flat 18% GST, no invoice, email or payment.
What Amity wanted
A platform real clients can log in to, with data kept safe and separate.
Pricing and billing that are correct to the paisa.
Proof of results: assessments, certificates, manager feedback.
Keep the design clients had already seen in demos.
Six screens, two workspaces, one system
Companies work in their own workspace: dashboard, catalogue, requests, assessments, certificates and billing. Amity runs everything from the provider console. Hover over a screen to scroll through it.






Screens from the live platform. Contact names and emails are blurred.
Six steps, each one safe to undo
We audited first, kept the approved design, and shipped in small releases with a backup and a one-minute rollback every time.
-
01
Understand
Duration: confirmAudited every line of the prototype in plain English.
Amity got: an honest picture before building.
-
02
Design the foundation
Duration: confirmDesigned the database, credit ledger and security model around the existing screens.
Amity got: a plan that kept the approved design.
-
03
Build
Duration: confirmBuilt the server, wired every screen to real data, added invoices, emails, payments and reports.
Amity got: a working product, not a demo.
-
04
Test
OngoingAutomated tests for pricing and money maths plus acceptance checks per business rule.
Amity got: a quote always equals the charge.
-
05
Launch
Duration: confirmTest server, then production, with backup and one-minute rollback per release.
Amity got: a live platform without disturbing other sites on the server.
-
06
Grow
OngoingSmall reversible releases: discounts, company lifecycle, email editor, invoice and payment manager.
Amity got: new features every few days, each safe to undo.
Where AI helped, and where people led
Tools to confirmHuman-led, AI-accelerated. Our team made every design and architecture decision and reviewed every line. The AI tools used and what they sped up will be listed here once confirmed.
Eight capabilities that make the credit model real
Every credit granted, reserved, used, refunded or expired is its own entry, and the balance is their sum. Credits are held the moment a company books.
Helps: HR/L&D teams, Amity finance
Pick programme, mode, audience, headcount and dates and see the credit price live. The final price always comes from the server. Book several programmes in one cart.
Helps: company L&D teams
One approval queue, up to two reschedules per training, and discounts with a reason the client can see. Every step is logged.
Helps: Amity operations
Monthly invoices for delivered training only, CGST/SGST or IGST split, PDF by email, and payment via Razorpay or recorded bank transfer.
Helps: client procurement, Amity finance
Pre/post assessment uploads become score improvement, bands and coverage. Blank is never zero, and every figure traces to a file.
Helps: HR leaders
100+ trainer profiles tagged by audience level and category power a recommendation list on each booking.
Helps: L&D teams
Clients, registrations, programmes, price book, credit grants, billing runs, email templates and a tamper-evident audit log in five menus.
Helps: Amity staff
All emails share one layout, edited in a rich-text editor, with required parts like login links protected.
Helps: Amity ops
The credit model is now a system, not a slide
The credit model is no longer a sales slide. It is a system Amity's clients log in to, book against and pay through, with an audit trail and reports they can show their leadership.
Prototype vs live platform
Build metrics, counted from the code on 30 Sep 2026
For tech teamsUnder the hood
Stack, architecture, engineering decisions and build metrics
Stack by layer
Frontend
React 19 + TypeScript + Vite
Kept the approved UI
TanStack Query
Typed hooks and caching for every endpoint
API
Node.js 22 + Fastify 5
Fast, schema-first
Zod
Every request validated before logic
Data
PostgreSQL 17
Transactions and row locks for money
Drizzle ORM
Typed, SQL-first, additive migrations
Security
Argon2id
Current password-hashing best practice (OWASP password storage guidance)
JWT + rotating refresh tokens
Stolen tokens detected and revoked
Billing
PDFKit
Server-generated GST invoices and certificates
Razorpay (gateway registry)
Webhooks + 10-minute reconciliation; more gateways pluggable
Infra & testing
Docker Compose + Nginx
Isolated DB network, headers, rate limits, one-minute rollback
Node test runner, Playwright, Python acceptance suites
Money maths and business rules verified before release
Architecture
The browser talks only to Nginx, which serves the React app and forwards /api to Fastify. Fastify owns pricing, wallet, billing and permissions and talks to PostgreSQL on a private network. Partner content, email and Razorpay are called only from the server.
Engineering decisions
| Decision | Why | Impact |
|---|---|---|
| Credits stored as a ledger | A stored balance can drift; a summed history cannot | Every credit traceable to its booking |
| Money in integer paise | Floating point breaks reconciliation | Invoices correct to the paisa |
| Row locks on spends | Concurrent bookings could double-spend | No credit spent twice |
| Hash-chained audit log | History must be tamper-evident | Edits to the past are detectable |
| Server-side proxy for partner API | Keys in a JS bundle are public | Key never shipped; 10-min cache roughly halves payloads |
| Additive migrations + per-release backup and rollback | Shared production server | About one-minute rollback, no data loss |
Build metrics · counted from the repository
Automated backups and monitoring, CI running every test on every change, credit-expiry reminders and per-client pricing. Confirm
Questions buyers ask us
It depends on what is missing. For Amity, the screens were ready but the backend, security and billing were not, and Filari had a first version live in about two weeks Confirm. A prototype with no clear specification usually takes two to four months.
Yes. Filari kept Amity's approved screens and flows and built the database, server and security behind them. Clients saw the same product they had been shown in demos, now with real data. Screens were redesigned only where the prototype blocked real use.
A company buys a pool of training credits. Each booking reserves credits based on headcount, duration, delivery mode and seniority. Credits become used when the training is delivered, and used credits are invoiced monthly. Declined bookings return their credits straight away.
Prices are calculated only on the server, so nothing typed in the browser can change them. Money is stored in paise to avoid rounding errors, each training can appear on only one invoice, and pricing rules are covered by automated tests run before every release.
Yes. Invoices split GST into CGST and SGST for clients in the same state, or IGST for clients elsewhere, and carry the SAC code and GSTIN. They are generated as PDFs, emailed to the billing contact, and can be paid online.
Amity's platform uses Razorpay today, in test or live mode. The payment module is built so Stripe, PayU, Paytm, CCAvenue or PayPal can be added without changing the rest of the system.
The platform compares pre- and post-training assessment scores for each learner, shows average improvement and score bands, and adds manager feedback on whether skills are used at work. Every figure comes from an uploaded file, so it can always be checked.
Have a prototype that needs to become a real product?
Tell us what you have today. We will show you what is missing and how long it takes.
More projects like this one
Corporate Training Website: 980 Programmes, One Admin
A clean corporate catalog, multi-category programme search, instant quote requests, and an integrated team management dashboard.
Study-Abroad Website to a Complete Digital Student Platform
CMS, Student Management, Inquiry Management, Payments and My Account connected into one study-abroad platform, delivered in 2–3 weeks.
Education
Admission Management Platform for Executive Education
One platform for every admission: no-code application forms, interviews, scholarships, offer letters, online fees and LeadSquared sync.

