Skip to content

Huerte/AskItHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

243 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ AskItHub

Homepage


AskItHub Logo

A modern community-driven Q&A platform for developers and tech enthusiasts

Python Django Bootstrap SQLite

License Contributions Welcome


πŸ“– Table of Contents


🎯 About The Project

AskItHub is a modern, community-driven Q&A platform designed specifically for developers and tech enthusiasts. Built with Django and featuring a sleek, responsive UI, it provides an intuitive environment for asking questions, sharing knowledge, and building connections within the tech community.

🌟 Why AskItHub?

  • Modern UI/UX: Beautiful, responsive design with dark theme and glassmorphism effects
  • Community Focused: Connect with like-minded developers and share knowledge
  • Real-time Features: Live activity tracking and user engagement
  • Secure Authentication: Robust user management with password reset functionality
  • Topic Organization: Categorized questions for better content discovery
  • User Profiles: Rich user profiles with following/follower system

✨ Features

πŸ” Authentication & User Management

  • User Registration & Login: Secure authentication system
  • Password Reset: Email-based password recovery with verification codes
  • User Profiles: Customizable profiles with avatars and bio
  • Follow System: Follow other users and track their activities

πŸ’¬ Q&A Platform

  • Ask Questions: Create detailed questions with topics and descriptions
  • Answer System: Provide helpful answers to community questions
  • Topic Categories: Organize content by technology topics
  • Search & Discovery: Find relevant questions and answers easily

πŸ‘₯ Community Features

  • User Activity Tracking: Monitor community engagement
  • Following/Followers: Build connections with other developers
  • Question Analytics: View question views and engagement metrics
  • Real-time Updates: Live activity feed and notifications

🎨 Modern UI/UX

  • Responsive Design: Works seamlessly on desktop, tablet, and mobile
  • Dark Theme: Easy on the eyes with professional aesthetics
  • Glassmorphism Effects: Modern visual design with backdrop blur
  • Interactive Elements: Smooth animations and hover effects
  • Bootstrap 5: Latest Bootstrap framework for consistent styling

πŸ”§ Admin Features

  • Django Admin: Full-featured admin interface with Jazzmin theme
  • User Management: Comprehensive user and content moderation tools
  • Analytics Dashboard: Monitor platform usage and user engagement

πŸ›  Tech Stack

Backend

  • Python 3.8+: Core programming language
  • Django 5.2.4: High-level Python web framework
  • SQLite: Lightweight database for development
  • Django Jazzmin: Modern admin interface theme

Frontend

  • Bootstrap 5.3.7: CSS framework for responsive design
  • Bootstrap Icons: Icon library for consistent UI
  • HTML5/CSS3: Modern web standards
  • JavaScript: Interactive client-side functionality

Development Tools

  • python-decouple: Environment variable management
  • Pillow: Image processing for user avatars
  • Git: Version control system

πŸ“Έ Screenshots

🏠 Homepage

Homepage

πŸ” Authentication Pages

Login Register

πŸ’¬ Q&A Interface

Questions

πŸ‘€ Profile Page

Profile


πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Python 3.8 or higher
  • pip (Python package installer)
  • Git (for cloning the repository)

Installation

  1. Clone the repository

    git clone https://github.com/Huerte/askithub.git
    cd askithub
  2. Create a virtual environment

    # On Windows
    python -m venv venv
    venv\Scripts\activate
    
    # On macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies

    pip install -r requirements.txt

Environment Setup

  1. Navigate to the Django project directory

    cd src
  2. Run database migrations

    python manage.py makemigrations
    python manage.py migrate
  3. Create a superuser (admin account)

    python manage.py createsuperuser
  4. Collect static files

    python manage.py collectstatic

Running the Application

  1. Start the development server

    python manage.py runserver
  2. Open your browser and navigate to

    http://127.0.0.1:8000/
    
  3. Access the admin panel at

    http://127.0.0.1:8000/admin/
    

πŸ“ Project Structure

