Ayush Khaitan

Ayush Khaitan

Full-Stack Developer

SRM Institute of Science and TechnologyNew Delhifull_time, internship, freelanceOpen to roles

4 projects4 challenge entries1 reviewed

ReactMongoDBexpress.jsNode.js
MemoryVerse AI '26
Challenge entry · MemoryVerse AI '26 by Wooble

MemoryVerse AI '26

### 🌌 MemoryVerse AI - Overview MemoryVerse is a personal digital identity companion that ingests scattered professional documents (PDFs, Word files, text, images, and web links) and converts them into a structured, searchable, and connected personal timeline and network graph. --- ### 🔑 Test Credentials (Pre-seeded Demo) To explore the application with complete pre-seeded timeline and relationship graph data immediately, log in with: * **Demo URL**: https://memoryverse-1-9zap.onrender.com/ * **Username**: `alex_chen` * **Password**: `password` *Note: You can also use the "Sign Up" option to register a fresh profile and upload your own certificates, resumes, or project links to test the real-time AI ingestion.* --- ### 🛠️ Core Features & Verification 1. **AI Data Ingestion (Module 1)**: Supports drag-and-drop file uploader (PDF, DOCX, TXT, and Images via Multimodal OCR) and online links (GitHub, portfolios). 2. **Intelligent Categorization (Module 2)**: Classifies documents into Projects, Skills, Certifications, Internships, Achievements, and Academics. 3. **Relationship Engine (Module 3)**: Identifies implicit skill matching and explicit AI-extracted career connections. Renders them in an interactive network graph built with custom HTML5 Canvas physics (drag, zoom, pan, inspect). 4. **Digital Journey Timeline (Module 4)**: Organizes and groups milestones chronologically by year with interactive filtering. 5. **Smart Retrieval System (Module 5)**: - Translates natural queries ("Show my Python projects") into database filters. - Grounded RAG Chatbot answers career questions with links back to original uploaded documents. --- ### ⚙️ How to Run Locally 1. Clone the repository and install dependencies: ```bash npm run setup ``` 2. Configure local environment (`server/.env`): ```env PORT=5000 MONGO_URI=mongodb://localhost:27017/memoryverse GEMINI_API_KEY=your_gemini_api_key ``` 3. Run the database seed script: ```bash node server/seed.js ``` 4. Start both the client and server concurrently: ```bash npm run dev ``` 5. Open your browser at `http://localhost:5173`.

Reviewed
5 media files · memoryverse-1-9zap.onrender.comView
Build for Ambula '26
Challenge entry · Build for Ambula '26 by AMBULA

Build for Ambula '26

### Project Overview Ambula Care is a full-stack, mobile-friendly healthcare web platform built using Next.js App Router (React 19, TypeScript), MongoDB (Mongoose), and Vanilla CSS (custom glassmorphic theme). It enables patients to search for doctors, choose slots from a 7-day calendar, fill out health summaries, and book appointments in under 45 seconds. It also provides doctors with a secure JWT-authenticated dashboard to log in, review patient records, log consultation diagnosis notes/prescriptions, and block slots for leave. ### Setup & Installation 1. Install node packages: npm install 2. Seed the database with mock doctors, 7 days of available slots, and doctor credentials: npx tsx src/scripts/seed.ts 3. Run the development server: npm run dev 4. Open the site locally at: http://localhost:3000 ### Test Credentials (Local & Live Site) - **Email**: doctor@ambula.com - **Password**: password123 (This account is linked to Dr. Amit Sharma) ### Concurrency Lock & Double-Booking Prevention To ensure 100% reliability under concurrent booking requests, we implemented an atomic lock mechanism at the query level instead of using heavy database transactions: - When a patient selects a slot, a temporary Booking is written in a 'pending' state. - We then run an atomic find-and-update operation on the Slot collection requiring its status to be exactly 'available': Slot.findOneAndUpdate({ _id: slotId, status: "available" }, { status: "booked", bookingId }) - If two bookings arrive simultaneously, MongoDB processes them sequentially. The first succeeds and locks the slot, while the second query matches 0 documents and returns null. - The losing thread deletes its pending booking and returns a 409 Conflict to the user, advising them to select the next slot. - You can run the concurrency test script to verify this (sends 5 simultaneous requests for the exact same slot): npx tsx src/scripts/test-concurrency.ts ### Mandatory Submission Statement "We prevented double-booking at the backend using a single-document atomic update query (`findOneAndUpdate`) matching the slot ID and requiring its status to be exactly 'available'; because single-document updates are processed sequentially and atomic by design in MongoDB, this acts as a lock that guarantees exactly one request modifies the slot state while all other concurrent requests are safely rejected."

5 media files · ambula-health-mu.vercel.appView

This is Ayush’s work on Wooble.

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

Build yours