- About The Project
- Features
- Tech Stack
- Screenshots
- Getting Started
- Project Structure
- API Documentation
- Contributing
- Contributors
- License
- Support
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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- python-decouple: Environment variable management
- Pillow: Image processing for user avatars
- Git: Version control system
Before you begin, ensure you have the following installed:
- Python 3.8 or higher
- pip (Python package installer)
- Git (for cloning the repository)
-
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
-
Navigate to the Django project directory
cd src -
Run database migrations
python manage.py makemigrations python manage.py migrate
-
Create a superuser (admin account)
python manage.py createsuperuser
-
Collect static files
python manage.py collectstatic
-
Start the development server
python manage.py runserver
-
Open your browser and navigate to
http://127.0.0.1:8000/ -
Access the admin panel at
http://127.0.0.1:8000/admin/
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
| 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 |
We welcome contributions from the community! Please read our Contributing Guidelines to get started.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- 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
Please read our Code of Conduct to keep our community approachable and respectable.
!HuerteDev π Full Stack Developer |
We welcome contributions from the community! Please read our Contributing Guidelines to get started.
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.
If you need help or have questions about AskItHub:
- π§ Email: huertejerald@gmail.com
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Documentation: Project Wiki
.png)
.png)
.png)
.png)
.png)