This is a Dockerized Django application for managing blog posts, integrating Celery for asynchronous task execution, and utilizing Django Ninja for API development.
BlogApp aims to provide a platform for viewing, creating, and updating blog posts. It utilizes Django and Celery to handle backend logic, Django Ninja for API development, and integrates with PostgreSQL and Redis for data storage and caching.The project also includes GitHub Actions for continuous integration.
BlogApp has the following dependencies:
- Docker
- Python
- Django
- Git
- Redis
- Celery
- PostgreSQL
- Linux
- pytest
To install the Python dependencies, activate the virtual environment and run:
pip install -r requirements.txt
The project includes a settings.py file for Django configuration. Key configurations include database settings, authentication settings, Redis configurations, and Celery configuration.
To deploy BlogApp, follow these steps:
Clone the project repository.
git clone https://github.com/arfa79/BlogApp.git
Set up the environment and activate it:
source <path_to_virtual_environment>/bin/activate
Navigate to the project directory and run:
docker-compose up
In another terminal with the environment activated and in the project directory, run:
sh postgre.sh
This migrates the database and creates a superuser with information you provide in terminal.
Access the server at http://localhost:8000/
Please notice you need to pass the authentication first in admin panel based on superuser information .
To shut down the server and clean up, use:
sh end.sh
To run tests, execute the following command:
pytest blog/tests
This will run tests.
Contributions to BlogApp are welcome! If you'd like to contribute, please follow these guidelines:
Fork the repository and create a new branch for your feature or fix. Ensure your code follows the project's coding standards. Submit a pull request with a clear description of the changes.
BlogApp is licensed under the GNU General Public License v3.0 (GPL-3.0).
For any questions or feedback, feel free to reach out to the project maintainer(s) at [email protected]