A modern community-driven Q&A platform for developers and tech enthusiasts.
Built with Django and featuring a sleek, responsive UI, AskItHub provides an intuitive environment for asking questions, sharing knowledge, and building connections within the tech community.
- Installation Guide
- What It Does
- Demo
- How It Works
- API Documentation
- Contributing
- Contributors
- License
- Support
Follow these steps to install AskItHub locally.
| What you need | Where to get it |
|---|---|
| Python 3.8+ | python.org |
| Git | Already on your machine |
| pip | Included with Python |
Steps:
-
Clone the repository:
git clone https://github.com/Huerte/askithub.git cd askithub -
Create a virtual environment:
# On Windows python -m venv venv venv\Scripts\activate # On macOS/Linux python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Database & Migration:
cd src python manage.py makemigrations python manage.py migrate python manage.py createsuperuser -
Run the Server:
python manage.py collectstatic python manage.py runserver
Navigate to
http://127.0.0.1:8000/. (Admin at/admin/)
| Feature | What it means |
|---|---|
| Q&A Platform | Ask detailed questions, provide answers, organize by tech topics, and easily search content. |
| Community Tracking | Live activity feeds, question analytics, and a robust follower system for building connections. |
| Secure Authentication | Full user registration, password recovery, and customizable rich profiles. |
| Modern UI/UX | A dark theme with glassmorphism effects, responsive on all devices via Bootstrap 5. |
| Admin Dashboard | Full-featured moderation tools and analytics powered by the Django Jazzmin theme. |
Visual overview of the AskItHub platform.
Project structure:
askithub/
├── .env # Environment variables
├── docs/ # Documentation and screenshots
└── src/ # Django project root
├── accounts/ # User authentication & profiles
├── core/ # Core functionality
├── forum/ # Q&A functionality
├── main/ # Django settings and URL routing
├── media/ # User-uploaded files
├── static/ # Static CSS, JS, and Images
├── templates/ # Global HTML base templates
└── manage.py # Django management script
| Endpoint | Method | Description |
|---|---|---|
/accounts/login/ |
POST | User login |
/accounts/register/ |
POST | User registration |
/accounts/forgot-password/ |
POST | Password reset request |
/accounts/verify-code/ |
POST | Password reset verification |
/accounts/reset-password/ |
POST | Password reset completion |
| Endpoint | Method | Description |
|---|---|---|
/forum/ |
GET | List all questions |
/forum/ask/ |
POST | Create new question |
/forum/question/<id>/ |
GET | View specific question |
/forum/answer/<id>/ |
POST | Add answer to question |
/forum/topics/ |
GET | List all topics |
| Endpoint | Method | Description |
|---|---|---|
/profile/<username>/ |
GET | View user profile |
/profile/<username>/follow/ |
POST | Follow/unfollow user |
/profile/<username>/activity/ |
GET | View user activity |
Contributions are welcome. Here is how to go from zero to a submitted pull request.
Prerequisites: Python 3.8+ and Git.
Fork and clone:
# 1. Fork the repo on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/askithub.git
cd askithub
# 2. Keep your fork in sync with the original
git remote add upstream https://github.com/Huerte/askithub.git
Branch naming:
feat/short-description # New features
fix/short-description # Bug fixes
docs/short-description # Documentation only
chore/short-description # Maintenance or refactoring
Commit messages: Use plain English. Describe what changed and why:
# Good
git commit -m "feat: add user activity tracking dashboard"
git commit -m "fix: resolve password reset email delivery issue"
git commit -m "docs: clarify database setup in README"
# Avoid
git commit -m "fix stuff"
git commit -m "update"
Code style:
- Follow PEP 8 Python style guidelines.
- Follow the existing Django conventions in the project.
- Add tests for new features.
- Never swallow exceptions silently.
-
Push your branch to your fork:
git push origin feat/your-feature -
Open a Pull Request against
Huerte/askithub:mainon GitHub. -
In the PR description, briefly explain: what you changed, why, and how to test it.
-
If your change affects the app's output or behavior, update this README accordingly.
Distributed under the MIT License. See LICENSE for details.
If you need help or have questions about AskItHub:
- Email: huertejerald@gmail.com
- Bug Reports: GitHub Issues
- Discussions: GitHub Discussions
Built to provide an intuitive environment for asking questions and sharing knowledge.
.png)
.png)
.png)
.png)
.png)
