"Not recommended for beginners."
That's what the task sheet said about Level 3 of the Oasis Infobyte Web Development & Design internship. Naturally, that's the one I picked.
The Task
Level 3 has exactly one task — build a full-stack Pizza Delivery Application. Not a landing page, not a CRUD demo. A real platform: user authentication with email verification, a custom pizza builder, live payments, inventory management, an admin system, and real-time order tracking.
The Stack
React + Vite + Tailwind on the frontend, Node.js + Express on the backend, MongoDB Atlas for the database, Socket.IO for real-time updates, Razorpay for payments. Deployed across Vercel (frontend) and Railway (backend).
What I Built
The user journey: register → verify email (Nodemailer) → log in (JWT) → build a pizza in 4 steps (base, sauce, cheese, veggies) with dynamic pricing → pay through Razorpay's checkout → track the order live on a progress bar.
The admin side: a separate authenticated dashboard managing a 20-item inventory with low-stock indicators and inline editing, plus order status management. When an admin updates an order's status, the customer's screen updates instantly — no refresh — via Socket.IO rooms per order.
Behind the scenes: stock auto-decrements on every successful payment, a node-cron job emails hourly low-stock alerts, and Razorpay payments are verified server-side with HMAC-SHA256 signatures — never trusting the client.
What Actually Taught Me Things
The features were the syllabus. The debugging was the education.
MongoDB Atlas DNS failures — my local machine couldn't resolve mongodb+srv:// connection strings because a VPN was interfering with DNS SRV lookups. Solution: the legacy non-SRV connection string format. Lesson: know what your connection string actually does.
Railway's SMTP block — my deployed backend couldn't send verification emails because Railway's free tier blocks outbound SMTP ports entirely. No code fixes this — it's a platform-level restriction. I documented it transparently in the README instead of hiding it. Lesson: hosting platforms have opinions, and honest documentation beats pretending.
Payment signature verification — getting HMAC verification right means understanding exactly what Razorpay signs and in what order. One string concatenation mistake and every legitimate payment fails verification. Lesson: read the docs character-by-character when money is involved.
The Result
A deployed, working platform — live payment flow tested end-to-end with a real bank OTP in Razorpay test mode, real-time updates proven across two browser windows.
Code: github.com/Alexy-ak06/OIBSIP
Live: oibsip-kappa-five.vercel.app
Closing Thoughts
Thanks to Oasis Infobyte for structuring an internship where the advanced task is genuinely advanced. If you're an OIBSIP intern reading this and deciding between levels: pick the one that scares you slightly. The debugging you'll do is the résumé you're actually building.
Top comments (0)