Building something real during my internship at
Office of Research Innovation and Commercialization Mehran UET Jamshoro and I'm excited to finally share it.
Over the past few weeks, I've been developing a full-stack Startup & Incubatee Dashboard for the
Office of Research Innovation and Commercialization Mehran UET Jamshoro at
Mehran University of Engineering and Technology. This isn't a tutorial project it's a live production system being built to actually run ORIC's startup incubation pipeline, connecting students, investors, and the university on one platform.
The problem it solves: ORIC manages startup applications, investor interest, and founder communication through scattered, manual processes. This dashboard brings all of that into a single, role-based system.
What it does:
🎓 For Students: submit startup applications (idea → prototype → business model), track review status, edit pending submissions, and see investor interest as it comes in all from a personal dashboard.
💼 For Investors: browse a curated list of ORIC-approved startups, send connection requests to founders they're interested in, and manage their pipeline of pending and accepted connections.
💬 Real-time deal-room chat: once a connection request is accepted, investors and founders unlock a live chat room, built with
Socket.io, where every message is authenticated and scoped to that specific connection no crossover, no unauthorized access.
Under the hood:
→ Node.js + Express for the backend, with a clean MVC architecture separating routes, controllers, models, and validation → MongoDB + Mongoose for flexible, relationship-driven data modeling across users, startups, and connection requests → JWT authentication with httpOnly cookies keeping tokens out of reach of client-side scripts →
Socket.io for real-time messaging, with the same JWT used to authenticate socket connections and enforce room-level authorization → Joi validation on every write endpoint, including role-conditional rules (e.g. investor-only fields) and strict password policies → EJS for server-rendered views across three distinct role-based interfaces
What I learned: Working on a real institutional system taught me a lot beyond just writing code thinking through authorization edge cases (who can accept a request, who can edit an application), designing state machines for approval workflows, and making real-time features secure by default rather than bolted on afterward.
Grateful for the opportunity to work on something that will have a genuine impact on how
Office of Research Innovation and Commercialization Mehran UET Jamshoro supports MUET's startup ecosystem. More updates soon.
Github:
https://lnkd.in/dYJQ2dAf
Project Report:
https://lnkd.in/dfkaDEp4