Skip to content

IITGCampusSyncTeam/IITGCampusSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Campus Sync

An all-in-one platform designed to streamline campus communication, event management, and coordination. From personalized event updates and club notifications to seamless merchandise purchases and smarter scheduling, the app keeps both students and organizers in sync.

Flutter Node.js Firebase Redis


πŸ“± Main Screens of the Application

All UI mock-ups, prototypes, and event-card designs were created in Figma.

Mockup 1 Mockup 2 Mockup 3 Mockup 4

πŸ“‘ Table of Contents


πŸš€ Features

πŸ”” Real-Time Notifications

  • Built using Firebase Cloud Messaging (FCM) and BullMQ (a Redis-backed queue system).
  • Supports both instant and scheduled delivery for event reminders and announcements.
  • Robust job processing with features like automatic retries, exponential backoff, and parallel workers to ensure reliable delivery.

🧠 Smart Event Coordination

  • Events progress through clear states: Draft β†’ Tentative β†’ Published.
  • An interactive timeline view helps organizers identify and resolve potential scheduling conflicts with overlapping events.
  • Supports multi-organizer collaboration for seamless planning.

πŸ§‘β€πŸŽ“ Personalized User Experience

  • Club Following: Users can follow their favorite clubs by category (e.g., Coding, Finance, Blockchain) to receive tailored updates.
  • 🏷️ Personalized Feed with Tags: Users can subscribe to interest-based tags like #coding, #robotics, or #entrepreneurship. Events tagged by organizers appear in the user's personalized feed, cutting through the noise.
  • Contest Alerts: Integrates with the Codeforces API to send timely notifications for upcoming competitive programming contests.

πŸ›οΈ Payments & File Management

  • Razorpay Integration: Secure, UPI-based payments for event tickets and club merchandise directly within the app.
  • πŸ“Ž Secure File Management with OneDrive:
    • Authentication: Uses the Microsoft Graph API with OAuth 2.0, allowing organizers to securely connect their OneDrive accounts.
    • File Uploads: Organizers can upload event-related files (posters, rulebooks, etc.) directly to a dedicated app folder in their own OneDrive.
    • Secure Sharing: The app stores and shares a secure, permission-based link to the file, ensuring data privacy and user control.

πŸ” Role-Based Access Control (RBAC)

  • Clearly defined roles for Students, Organizers, and Admins.
  • Ensures users can only access the resources and permissions relevant to their role.

πŸ§‘β€πŸ’» Tech Stack

Layer Technology / Service
Frontend Flutter (Android + iOS)
Backend Node.js + Express.js
Database Firebase Firestore + Redis (for caching & queues)
Notifications FCM + BullMQ
Design Figma (UI/UX Prototyping)
Integrations Microsoft Graph API (OneDrive, Outlook), Razorpay API, Codeforces API

πŸ› οΈ Setup Instructions

πŸ”§ Backend (Node.js + Express)

  1. Navigate to the server/ directory:
    cd server
    
  2. Add a .env file with the required credentials and configurations.
  3. Start the server:
    node index.js
    

πŸ“± Frontend (Flutter)

  1. Navigate to the frontend/ directory:

    cd frontend
    
  2. (Optional but Recommended) Clean the build:

    flutter clean
    
  3. Run the app using one of the following methods:

    ▢️ Using VS Code (launch.json)

    Create or edit .vscode/launch.json with the following configuration:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Flutter",
          "request": "launch",
          "type": "dart",
          "program": "lib/main.dart",
          "args": [
            "--dart-define=CLIENT_ID=$your-client-id",
            "--dart-define=AZURE_TENANT_ID=$your-tenant-id",
            "--dart-define=serverUrl=https://iitgcampussync.onrender.com"
          ]
        }
      ]
    }
    

    πŸ› οΈ Using Android Studio

    1. Go to Run -> Edit Configurations.
    2. Add the --dart-define parameters in the Additional run args field.

    πŸ’» Using the Terminal

    flutter run \
      --dart-define=CLIENT_ID=$your-client-id \
      --dart-define=AZURE_TENANT_ID=$your-tenant-id \
      --dart-define=serverUrl=https://iitgcampussync.onrender.com
    

πŸ“ Methodology

  • Modular Full-Stack Architecture: A clean separation between the Flutter frontend and the Node.js backend for better maintainability and scalability.
  • Decoupled Notification Layer: Using BullMQ as a message queue isolates the notification system, making it resilient and independently scalable.
  • Firebase for Real-time Needs: Leveraging Firebase for its real-time database capabilities and robust authentication services.
  • UI/UX First Design: The entire application was prototyped and designed in Figma before development, ensuring a responsive and user-friendly interface.

🎯 Future Goals

  • πŸ”’ Class Rep Access: Empower Class Representatives to manage department-specific events and announcements.
  • 🧠 LeetCode Contest Alerts: Expand the contest integration to include LeetCode and other popular platforms.
  • πŸ›’ Enhanced Club Storefronts: Allow clubs to create dedicated storefronts to list, manage, and pre-sell merchandise.

πŸ’‘ Why Campus Sync?

πŸ“¬ The Problem: Emails are cluttered. Social media is noisy. Students miss out on important events, and organizers struggle with coordination.

πŸ’‘ The Solution: Campus Sync provides a centralized, streamlined, and personalized platform that fixes these problems by:

  • Delivering timely and relevant updates.
  • Preventing scheduling conflicts with a shared event timeline.
  • Making event planning smoother and more collaborative for organizers.

Whether you’re exploring clubs or planning your next big event β€” Campus Sync keeps everyone in sync.


πŸ“¬ Contact

This application is maintained by the Coding Club, IIT Guwahati.
For collaboration, feedback, or suggestions, please reach out via:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 17