MIT Campus is a Flutter project designed to facilitate communication and task management within the ECE Department of MIT. The project aims to provide a platform for students and faculty to interact, share information, and manage tasks efficiently.
- Project Description
- Setup Instructions
- Usage Guidelines
- Project Features
- Dependencies
- Architecture and Code Structure
- Contribution Guidelines
- License
MIT Campus is a comprehensive platform for the ECE Department of MIT. It includes features such as user authentication, chat functionality, task management, and more. The project is built using Flutter and Firebase, providing a robust and scalable solution for departmental communication and task management.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Rudra-ravi/mitcampus-prod.git cd mitcampus-prod -
Install dependencies:
flutter pub get
-
Set up Firebase:
- Create a Firebase project in the Firebase Console.
- Add an Android and iOS app to your Firebase project.
- Download the
google-services.jsonfile for Android and place it in theandroid/appdirectory. - Download the
GoogleService-Info.plistfile for iOS and place it in theios/Runnerdirectory. - Enable Firebase Authentication, Firestore, and Cloud Messaging in the Firebase Console.
-
Run the project:
flutter run
To use the project, follow these guidelines:
- Login: Use your MIT email to log in. If you are a HOD, use the HOD email provided.
- Chat: Use the chat feature to communicate with other users in the department.
- Tasks: Create, update, and manage tasks. Assign tasks to users and track their progress.
- User Authentication: Secure login using Firebase Authentication.
- Chat Functionality: Real-time chat using Firestore.
- Task Management: Create, update, and manage tasks. Assign tasks to users and track their progress.
- Notifications: Receive notifications for new messages and task updates.
The project uses the following dependencies:
flutter_bloc: ^8.1.6firebase_core: ^3.7.0firebase_auth: ^5.3.2cloud_firestore: ^5.4.5shared_preferences: ^2.3.3connectivity_plus: ^6.1.0package_info_plus: ^8.1.1rxdart: ^0.28.0multi_select_flutter: ^4.1.3url_launcher: ^6.3.1firebase_messaging: ^15.1.4flutter_local_notifications: ^18.0.1intl: ^0.19.0flutter_native_splash: ^2.4.2flutter_secure_storage: ^8.0.0
The project follows a modular architecture with the following main components:
- Blocs: Handles the business logic of the application using the BLoC pattern.
- Models: Defines the data structures used in the application.
- Repositories: Handles data operations and interactions with Firebase.
- Services: Provides utility functions and services such as notifications and credential management.
- Screens: Contains the UI components of the application.
- Widgets: Contains reusable UI components.
We welcome contributions to the project. To contribute, follow these steps:
-
Fork the repository:
- Click the "Fork" button at the top right of the repository page.
-
Clone your forked repository:
git clone https://github.com/<your-username>/mitcampus-prod.git cd mitcampus-prod
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Add your commit message"
-
Push your changes to your forked repository:
git push origin feature/your-feature-name
-
Create a pull request:
- Go to the original repository and click the "New pull request" button.
- Select your branch and submit the pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.