Q&A Hub is a community-driven mobile application built with Flutter and powered by Firebase, designed to help users prepare for interviews by posting, exploring, and sharing interview questions. The app also features moderation tools, user profiles, and a robust backend for real-time data handling.
- Secure login and sign-up via Firebase Authentication (Email & Password).
- Password reset and session management support.
- Browse a wide range of categorized and tagged interview questions.
- View posts in real-time with automatic updates via Firestore.
- Contribute questions with formatted text and optional image uploads.
- Media files are stored securely in Firebase Storage.
- Save favorite questions for easy access later.
- Share questions as plain text via messaging apps and email.
- Users can report questions that are irrelevant or poorly framed.
- Admins receive and manage flagged content via a dedicated review panel.
- Users can view and edit their profile information including name, contact info, and profile picture.
- Personalized content and question history available.
- Admins can moderate reported posts, approve or reject questions, and assign categories.
- Helps maintain a high-quality content standard across the platform.
- Perform keyword-based searches across all questions.
- Filter questions by difficulty, topic, or programming language.
Technology | Purpose |
---|---|
Flutter | Cross-platform mobile development |
Firebase Authentication | User login, registration, and session management |
Cloud Firestore | Real-time NoSQL database for storing all app data |
Firebase Storage | Upload and serve images/files |
Firebase Functions (optional) | Handle server-side logic for automation |
Ensure the following are installed:
- Flutter SDK
- Firebase CLI
- A configured Firebase project in the Firebase Console
git clone https://github.com/yourusername/qa-hub.git
cd qa-hub
flutter pub get
- Open the Firebase Console.
- Add an Android app to your project.
- Download
google-services.json
and place it inandroid/app/
.
- Add an iOS app in the Firebase Console.
- Download
GoogleService-Info.plist
and place it inios/Runner/
.
- Enable Email/Password under Authentication → Sign-in methods.
- Set up a Firestore database and start in test mode or define custom security rules.
- Configure rules for file uploads (e.g., allow authenticated users to upload media).
Make sure your device or emulator is running, then execute:
flutter run
We welcome contributions to improve the platform! You can help by:
- 🐛 Reporting bugs
- 💡 Suggesting new features
- 🔧 Submitting pull requests
- Fork the repository
- Create a new branch (
git checkout -b feature/my-feature
) - Commit your changes (
git commit -m 'Add feature'
) - Push to your branch (
git push origin feature/my-feature
) - Open a Pull Request