A collaborative developer question-and-answer platform built as a Firebase-hosted single-page application. Users can create accounts, ask programming questions, post answers, vote, maintain profiles, build reputation, mention other users, and receive notifications.
- Email/password authentication
- Google sign-in
- User profiles with avatar URLs and reputation
- Create, read, update, and delete questions
- Post and manage answers
- Question and answer voting
- Sort questions by recency, votes, or answer count
- User mentions and mention suggestions
- Real-time notifications
- Custom alert and confirmation interfaces
- Responsive, framework-free frontend
- HTML, CSS, and vanilla JavaScript
- Firebase Authentication
- Cloud Firestore
- Firebase Hosting
- Firebase JavaScript SDK
ask/
├── firebase.json
└── public/
├── index.html
├── style.css
├── app.js
└── firebase-config.js
Clone the repository:
git clone https://github.com/ICARUSTUDIO/ask.git
cd askFor a simple static preview:
python -m http.server 8000 --directory publicThen open http://localhost:8000.
For Firebase Hosting development, install the Firebase CLI and use the configured project only after authenticating with your own Firebase account:
npm install -g firebase-tools
firebase login
firebase servepublic/firebase-config.js contains the public Firebase web-app configuration required by the browser. Firebase web API keys identify a project but do not replace access control. Authentication settings, authorised domains, App Check, and especially Firestore security rules must be configured correctly in Firebase.
Before deploying your own copy:
- Create a Firebase project.
- Enable Email/Password and Google authentication as needed.
- Create a Firestore database.
- Replace the web configuration with your project values.
- Add and test restrictive Firestore rules that enforce ownership and validate writes.
- Add authorised hosting domains and consider enabling App Check.
The application works with collections for users, questions, answers, and notifications. User documents retain profile and reputation information, while question and answer records store authorship, timestamps, votes, and discussion content.
DevQ&A is a portfolio project demonstrating authentication, real-time cloud data, client-side state and navigation, CRUD workflows, notifications, profile management, and community features without a frontend framework.
Before production use, add automated tests, moderation tools, pagination, abuse controls, rate limiting, server-side reputation calculations, content sanitisation, and formally reviewed Firestore security rules.