Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

DevQ&A

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.

Features

  • 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

Technology

  • HTML, CSS, and vanilla JavaScript
  • Firebase Authentication
  • Cloud Firestore
  • Firebase Hosting
  • Firebase JavaScript SDK

Repository structure

ask/
├── firebase.json
└── public/
    ├── index.html
    ├── style.css
    ├── app.js
    └── firebase-config.js

Local preview

Clone the repository:

git clone https://github.com/ICARUSTUDIO/ask.git
cd ask

For a simple static preview:

python -m http.server 8000 --directory public

Then 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 serve

Firebase configuration

public/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:

  1. Create a Firebase project.
  2. Enable Email/Password and Google authentication as needed.
  3. Create a Firestore database.
  4. Replace the web configuration with your project values.
  5. Add and test restrictive Firestore rules that enforce ownership and validate writes.
  6. Add authorised hosting domains and consider enabling App Check.

Data model

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.

Project status

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.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages