A comprehensive student companion app that streamlines daily school life
Connect-Ed is a mobile application designed to enhance the daily experience of students by providing a centralized hub for all essential school-related information. The app integrates schedules, meal menus, sports events, and academic assessments into one beautiful, easy-to-use interface.
- Daily and weekly class schedules synced with school webcal feeds
- Special events and holiday integration
- Filter by day, week, or custom date ranges
- Breakfast, lunch, and dinner menus updated daily
- Dietary options and allergen information
- Clean, easy-to-read interface
- Upcoming games and sports events
- Live scores and results
- Team standings and statistics
- Detailed game information with times and locations
- Track upcoming assignments and exams
- Integration with calendar system
- Push notifications for deadlines
- All events in one color-coded calendar
- Classes, meals, sports, and assessments combined
- Intuitive navigation and filtering
- Schedule changes and updates
- New menu items and sports results
- Assessment deadline reminders
- Customizable notification preferences
- Frontend: Flutter (Dart)
- Backend: Firebase
- Database: Cloud Firestore
- Authentication: Firebase Auth
- Push Notifications: Firebase Cloud Messaging
- Analytics: Firebase Analytics
- Flutter SDK (>=3.7.0)
- Firebase CLI
- Xcode (for iOS development)
- Android Studio (for Android development)
-
Clone the repository
git clone https://github.com/yourusername/connect-ed-2.git cd connect-ed-2 -
Install dependencies
flutter pub get
-
Set up Firebase (See Firebase Setup below)
-
Configure school-specific settings (See School Configuration below)
-
Run the app
flutter run
Important: This app requires Firebase configuration to function properly. The Firebase configuration file has been excluded from version control for security reasons.
- Go to the Firebase Console
- Click "Create a project" or "Add project"
- Enter your project name (e.g., "connect-ed-your-school")
- Follow the setup wizard
In your Firebase project, enable:
- Authentication (for user login)
- Cloud Firestore (for data storage)
- Cloud Messaging (for push notifications)
- Analytics (for app insights)
- Crashlytics (for error reporting)
-
Add Android App:
- Package name:
com.example.connect_ed_2(or your custom package) - Download
google-services.jsonβ place inandroid/app/
- Package name:
-
Add iOS App:
- Bundle ID:
com.example.connectEd2(or your custom bundle ID) - Download
GoogleService-Info.plistβ place inios/Runner/
- Bundle ID:
-
Add Web App:
- App nickname: "Connect-Ed Web"
- Copy the configuration object
-
Copy the template file:
cp lib/firebase/firebase_options.dart.template lib/firebase/firebase_options.dart
-
Fill in your Firebase configuration: Open
lib/firebase/firebase_options.dartand replace all placeholder values:static const FirebaseOptions web = FirebaseOptions( apiKey: 'your-web-api-key-here', appId: 'your-web-app-id-here', messagingSenderId: 'your-sender-id-here', projectId: 'your-project-id-here', authDomain: 'your-project-id.firebaseapp.com', storageBucket: 'your-project-id.firebasestorage.app', measurementId: 'your-measurement-id-here', );
Where to find these values:
- Go to Firebase Console β Project Settings β General tab
- Scroll down to "Your apps" section
- Click on each app (Web, Android, iOS) to see the configuration
You can also use the FlutterFire CLI to automatically configure Firebase:
# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Configure Firebase for your project
flutterfire configureThis will automatically generate the firebase_options.dart file with your configuration.
To customize the app for your school:
In lib/frontend/onboarding/setup_link.dart, line 474:
..loadRequest(Uri.parse('https://your-school.myschoolapp.com/app/'));Replace your-school with your school's portal subdomain.
- Replace school logos in the
assets/folder - Update app icons in
android/app/src/main/res/andios/Runner/Assets.xcassets/ - Modify the app name in
android/app/src/main/AndroidManifest.xmlandios/Runner/Info.plist
The app supports webcal feed integration. Configure your school's calendar URL in the appropriate service files.
- β iOS (iPhone & iPad)
- β Android (Phone & Tablet)
- π§ Web (In development)
- π§ macOS (Planned)
- π§ Windows (Planned)
lib/
βββ classes/ # Data models
βββ firebase/ # Firebase configuration
βββ frontend/ # UI components and screens
β βββ calendar/ # Calendar-related screens
β βββ home/ # Home screen and widgets
β βββ onboarding/ # Setup and welcome screens
β βββ settings/ # App settings
β βββ sports/ # Sports events and scores
β βββ setup/ # UI setup and styling
βββ requests/ # API and data fetching
βββ main.dart # App entry point
firebase_core- Firebase SDK corecloud_firestore- Databasefirebase_auth- Authenticationfirebase_messaging- Push notificationscached_network_image- Image cachingshared_preferences- Local storagehttp- HTTP requestsintl- Internationalization
Android:
flutter build apk --release
# or
flutter build appbundle --releaseiOS:
flutter build ios --release- Firebase configuration files are excluded from version control
- API keys should never be committed to the repository
- Use Firebase Security Rules to protect your data
- Enable App Check for additional security
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues:
- Check the Firebase documentation
- Review the Flutter documentation
- Search existing GitHub issues
- Create a new issue with detailed information
- Widget Integration - Home screen widgets for quick access
- Live Sports Streaming - Integration with live sports streams
- Enhanced Analytics - Detailed usage and performance metrics
- Social Features - Student groups and messaging
- Parent Portal - Parent access to student information
- Multi-language Support - Internationalization
- Dark Mode - Enhanced dark theme support
- Offline Mode - Cached data access without internet
Made with β€οΈ for students everywhere