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


👨‍💻 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.

Check out my work on GitHub or connect with me on LinkedIn.

Comments

  1. Good idea...Maybe I can contribute something more in search functionality.

    ReplyDelete

Post a Comment

Popular Posts