Learn. Connect. Grow.
CampusGuardian is a comprehensive university community application designed to bridge the gap between students, alumni, and professors. It facilitates mentorship, peer-to-peer skill sharing, and knowledge exchange in a centralized, user-friendly platform.
Connect with experienced seniors, alumni, and professors.
- Find Mentors: Browse mentor profiles filtered by expertise and availability.
- Book Sessions: Schedule sessions based on real-time mentor availability slots.
- Session Management: Track pending, confirmed, and completed sessions with status updates.
- Feedback & Ratings: Rate sessions and provide feedback to ensure quality mentorship.
- Mentor Dashboard: Users can toggle their availability and manage their mentor profile details.
A social feed for sharing academic insights and articles.
- Posts Feed: View and interact with posts created by the community.
- Create & Edit: Rich text support for creating posts with thumbnail images.
- Engagement: Like and comment on posts to foster discussion.
A peer-to-peer marketplace for learning.
- Exchange Offers: Post "I can teach X, I want to learn Y" offers.
- History: View past and closed exchange requests.
- Connect: Direct integration with chat to propose exchanges.
- Private Chat: Real-time 1-on-1 messaging with read receipts and online status indicators.
- AI KnowledgeBot: An intelligent chatbot powered by Google Gemini AI to answer student queries instantly.
- Academic Identity: Manage university details, session, batch, and CGPA.
- Social Links: Integration for LinkedIn and Facebook profiles.
- Security: Secure login, signup, and password management.
- Framework: Flutter (Dart)
- Backend: Firebase (Auth, Firestore, Storage)
- AI Integration: Google Generative AI (Gemini)
- State Management:
setState,StreamBuilder - Navigation:
go_router - Key Packages:
cloud_firestore,firebase_authgoogle_generative_aiflutter_markdown,gpt_markdownshared_preferencesurl_launcher
| Splash Screen-1 | Login-2 |
|---|---|
![]() |
![]() |
| Sign Up-3 | Reset Password-4 |
|---|---|
![]() |
![]() |
| ResetPassword throughLink-5 | Change Password-6 |
|---|---|
![]() |
![]() |
| dashboard-7 | findMentor-8 |
|---|---|
![]() |
![]() |
| Mentor profile-9 | book session-10 |
|---|---|
![]() |
![]() |
| My session-11 | feedback-12 |
|---|---|
![]() |
![]() |
| session and feedback-13 | mentee profile-14 |
|---|---|
![]() |
![]() |
| Edit profile-15 | messageBox-16 |
|---|---|
![]() |
![]() |
| chat page-17 | mentorship setting-18 |
|---|---|
![]() |
![]() |
| Mypost_knowledgeHub-19 | nested comment-20 |
|---|---|
![]() |
![]() |
| skill exchange-21 | edit skill exchange-22 |
|---|---|
![]() |
![]() |
| Search-23 | knowledge bot-24 |
|---|---|
![]() |
![]() |
Follow these steps to run the project locally.
- Flutter SDK (Version
^3.8.1or higher) - Dart SDK
- A Firebase Project
git clone https://github.com/your-username/campus-guardian.git
cd campus-guardianflutter pub getThis project uses flutterfire_cli for Firebase configuration.
- Ensure you have the Firebase CLI installed.
- Run the following command to link your Firebase project:
This will generate the
flutterfire configure
firebase_options.dartfile inlib/.
Create a .env file in the root directory and add your Gemini API key:
GEMINI_API_KEY=your_api_key_here(Make sure to add .env to your .gitignore file)
flutter runlib/
βββ core/ # App-wide constants (Routes, Theme)
βββ features/ # Feature-based modules
β βββ auth/ # Login, Signup, Auth Gate
β βββ chat/ # Private messaging
β βββ dashboard/ # Home screen & Global Search
β βββ knowledgebot/ # Gemini AI Chatbot
β βββ mentorship/ # Mentor booking & listing
β βββ microtalks/ # Posts & Knowledge Hub
β βββ profile/ # User profile & settings
β βββ skill_exchange/ # Skill swap marketplace
β βββ splash/ # Splash screen
βββ services/ # Firebase & API services
βββ widgets/ # Reusable UI components
π Notifications & Real-Time Updates
- Push Notifications: Implement Firebase Cloud Messaging (FCM) to notify users of new messages, session bookings, and replies. (Currently, the
NotificationServiceis drafted but not fully integrated). - In-App Alerts: Add a notification center to view past alerts and updates.
π¬ Enhanced Chat Features
- Media Sharing: Allow users to send images, documents, and voice notes in private chats (currently text-only).
- Typing Indicators: Add real-time "User is typing..." indicators in private 1-on-1 chats.
- Group Chats: Enable group conversations for study groups or project teams.
π€ AI Bot Enhancements
- Contextual Memory: Update
AiBotServiceto send the conversation history to the Gemini API, allowing the bot to remember previous context within a session. - Custom Personas: Allow the bot to switch "modes" (e.g., "Career Counselor," "Academic Advisor," "Code Reviewer").
π Advanced Mentorship
- Video Integration: Integrate Jitsi or Agora for in-app video/audio calls during mentorship sessions.
- Calendar Sync: Integrate with Google Calendar or Outlook to automatically add booked sessions to the user's personal calendar.
- Session Reminders: automated reminders 15 minutes before a session starts.
π¨ UI/UX & Customization
- Dark Mode: Implement a system-aware Dark Mode (currently hardcoded to
AppTheme.lightTheme). - Localization: Add support for multiple languages (e.g., Bengali/English toggle) to serve a broader student base.
- Onboarding Flow: Create a dedicated onboarding tutorial for new users to explain features like "Wisdom Credits."
π Technical Optimizations
- State Management: Migrate complex screens from
setStateto a more robust solution like Riverpod or Bloc for better scalability. - Offline Support: Optimize Firestore caching to allow users to view their schedule and saved posts while offline.
- Admin Panel: Create a web-based admin panel to moderate posts, verify mentors, and manage reported content.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.
Developed by Abdullah Nazmus-Sakib CSE, Jahangirnagar University
This project is licensed under the MIT License - see the LICENSE file for details.























