Rhythm Bhetwal

Rhythm Bhetwal

Backend Developer

National Institute of Technology MeghalayaMeghalaya, Indiafull_time, internship, freelance
Open to roles
REST APIsNode.jsSystem DesignPython
EXPIRY ALERT ' 26

EXPIRY ALERT ' 26

ExpiryGuard is an enterprise-grade compliance and renewability management system designed to automatically monitor and organize critical documents, contracts, certificates, and permits using AI Document Intelligence. 1. AI DOCUMENT INTELLIGENCE & AUTO PRE-FILLING - Drag & Drop Upload: Users can drag and drop compliance documents (PDFs or Images) to parse metadata automatically. - Intelligent Multi-Step Loader: An interactive, progress-driven loader showcases real-time progress steps during document parsing. - Low-Confidence Highlights: Visual indicators (orange highlighting and warnings) call attention to extracted fields with confidence ratings below 70% for quick verification. - Smart Warnings & Duplicate Detection: Automatically flags potential duplicates by cross-referencing document numbers or vendors with the existing database. - Heuristic Fallback: Seamless offline capability that falls back to smart filename-based heuristic parsing if the Gemini API Key is missing. 2. DYNAMIC COMPLIANCE DASHBOARD - KPI Highlights: Real-time overview of total active, expiring, expired, and critical records. - Urgency & Distribution Charts: Data visualizations using Recharts displaying upcoming expirations (bar charts) and category breakdown (doughnut charts). - Real-time Audit logs & Warnings: Live activity feed detailing all actions taken and alerts for immediate renewals. 3. INTERACTIVE EXPIRY CALENDAR - Visual Timeline: Interactive calendar showing all compliance milestones. - Color-coded Urgency: Urgency tags dynamically styled (Critical: 0-7 days, Warning: 8-30 days, Active: 30+ days). 4. BULK EXPORT MODULES - Brand-Styled Spreadsheets: Generates Excel files using ExcelJS tailored with ExpiryGuard color-schemes. - Landscape Compliance Matrices: Renders landscape PDFs using PDFKit for executive printing. - Standard CSV Exporter: Offers lightweight CSV backups. 5. ENTERPRISE ROLE-BASED ACCESS CONTROL (RBAC) & JWT - Hierarchical Roles: VIEWER (read-only), MANAGER (record modifications), and ADMIN (full access, user role modifications). - Dynamic Roles Panel: Admins can dynamically change other users' roles directly from the dashboard. - Silent JWT Interceptor: Custom Axios middleware that intercepts expired 401 access tokens and requests refresh-tokens silently via HTTP-only cookies.The system comes pre-seeded with tata-steel themed corporate departments: * Administrator: - Email: rohan@tatasteel.com - Password: Password123! * Manager: - Email: priya@tatasteel.com - Password: Password123! * Viewer: - Email: amit@tatasteel.com - Password: Password123!

5 media files · expiryguard-ten.vercel.appView
BudgetPulse

BudgetPulse

Many students and first-time earners struggle to manage monthly budgets because most expense trackers only record spending after it happens. The key pain point is the lack of early warnings that help users avoid overspending before month-end. For example, a student with a monthly budget of Rs 20,000 may spend Rs 9,500 in the first 10 days without realizing they are on track to exceed their budget. This project addresses that gap by combining expense tracking, budget monitoring, spending forecasts, financial health scoring, recurring expense management, and alerts, transforming a passive expe Process I started by mapping out what a typical student actually needs to track money — not a generic ledger, but something that warns them before they overspend. So instead of building "add/view/delete expense" first, I designed the data model around a budget object from day one, so every feature could check against it. I built incrementally: core CRUD → budget logic → forecasting → health scoring → recurring expenses → undo/backup → multi-profile. Each layer was tested against the previous one so I wasn't bolting features onto a fragile base. For the forecast, I went with a simple linear projection (days passed ÷ days in month × spend) rather than anything fancier, because accuracy was less important than giving students an early, honest warning signal. Results The system correctly caught a budget breach the moment it happened — flagging a ₹50 overage instantly rather than after the fact — and the forecast engine predicted a ₹220 end-of-month overrun while only 25 of 30 days had passed, which matched my manual calculation exactly. The Financial Health Score dropped from 100 to 35 in direct response to the overspend, confirming the live-recalculation fix actually worked. Search/filter, recurring expense tracking, undo, and backup/restore all performed correctly in a full session test with no data corruption across profile switches. Reflection I'd write automated tests before building each feature, not after — the health score bug only surfaced because I was testing by hand, and a proper test suite would've caught the stale-state issue in minutes instead of a full refactor. I'd also design the forecasting model to be swappable (linear now, but pluggable for weighted/seasonal models later) instead of hardcoding the formula, so the app can grow more accurate without a rewrite.

15 media filesView
QueueCare - Real Time Patient Flow Optimization System

QueueCare - Real Time Patient Flow Optimization System

At City General Clinic, receptionists lost 90+ seconds per patient while juggling paper tokens and check-in tools and faced interruptions roughly every 15 minutes. Doctors sat idle ~4 min between patients from missed handoffs, costing 1+ hour of daily capacity. Once queued, patients couldn't be re-prioritized — an emergency or frail senior waited like any walk-in. Patients had zero visibility into wait times, so they hovered nearby instead of stepping away. Comparable clinics report up to 68.5% of visit time spent waiting. No affordable system offered real-time, fairness-aware queue visibility Process I started by mapping the clinic workflow firsthand watching receptionists juggle paper tokens, doctors signal manually for the next patient, and patients hover near the desk for updates. That observation, not assumptions, shaped the priority and visibility requirements. For real-time sync, I first let Socket.IO auto-negotiate transport, it added ~2s of connection delay, so I forced direct WebSocket transport instead. I also initially ran promotion logic on every read request, which caused DB lock contention and pushed response times to 1.2–2.5s; I fixed this by separating reads from writes and adding an in-memory pre-check before any transaction. Patient transfers were first built by cloning records, which broke portal links .I switched to in-place updates, preserving the original token Results QueueCare cut average patient wait time 42% (38→22 min), and API read latency 99% (1.8s→<10ms), with WebSocket setup dropping 97% (1.5s→45ms). Staff coordination overhead fell 83%, and front-desk status inquiries dropped 75% as patients tracked their own queue position. Room utilization reached 94%. All 15 documented edge-case scenarios, like concurrent registrations, emergency transfers, doctor downtime, and DB timeouts, were passed via automated and manual testing. No independent usability or satisfaction data has been collected yet. Reflection I'd validate the wait-time regression model against a second clinic's data earlier, since a single-clinic regression risks overfitting to one schedule and a doctor's pace. I'd also test accessibility features with actual visually impaired or non-native-language users instead of assuming ARIA compliance equals usability I never confirmed that with real people, and it's the gap I'd close next. Finally, I'd build the clinic-identifier field for multi-tenancy from the start rather than retrofitting it, since schema changes get riskier the more data depends on them.

26 media files · queuecare-neon.vercel.appView

This is Rhythm’s work on Wooble.

Build a profile that shows what you can do — and share it anywhere.

Build yours