University Project Bank: A Student-Led Platform for Project Showcases
How I built a centralized platform to help students publish and manage their academic projects using Node.js, Firebase, and Express.
🎯 Problem Statement
In most universities, student projects end up forgotten after submission — stored in private folders or Google Drives. I wanted to change that. The goal was to create a platform where students could upload, showcase, and search academic projects — while giving admins full control to manage project visibility and data.
🛠️ Tech Stack Used
- Frontend: HTML, CSS, Bootstrap, JavaScript
- Backend: Node.js, Express.js
- Database & Hosting: Firebase (Realtime DB + Auth)
🔑 Key Features
- 📝 Project submission with title, description, tags, and documentation
- 🔍 Smart search with auto-complete suggestions
- 🔐 Role-based authentication with admin dashboard
- ✅ Approval workflow for publishing project entries
- 🔐 Data encryption for private project details using
CryptoJS
📐 System Design Overview
The backend uses Node.js with Express routes for submitting, updating, and deleting projects. Firebase handles:
- User authentication via email-password
- Realtime database for project records
- Cloud hosting and deployment
Admin Workflow: Admins see pending submissions and approve or reject them using an internal dashboard.
🔍 Smart Search with Auto-Complete
I implemented an auto-complete feature that filters available projects as the user types keywords. This was achieved by indexing project titles and tags in Firebase and matching prefixes in real-time using JavaScript.
Lesson: Real-time search drastically improves usability — especially in student-driven platforms.
🔐 Data Security & Encryption
Some projects contain sensitive content, so I used CryptoJS
to encrypt confidential fields before saving to Firebase. Decryption happens only on the client side for authorized users.
Lesson: Even in academic apps, privacy and security matter — especially when sharing original work.
📦 Code Structure
├── index.js (Express server) ├── routes/ │ ├── auth.js │ └── projects.js ├── views/ │ ├── home.ejs │ ├── dashboard.ejs │ └── upload.ejs ├── public/ │ └── styles.css
Note: While EJS was used in early prototypes, I later moved toward a more modular frontend structure using plain JS and Firebase Hosting.
📚 What I Learned
- How to structure a multi-role web app from scratch
- How to integrate Firebase Auth and DB with Node.js
- How to implement approval workflows and role-based UI
- Importance of encrypting and securing project submissions
🚀 Future Enhancements
- 📦 Add resume-style project export for student portfolios
- 📱 Create a mobile-responsive layout or companion app
- 🌐 Enable project categories by department or faculty
🔗 Project Links
- 🌐 Live Demo: university-project-bank-96z7.onrender.com
- 💻 GitHub Repo: University Project Bank on GitHub
👨💻 About Me
I'm Rhythm, a student at NSUT passionate about full-stack development. I love solving real-world problems with code and building tools that other students can benefit from.
Good idea...Maybe I can contribute something more in search functionality.
ReplyDelete