A Django-based travel blog application for travel and nomadic life experiences. The app is built with django, and styled with Bootstrap and boasts optimize images, and front end moderation. The application is hosted on Railway.app and uses a Neon DB for the database and Cloudinary for image hosting.
- User authentication and profile management
- CRUD functionality.
- Front end moderation for admin users.
- Post and comment Flagging system.
- Image optimization using Cloudinary
- Automated testing with GitHub Actions
- Responsive design with Bootstrap
- Hosted on Railway.app
- Python 3.x
- Django
- PostgreSQL
- Cloudinary account
-
Clone the repository:
git clone https://github.com/roomacarthur/travel-blog.git cd travel-blog
-
Create a virtual environment and activate it:
python -m venv env source env/bin/activate # On Windows use `env\Scripts\activate`
-
Install the dependencies:
pip install -r reqs-dev.txt
-
Set up environment variables: Create a
.env
file in the project root and add the following:DEBUG=True SECRET_KEY=your_secret_key DATABASE_URL=your_database_url CLOUDINARY_URL=your_cloudinary_url
-
Apply migrations:
python manage.py migrate
-
Run the development server:
python manage.py runserver
Unit tests focus on individual components like models, views, and forms.
python manage.py test
To test email handling, use the following management command:
python manage.py sendtestemail --admin
GitHub Actions is used to run the tests automatically on each pull request to ensure code quality and reliability.
The application is deployed on Railway.app.
This project is licensed under the MIT License. See the LICENSE file for more details.