A comprehensive, feature-rich campus management solution built with Flutter
Features β’ Screenshots β’ Installation β’ Architecture β’ Contributing
- About
- Features
- Screenshots
- Tech Stack
- Installation
- Project Structure
- Architecture
- Configuration
- Usage
- Contributing
- License
- Contact
CampusQuest is a modern, cross-platform campus management system designed to streamline educational institution operations. Built with Flutter and powered by Supabase, it provides a unified platform for students, instructors, and administrators to manage academic activities efficiently.
- π Modern UI/UX - Beautiful, intuitive interface with dark mode support
- π± Cross-Platform - Works seamlessly on Android, iOS, Web, and Desktop
- π Secure - Built-in authentication and role-based access control
- β‘ Real-time - Live updates powered by Supabase
- π¨ Customizable - Flexible theming and personalization options
- π Analytics - Comprehensive data visualization and reporting
- π Course Management - View enrolled courses, schedules, and materials
- π Assignment Tracking - Submit assignments and track deadlines
- π Grade Monitoring - Real-time access to grades and performance analytics
- π Attendance - View attendance records and statistics
- π¬ Communication - Direct messaging with instructors and peers
- π Document Management - Access and download course materials
- π Course Creation - Create and manage courses with ease
- π₯ Student Management - Track student progress and performance
- π Assignment Management - Create, distribute, and grade assignments
- π Analytics Dashboard - Comprehensive insights into class performance
- π’ Announcements - Broadcast important updates to students
- π Resource Sharing - Upload and share course materials
- π’ Institution Management - Manage departments, courses, and users
- π Comprehensive Reports - Generate detailed analytics and reports
- π€ User Management - Create and manage user accounts and roles
- π Performance Tracking - Monitor institutional performance metrics
- π§ System Configuration - Customize system settings and preferences
- π Audit Logs - Track system activities and changes
- π Dark/Light Mode - Eye-friendly themes for any environment
- π Push Notifications - Stay updated with real-time alerts
- π± Responsive Design - Optimized for all screen sizes
- π Advanced Search - Quickly find courses, students, or materials
- π₯ Export Options - Download data in PDF, CSV formats
- π Multi-language Support - (Coming Soon)
- Framework: Flutter 3.2.0+
- Language: Dart 3.2.0+
- State Management: Provider
- UI Components: Material Design 3
- BaaS: Supabase
- Authentication: Supabase Auth
- Database: PostgreSQL (via Supabase)
- Storage: Supabase Storage
- Real-time: Supabase Realtime
dependencies:
flutter: sdk
supabase_flutter: ^2.8.4 # Backend integration
provider: latest # State management
google_fonts: ^6.2.1 # Typography
fl_chart: ^0.65.0 # Data visualization
cached_network_image: ^3.2.0 # Image caching
flutter_animate: ^1.0.0 # Animations
pdf: ^3.11.3 # PDF generation
printing: ^5.14.2 # PDF printing
file_picker: ^8.0.0 # File selection
image_picker: ^0.8.4+4 # Image selection
permission_handler: ^11.3.1 # Permissions
url_launcher: ^6.0.6 # External links
intl: ^0.20.2 # Internationalization- Flutter SDK (3.2.0 or higher)
- Dart SDK (3.2.0 or higher)
- Android Studio / Xcode (for mobile development)
- Git
git clone https://github.com/yourusername/campusquest.git
cd campusquestflutter pub get- Create a Supabase project at supabase.com
- Update the Supabase credentials in
lib/main.dart:
await Supabase.initialize(
url: 'YOUR_SUPABASE_URL',
anonKey: 'YOUR_SUPABASE_ANON_KEY',
);# For development
flutter run
# For specific platform
flutter run -d chrome # Web
flutter run -d android # Android
flutter run -d ios # iOS
flutter run -d windows # Windows
flutter run -d macos # macOS
flutter run -d linux # Linux# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# iOS
flutter build ios --release
# Web
flutter build web --release
# Windows
flutter build windows --releasecampusquest/
βββ lib/
β βββ main.dart # Application entry point
β βββ controllers/ # Business logic controllers
β β βββ login_controller.dart
β β βββ theme_controller.dart
β βββ modules/ # Feature modules
β β βββ admin/ # Admin module
β β βββ instructor/ # Instructor module
β β βββ student/ # Student module
β β βββ login/ # Authentication module
β βββ widgets/ # Reusable widgets
β β βββ bottomnavigationbar.dart
β β βββ splash_screen.dart
β βββ theme/ # Theme configuration
β βββ Data/ # Data models and services
βββ assets/ # Images, fonts, etc.
βββ android/ # Android-specific files
βββ ios/ # iOS-specific files
βββ web/ # Web-specific files
βββ windows/ # Windows-specific files
βββ linux/ # Linux-specific files
βββ macos/ # macOS-specific files
βββ test/ # Unit and widget tests
βββ pubspec.yaml # Dependencies
βββ README.md # This file
CampusQuest follows a modular architecture with clear separation of concerns:
- MVC (Model-View-Controller) - For business logic separation
- Provider Pattern - For state management
- Repository Pattern - For data access abstraction
Each module (Admin, Instructor, Student) contains:
- Views - UI components
- Controllers - Business logic
- Models - Data structures
- Services - API interactions
User Interaction β Controller β Service β Supabase β Service β Controller β View Update
Create a .env file in the root directory:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_keyModify lib/theme/theme.dart to customize colors, fonts, and styles.
For push notifications, configure Firebase:
- Add
google-services.json(Android) - Add
GoogleService-Info.plist(iOS)
flutter runThe app includes Device Preview for testing multiple screen sizes:
// Enabled by default in main.dart
DevicePreview(
enabled: true,
builder: (context) => MyApp(),
)Set enabled: false in main.dart before building for production.
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
Please read our Code of Conduct before contributing.
# Run all tests
flutter test
# Run with coverage
flutter test --coverage
# Run specific test
flutter test test/widget_test.dartThis project is licensed under the MIT License - see the LICENSE file for details.
Project Maintainer: Your Name
- π§ Email: your.email@example.com
- π GitHub: @yourusername
- πΌ LinkedIn: Your Name
Project Link: https://github.com/yourusername/campusquest
- Flutter Team - For the amazing framework
- Supabase - For the powerful backend platform
- Material Design - For design guidelines
- All contributors who have helped improve this project
- Basic authentication system
- Student module
- Instructor module
- Admin module
- Dark mode support
- Multi-language support
- Mobile app release
- Advanced analytics
- AI-powered recommendations
- Video conferencing integration
- Mobile notifications
- Offline mode support