askithub/
β”œβ”€β”€ .env                         # Environment variables
β”œβ”€β”€ .gitignore                   # Git ignore rules
β”œβ”€β”€ LICENSE                      # MIT License
β”œβ”€β”€ project_enhancement_guide.md # Project enhancement documentation
β”œβ”€β”€ README.md                    # Project documentation
β”œβ”€β”€ requirements.txt             # Python dependencies
β”‚
β”œβ”€β”€ docs/                        # Documentation and screenshots
β”‚   └── screenshots/             # Application screenshots
β”‚       β”œβ”€β”€ Screenshot (235).png # Homepage screenshot
β”‚       β”œβ”€β”€ Screenshot (236).png # Login page screenshot
β”‚       β”œβ”€β”€ Screenshot (237).png # Register page screenshot
β”‚       β”œβ”€β”€ Screenshot (239).png # Profile page screenshot
β”‚       └── Screenshot (241).png # Q&A interface screenshot
β”‚
└── src/                         # Django project root
    β”œβ”€β”€ manage.py                # Django management script
    β”‚
    β”œβ”€β”€ accounts/                # User authentication & profiles
    β”‚   β”œβ”€β”€ admin.py             # Admin interface configuration
    β”‚   β”œβ”€β”€ apps.py              # App configuration
    β”‚   β”œβ”€β”€ models.py            # User, Profile, UserActivity models
    β”‚   β”œβ”€β”€ tests.py             # Test cases
    β”‚   β”œβ”€β”€ urls.py              # Account-related URLs
    β”‚   β”œβ”€β”€ views.py             # Authentication views
    β”‚   β”œβ”€β”€ __init__.py          # Python package marker
    β”‚   β”‚
    β”‚   β”œβ”€β”€ templates/auth/      # Authentication templates
    β”‚   β”‚   β”œβ”€β”€ login.html       # Login page template
    β”‚   β”‚   β”œβ”€β”€ register.html    # Registration page template
    β”‚   β”‚   β”œβ”€β”€ password_reset_request.html    # Password reset request
    β”‚   β”‚   β”œβ”€β”€ password_reset_verify.html     # Password reset verification
    β”‚   β”‚   └── password_reset_form.html       # Password reset form
    β”‚   β”‚
    β”‚   └── templatetags/        # Custom template tags
    β”‚       β”œβ”€β”€ subscription_tags.py
    β”‚       └── __init__.py
    β”‚
    β”œβ”€β”€ core/                    # Core functionality
    β”‚   β”œβ”€β”€ admin.py             # Admin interface configuration
    β”‚   β”œβ”€β”€ apps.py              # App configuration
    β”‚   β”œβ”€β”€ models.py            # Core models
    β”‚   β”œβ”€β”€ tests.py             # Test cases
    β”‚   β”œβ”€β”€ urls.py              # Core URLs
    β”‚   β”œβ”€β”€ views.py             # Core views
    β”‚   └── __init__.py          # Python package marker
    β”‚
    β”œβ”€β”€ forum/                   # Q&A functionality
    β”‚   β”œβ”€β”€ admin.py             # Admin interface configuration
    β”‚   β”œβ”€β”€ apps.py              # App configuration
    β”‚   β”œβ”€β”€ models.py            # Topic, QuestionThread, Answer models
    β”‚   β”œβ”€β”€ tests.py             # Test cases
    β”‚   β”œβ”€β”€ urls.py              # Forum URLs
    β”‚   β”œβ”€β”€ views.py             # Forum views
    β”‚   β”œβ”€β”€ __init__.py          # Python package marker
    β”‚   β”‚
    β”‚   └── templates/section/   # Forum templates
    β”‚       └── room.html        # Forum room template
    β”‚
    β”œβ”€β”€ main/                    # Django settings
    β”‚   β”œβ”€β”€ asgi.py              # ASGI configuration
    β”‚   β”œβ”€β”€ settings.py          # Django configuration
    β”‚   β”œβ”€β”€ urls.py              # Main URL configuration
    β”‚   β”œβ”€β”€ wsgi.py              # WSGI configuration
    β”‚   └── __init__.py          # Python package marker
    β”‚
    β”œβ”€β”€ media/                   # User-uploaded files
    β”‚   └── profile_pics/        # User profile pictures
    β”‚
    β”œβ”€β”€ static/                  # Static files
    β”‚   └── favicon.ico          # Site favicon
    β”‚
    └── templates/               # Base templates
        β”œβ”€β”€ 400.html             # Bad Request error page
        β”œβ”€β”€ 401.html             # Unauthorized error page
        β”œβ”€β”€ 403.html             # Forbidden error page
        β”œβ”€β”€ 404.html             # Not Found error page
        β”œβ”€β”€ 500.html             # Server Error error page
        β”œβ”€β”€ base.html            # Base template
        β”œβ”€β”€ home.html            # Homepage template
        β”‚
        β”œβ”€β”€ components/          # Reusable components
        β”‚   β”œβ”€β”€ footer.html      # Footer component
        β”‚   └── navbar.html      # Navigation component
        β”‚
        └── section/             # Page sections
            β”œβ”€β”€ about-page.html          # About page
            β”œβ”€β”€ explore-page.html        # Explore page
            β”œβ”€β”€ explore-topics-page.html # Explore topics page
            β”œβ”€β”€ followers-section.html   # Followers section
            β”œβ”€β”€ following-section.html   # Following section
            β”œβ”€β”€ profile-page.html        # Profile page
            β”œβ”€β”€ search-page.html         # Search page
            β”œβ”€β”€ topics-page.html         # Topics page
            β”œβ”€β”€ user_activity.html       # User activity page
            β”‚
            β”œβ”€β”€ contact-section/         # Contact pages
            β”‚   └── contact.html         # Contact page
            β”‚
            └── legal-section/           # Legal pages
                β”œβ”€β”€ guidelines.html      # Community guidelines
                β”œβ”€β”€ privacy.html         # Privacy policy
                └── terms.html           # Terms of service

πŸ“š API Documentation

Authentication Endpoints

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

Forum Endpoints

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

User Endpoints

Endpoint Method Description
/profile/<username>/ GET View user profile
/profile/<username>/follow/ POST Follow/unfollow user
/profile/<username>/activity/ GET View user activity

🀝 Contributing

We welcome contributions from the community! Please read our Contributing Guidelines to get started.

How to Contribute

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Follow PEP 8 Python style guidelines
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting PR

Code of Conduct

Please read our Code of Conduct to keep our community approachable and respectable.


πŸ‘₯ Contributors

πŸ† Project Creators & Maintainers

Huerte
!HuerteDev

πŸš€ Full Stack Developer

🀝 Want to Contribute?

We welcome contributions from the community! Please read our Contributing Guidelines to get started.

Contributors Forks Stars Issues


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - A short and simple permissive license with conditions only requiring preservation of copyright and license notices.


πŸ†˜ Support

If you need help or have questions about AskItHub:


Made by the AskItHub Community

GitHub

About

A website where anyone can ask any question and answer.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors