An open API service indexing awesome lists of open source software.

https://github.com/emicy963/django-blog

The Django Blog Project is a web application developed as part of a practical backend course using the Django framework. This project simulates a complete blog system, where users can create accounts, log in, publish and manage posts, as well as comment on articles.
https://github.com/emicy963/django-blog

Last synced: about 2 months ago
JSON representation

The Django Blog Project is a web application developed as part of a practical backend course using the Django framework. This project simulates a complete blog system, where users can create accounts, log in, publish and manage posts, as well as comment on articles.

Awesome Lists containing this project

README

        

# Django Blog Project

## Project Overview

This project is a **blog application** developed using the Django framework. The blog allows users to create and manage posts, and interact with the content through comments and likes. Additionally, it includes user profile management, with the ability to edit personal information. It also integrates third-party API data into the blog posts, making it a dynamic and feature-rich platform.

## Features

- User registration, login, and profile management.
- Create, edit, and delete blog posts.
- Comment on posts and interact with content.
- Pagination for post listings.
- Category and tag support for organizing posts.
- Search functionality to find specific posts.
- Third-party API integration for dynamic data.

## Technologies Used

- **Django**: Backend framework used for managing models, views, and templates.
- **PostgreSQL**: Database used in production for reliable data storage.
- **Bootstrap**: For responsive and modern design.
- **HTML/CSS**: Template styling and structure.
- **JavaScript**: For additional client-side functionality.

## Installation and Setup

### Pre-requisites
Before running this project, ensure you have the following installed:

- Python 3.x
- pip (Python package manager)
- PostgreSQL (for production database)

### Installation Steps

1. Clone the repository:
```bash
git clone https://github.com/emicy963/django-blog.git
cd django-blog
```

2. Set up a virtual environment and activate it:
```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```

3. Install the required packages:
```bash
pip install -r requirements.txt
```

4. Set up the database:
- Make sure PostgreSQL is running, and create a database for the project.
- Update the `DATABASES` configuration in the `settings.py` file to connect to your PostgreSQL instance.

5. Run database migrations:
```bash
python manage.py migrate
```

6. Create a superuser (admin):
```bash
python manage.py createsuperuser
```

7. Start the development server:
```bash
python manage.py runserver
```

8. Access the blog in your browser:
- Open `http://127.0.0.1:8000` in your web browser.

### Environment Variables

Set the following environment variables in a `.env` file to securely configure your project:

```bash
SECRET_KEY=your_secret_key
DEBUG=False
ALLOWED_HOSTS=your_domain_or_ip
DATABASE_URL=postgres://username:password@localhost:5432/your_db_name

```
## Usage

[Provide brief instructions on how to use the blog, e.g.:]

- Access the admin panel at `/admin` to manage blog posts and users
- Visit the homepage to view recent blog posts
- Register a new account or log in to create and manage your own posts

## Contributing

Weelcome contributions to improve this Django blog project! Here's how you can contribute:

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

Please make sure to update tests as appropriate and here to the project's coding standards.

### Reporting Issues

If you find a bug or have a suggestion for improvement, please open an issue on the GitHub repository. Provide as much detail as possible, including steps to reproduce the issue if applicable.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

MIT License

Copyright (c) [2024] [Anderson Cafurica]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```