A feature-rich blog web application built with Django, featuring user authentication, blog post management, and user profiles.
- User Authentication (Register, Login, Logout)
- User Profiles with Profile Pictures
- Create, Read, Update, and Delete Blog Posts
- Responsive Design
- Media File Handling
- User-specific Content Management
- Create new blog posts with title and content
- View posts with pagination (8 posts per page on home page)
- Update and delete your own posts
- Automatic timestamp and author tracking
- User-specific post listings
- Detailed post view with author information
- Authentication required for creating posts
- Users can only edit/delete their own posts
- Built-in CSRF protection
- Secure user authentication
- Clean and intuitive post layout
- Responsive design for all screen sizes
- User-friendly navigation
- Latest posts sidebar
- About page with dynamic content
- Rich text content support
- Automatic date/time stamping
- Author attribution
- Permalink system for sharing
- User profile integration
- Class-based views for efficient code organization
- Common mixins for shared functionality
- Custom user authentication checks
- Pagination for better performance
- URL routing for clean links
- Template inheritance for consistent design
- Python 3.x
- Django Web Framework
- SQLite Database
- HTML/CSS
- Bootstrap for Styling
- JavaScript
webApp_coreyschafer/
├── blog/ # Blog application
├── users/ # User management application
├── media/ # User uploaded files
├── webApp_coreyschafer/ # Project settings
├── manage.py # Django management script
└── requirements.txt # Project dependencies
- Clone the repository:
git clone <repository-url>- Create a virtual environment and activate it:
python -m venv venv
source venv/Scripts/activate # On Windows
source venv/bin/activate # On Unix or MacOS- Install the required dependencies:
pip install -r requirements.txt- Apply database migrations:
python manage.py migrate- Create a superuser (Admin):
python manage.py createsuperuser- Run the development server:
python manage.py runserverThe application will be available at http://localhost:8000
- Register a new account or login with existing credentials
- Create, edit, and delete your blog posts
- Update your profile information and profile picture
- View and interact with posts from other users
Access the admin interface at http://localhost:8000/admin to manage:
- Users
- Blog Posts
- User Profiles
- Media Files
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Based on Corey Schafer's Django tutorial series
- Django Documentation
- Bootstrap Documentation