Skip to content

FlowOperation/Campus-Connect

Campus Connect

Campus Connect is an open-source Flutter community platform for FAST-NUCES students.

Mission: build a high-quality, student-owned digital campus space for discussion, collaboration, and trusted information sharing.

Flutter Dart Firebase License CI PR Validation

Check it out on Youtube

https://youtube.com/shorts/McVDLVQ--DU?feature=share

Key Features

  • FAST-only authentication (@nu.edu.pk and campus domains)
  • Post feed with categories, search, sort, and filters
  • Reddit-style voting and bookmarking
  • Comment threads with real-time updates
  • Profile with authored posts and saved posts
  • Firebase-backed auth and Firestore data flow
  • Flutter + Riverpod architecture for scalable state management

Tech Stack

  • Framework: Flutter
  • Language: Dart 3.9.2
  • State Management: Riverpod
  • Backend: Firebase Auth + Cloud Firestore
  • Media: image_picker, image_cropper, Cloudinary uploads
  • UI: Material 3, google_fonts, flutter_animate
  • CI/CD: GitHub Actions

Architecture Overview

Campus Connect follows a feature-module Flutter architecture with shared foundations:

  1. App shell and theme: lib/app/
  2. Feature modules: lib/features/<feature>/{presentation,application,domain,infrastructure}
  3. Shared UI primitives: lib/shared/
  4. Existing state/models/services: lib/providers/, lib/models/, lib/services/
  5. Bootstrap/config: lib/main.dart, native platform Firebase service files, lib/utils/

This keeps UI and feature ownership clear while the remaining non-UI layers are incrementally migrated.

Installation

Prerequisites

  • Flutter SDK (stable)
  • Dart SDK (matches Flutter stable)
  • Android Studio (Android emulator) and/or Xcode (iOS simulator on macOS)
  • Firebase project with Auth + Firestore enabled

Quick Start

git clone https://github.com/ammaarrahmed/Campus-Connect.git
cd Campus-Connect
flutter pub get
flutter run

This repository ships template Firebase config only. Before first run, configure your own Firebase project locally using docs/LOCAL_DEVELOPMENT.md.

For full setup, including Firebase and emulator provisioning, see docs/LOCAL_DEVELOPMENT.md.

Development Setup

  1. Install dependencies: flutter pub get
  2. Configure your own Firebase project locally using docs/LOCAL_DEVELOPMENT.md
  3. Add local platform files and apply Firestore rules from firestore.rules
  4. Optionally fetch mobile config with bash scripts/fetch_firebase_mobile_config.sh <project-id> <android-app-id> <ios-app-id>
  5. Run:
  • flutter doctor
  • flutter run

Quality Gates (Local)

Run these before opening a PR:

dart format --output=none --set-exit-if-changed .
flutter analyze --no-fatal-infos
flutter test

For manual semantics, text scaling, contrast, and touch-target verification, use docs/ACCESSIBILITY_CHECKLIST.md.

Contributing

Community contributions are welcome. Start here:

  • docs/CONTRIBUTING.md
  • docs/CODE_OF_CONDUCT.md
  • docs/AI_USAGE_POLICY.md
  • docs/SECURITY.md

Code Structure

Current source layout:

lib/
  app/
    app.dart
    theme/
  features/
    auth/
    posts/
    profiles/
    comments/
    messaging/
    moderation/
  shared/
    widgets/
  main.dart
  models/
  providers/
  services/
  utils/
test/
docs/
  images/
.github/
  ISSUE_TEMPLATE/
  workflows/

Recommended long-term structure and conventions are documented in docs/REPOSITORY_STRUCTURE.md.

Roadmap

Short and mid-term product roadmap is tracked in:

  • docs/ROADMAP.md
  • GitHub Issues with labels enhancement, good first issue, and priority-high

Engineering architecture and standards documents are tracked in engineering-foundation/.

Release planning and semantic versioning policy live in docs/RELEASE_STRATEGY.md.

License

This project is licensed under Apache License 2.0. See LICENSE.

Why Apache-2.0:

  • Clear patent grant for contributors and adopters
  • Strong compatibility with commercial and community use
  • Well understood in large open-source ecosystems

Maintainers

  • @ammaarrahmed (Founder and Primary Maintainer)

If you want to help maintain the project, open a governance proposal issue.

About

Open Source Discussion Platform

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors