Inspiration
Every year, over 300 million visa applications are filed worldwide. Yet millions of people, especially first-time applicants from developing countries like India, Nigeria, Pakistan, and Bangladesh, face rejection rates as high as 40–60%, not because they are unqualified, but because they simply don't know what embassies are actually looking for.
We've seen this problem firsthand. A friend spends months saving money, books flights, plans their dream study abroad journey, and gets rejected with zero explanation. No reason. No guidance. Just a stamp that says denied.
That moment inspired VisaCurator: A platform that gives every applicant the same advantage that wealthy applicants get from expensive immigration lawyers, but completely free, powered by AI.
What It Does
VisaCurator is a full-stack AI-powered visa companion that covers every step of the visa journey:
🤖 AI Visa Recommendation
Select your destination and purpose — Gemini AI instantly suggests the top 3 visa types with processing times, pros, and a personalized recommendation reason.
📊 Visa Risk Analyzer
Enter your profile (GPA, bank balance, employment status, travel history, age, English score) and get a precise approval probability score with a detailed breakdown of strong vs weak factors and a prioritized action plan.
The probability is calculated across 6 weighted factors:
$$P(\text{approval}) = \sum_{i=1}^{6} w_i \cdot s_i$$
Where $w_i$ is the weight of each factor (financial strength, travel history, employment stability, education match, document readiness, ties to home country) and $s_i$ is the applicant's score for that factor.
📄 AI Document Checklist
Country-specific, visa-specific document checklists generated by AI — not generic lists, but tailored requirements for your exact country and visa type combination.
🔍 AI Document Scanner
Upload your actual documents — passport, bank statement, admission letter, employment letter — and Gemini Vision AI reads and verifies each one. It checks expiry dates, required information, format compliance, and embassy standards. Supports both images (JPG/PNG) and PDFs. Get a full verification report with a pass/warn/fail for each check.
🗺️ AI Travel Itinerary Generator
Enter your destination, travel dates, budget slider, and interests — Gemini generates a complete day-by-day itinerary with morning, afternoon, and evening activities, food recommendations, estimated costs, packing tips, visa-specific travel tips, and emergency contacts for the destination country.
💬 VisaBot — Multilingual AI Chatbot
A floating AI chatbot powered by Gemini that answers any visa question in any language. Users can type in Hindi, Tamil, Arabic, French, Spanish, or any language — VisaBot detects the language and responds in the same language automatically. No configuration needed.
👥 VisaMates — Traveler Matching & Chat
Users set a travel profile (destination country, visa type, travel date, interests) and get matched with other real travelers going to the same place with the same visa type. Matched users can send connection requests and chat privately — real person to real person trip planning and experience sharing.
📅 Expert Consultation Booking
Verified visa experts register on the platform, set their available time slots, and users can book free Google Meet consultations. Both the user and the expert receive automated email confirmations with the meeting details instantly.
🔐 Secure Authentication System
Full OTP-based email verification for registration, forgot password flow with OTP expiry, JWT token session management, and bcrypt password hashing — production-grade security from day one.
How We Built It
Tech Stack
Frontend:
- React 18 with Vite
- Tailwind CSS + shadcn/ui for UI components
- Framer Motion for animations
- React Router v6 for navigation
- date-fns for date formatting
Backend:
- Node.js + Express.js REST API
- MySQL with MySQL Workbench for data storage
- JWT authentication + bcryptjs password hashing
- Nodemailer + Gmail SMTP for OTP emails and booking confirmations
- Multer for document file uploads
- pdf-parse for PDF text extraction
- Stripe for payments
AI & Intelligence:
- Google Gemini 1.5 Flash for all text-based AI features
- Gemini Vision API for document image scanning and verification
Architecture: User → React Frontend (Vite, port 5173) ↓ Express Backend (Node.js, port 5000) ↓ ┌─────────┼─────────┐ │ │ │ MySQL Gemini AI Stripe (storage) (intelligence) (payments) ↓ Nodemailer (emails)
Database Schema
We designed 8 MySQL tables:
users— registered users with hashed passwords and premium statusotp_store— temporary OTP storage with expiry timestampsvisa_applications— full application data with JSON user profilestravel_profiles— VisaMates matching profilesconnections— connection requests between usersmessages— private chat messages between connected userssubscriptions— Stripe subscription/payment recordsbookings— expert consultation bookings with Meet linksexpert_slots— available time slots set by experts
Challenges We Ran Into
1. AI Response Consistency
Getting Gemini to always return clean, parseable JSON — without markdown wrappers, code blocks, or extra explanation text — required careful prompt engineering. We added explicit instructions in every prompt and built a multi-layer JSON cleaning pipeline on the backend to handle all edge cases gracefully.
2. Document Scanning — Two Pipelines, One Endpoint
Making the document scanner work with both PDFs (text extraction) and images (vision AI) required two completely different processing pipelines unified under one API endpoint. PDFs go through pdf-parse for text extraction then Gemini text analysis. Images go directly to Gemini Vision as base64. Both return the same structured JSON response to the frontend.
3. Real-time Messaging Without WebSockets
Building a real-time chat system for VisaMates without WebSockets (to keep the backend simple and scalable) required implementing a smart polling mechanism. The frontend polls for new messages every 3 seconds using a timestamp-based query — only fetching messages newer than the last received one. Efficient enough to feel instant without overloading the server.
4. OTP Race Conditions
Storing temporary OTP data during registration while preventing duplicate registrations required careful use of MySQL's ON DUPLICATE KEY UPDATE, ensuring that re-sending an OTP overwrites the old one atomically rather than creating duplicate records or conflicts.
5. Multilingual Chatbot
Making VisaBot respond in the user's own language without any manual language detection required careful system prompt engineering. Instead of building a language detector, we simply instruct Gemini to always reply in the same language the user writes in — Gemini handles all language detection and switching automatically across 50+ languages.
Accomplishments That We're Proud Of
- 🏗️ Built a complete full-stack application from scratch — custom backend, custom auth, custom database — no no-code shortcuts
- 🔍 Built an AI document scanner that reads real passport photos and PDFs and gives actionable feedback — something no mainstream visa platform offers
- 🌐 Achieved true multilingual support in the chatbot without any translation APIs — just smart prompt engineering
- 💬 Built a real-time traveler matching and chat system — VisaMates connects real people going through the same visa journey
- 🔐 Implemented production-grade security — OTP verification, bcrypt hashing, JWT sessions, Stripe payments
- ⚡ Migrated 100% away from proprietary platforms to a fully owned, fully custom tech stack
- 🆓 Powered the entire AI layer with free APIs — Google Gemini 1.5 Flash handles everything from visa recommendations to document scanning at zero cost
What We Learned
- Prompt engineering is a real engineering skill — the difference between a useful AI response and a broken one often comes down to 10 carefully chosen words in the prompt
- Gemini 1.5 Flash is remarkably capable — vision, multilingual understanding, structured JSON output, and fast responses, all on a completely free tier
- Real products need real infrastructure — building auth, email, payments, file uploads, and real-time features from scratch gave us a deep understanding of how production applications actually work
- UX is as important as features — animated loading skeletons, smooth transitions, and thoughtful error states make the same functionality feel dramatically better to users
- Database design decisions compound — the schema choices we made early (like using JSON columns for flexible profile data) saved us from painful migrations later
What's Next for VisaCurator
- 🧬 Visa DNA Score — deep AI profile analysis that compares applicants against successful approval patterns and builds a personalized 90-day improvement plan with week-by-week action items
- 📅 Embassy Appointment Reminders — automated email reminders 7 days, 3 days, and 1 day before embassy appointments
- 📰 Visa Policy Change Alerts — real-time notifications when a country changes its visa requirements, fees, or processing times
- 🔗 Multi-country Route Optimizer — AI finds the smartest visa application sequence when planning to visit multiple countries (getting a US visa first makes UK/Canada/Australia significantly easier)
- 📱 Mobile App — React Native version for on-the-go visa management and document scanning with the phone camera
- 🌍 Embassy Directory — country-wise embassy contact details, appointment booking links, and processing time trackers
- 🤝 Expert Marketplace — paid consultations with verified immigration lawyers and visa consultants, with user reviews and ratings
Built With
- bcryptjs
- css
- date-fns
- express.js
- framer-motion
- gemini-vision-api
- gmail-smtp
- google-gemini-1.5-flash-api
- html
- javascript
- jwt
- multer
- mysql
- node.js
- nodemailer
- pdf-parse
- react
- react-router
- shadcn/ui
- stripe
- tailwind-css
- vite
Log in or sign up for Devpost to join the conversation.