This project is a minimalistic blog website built using Django.
- User registration and authentication
- Social login via Google and GitHub
- Phone number verification using SMS OTP
- Create, edit, and delete posts
- Download posts as PDFs with QR codes
- View trending posts (most viewed in the last month)
- Responsive pagination
- Auto-deletion of posts cancelled for more than 7 days
- Backend: Django, PostgreSQL
- Frontend: CKEditor, SweetAlert2
- Asynchronous Tasks: Celery, Redis
- SMS Services: Twilio
- Version Control: Git, GitHub
- Monitoring: Sentry
- Containerization: Docker
-
Clone the repository:
git clone https://github.com/abdujalil-gafforov/blog.git
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # Linux/MacOS venv\Scripts\activate # Windows
-
Install the required dependencies:
pip install -r requirements.txt
-
Apply database migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the local server:
python manage.py runserver
Visit
http://127.0.0.1:8000/
in your browser.
- Admin Panel: Access the admin panel at
http://127.0.0.1:8000/admin/
to manage posts, users, and other administrative tasks. - Manage Posts: Users can create, edit, and delete posts.
- Comments: Users can leave comments on posts.
- PDF Download: Each post can be downloaded as a PDF, allowing offline viewing or sharing.
To contribute, follow these steps:
- Fork the repository.
- Create your branch:
git checkout -b new-feature
- Make your changes and commit them:
git commit -m 'Added new feature'
- Push to the branch:
git push origin new-feature
- Submit a pull request.
This project is distributed under the MIT License.