BbduConnect is a premium, real-time social academic collaboration hub built for scholars, students, and faculty advisors at BBDU. It bridges the gap between structured learning and social collaboration, allowing users to exchange messages, share academic documents in a vault, publish research announcements, and coordinate course goals.
- Role-Based Accounts: Supports dedicated profiles for Students, Faculty Advisors, Faculty, and Administrators with custom department fields.
- Interactive Profiles: Manage biography info, customize profile tags, and set live availability statuses (Active, Focus Mode, Offline).
- Custom Avatars: Upload custom avatar photos directly from the settings panel.
- Discussion Channels: Create and join group topic channels (e.g.
#data-science-project,#study-group-alpha). - Direct Messaging (DMs): Start private 1-on-1 threads by searching for a colleague's university email address.
- Rich Chat attachments: Send files and images inside chats. Features dynamic file formatting (PDF, ZIP, spreadsheet icons) and media preview cards.
- Real File Uploads: Upload documents (PDF, DOCX, ZIP, XLSX, PPTX, images) with a live progress bar.
- Categorization: Filter files by categories like Lectures, Assignments, Research, or PDFs.
- Star Registry: Bookmark reference sheets or homework files with user-specific starred list persistence.
- Downloads & Sharing: Open live files in new tabs or copy file download links with one click.
- Academic Forum: Publish announcements, research logs, and event alerts.
- Atomic Likes: Heart posts with user-indexed counters to prevent double-likes.
- Discussion Threads: Toggle nested comment drawers to read and post peer reviews on bulletins.
- Topic Tags: Organize bulletin board posts using custom tags (e.g.,
#Symposium,#Research).
BbduConnect reads and writes application data through Firebase:
- Firebase Auth manages account creation, login, and sessions.
- Cloud Firestore stores user profiles, channels, messages, files metadata, posts, comments, likes, and stars.
- Cloud Storage stores uploaded documents and media.
Real Firebase credentials are required in .env.local. Placeholder credentials will not load mock or seeded data.
- Core: React (v19), TypeScript (v5), Vite (v6)
- Styling: Vanilla CSS, Tailwind CSS (v4)
- Backend SDK: Firebase Web SDK (v10+)
- Firebase Auth: User accounts and sessions.
- Cloud Firestore: Real-time snapshot synchronization of chats, posts, comments, and profile states.
- Cloud Storage: Image and document hosting.
Ensure you have Node.js (v18+) installed.
# Clone the repository and navigate into the folder
cd bbduconnect
# Install packages
npm installCreate a .env.local file in the root of the project (if it doesn't already exist) and populate it with your Firebase configuration. You can copy the structure from .env.example:
# BbduConnect Real Firebase Configuration
# =======================================
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project_id.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_idTo connect a real database, follow these setup rules in your Firebase Console:
- Authentication: Enable the Email/Password provider under Sign-in Methods.
- Firestore Database: Create a database, start in Test Mode (or configure custom security rules).
- Cloud Storage: Create a bucket, start in Test Mode.
# Start Vite development server
npm run devOpen http://localhost:3000/ (or the port shown in your terminal) in your browser!
# Build the optimized production bundle
npm run build
# Preview the local production build
npm run previewThis project is licensed under the Apache-2.0 License. See the LICENSE file for details.