π Live Site:
https://the-polite-pup-ad968cdaf660.herokuapp.com/
The Polite Pup is a full-stack Django web application designed for a professional dog training business.
The site allows users to learn about the trainer, understand available training services, and register, log in, and book training sessions online.
The project focuses on:
- Clear user experience
- Secure authentication
- Real-world CRUD functionality
- Responsive design
- Accessibility and performance optimisation
- Deployment to Heroku with a production database
This is a solo project built using Django, Python, HTML, CSS, Bootstrap, and PostgreSQL.
The site is designed to feel:
- Friendly and welcoming
- Professional and trustworthy
- Easy to navigate for all users, including those less comfortable with technology
- Clear call-to-action buttons (Register / Book a Session)
- Simple navigation with consistent layout
- Visual proof of credibility using training images
- Forms with validation and feedback
- Mobile-first responsive design
- Dog owners looking for professional training
- New puppy owners
- Owners seeking behavioural or obedience support
- Users with varying levels of technical ability
- Poppins (Google Fonts)
Used throughout the site to create a friendly yet professional tone. - Sans-serif fallback fonts included for accessibility and performance.
- Hero section introducing the brand

- Clear explanation of services

- Trainer profile
and
mission statement

- Image carousel showing real training sessions

Authenticated users can:
Each booking includes:
- Email confirmation for bookings
- Payment integration
- Trainer availability calendar
- User profile page
- Testimonials section
- Password reset functionality
- SQLite (development)
- PostgreSQL used as the relational database management.
- HTML - Used for the main site content.
- CSS -Used for styling and colours
- Bootstrap used as the front-end CSS framework for modern responsiveness and pre-built components.
- JavaScript - Used to support interactive functionality.
- Google Dev Tools - Used for troubleshooting, testing responsiveness, and styling.
- GitHub - Used to save and store the project files.
- Gitpod - Used as a cloud-based IDE for development.
- Git - Used for version control. (git add, git commit, git push)
- Google Fonts - Imported fonts used throughout the website.
- Heroku - Live deployment of the site was hosted here
- Django - Framework that helped build the site
- Gunicorn used for WSGI server
The project was deployed to Heroku using the following steps:
- Create Heroku app
- Add PostgreSQL add-on
- Configure environment variables:
- SECRET_KEY
- DATABASE_URL
- Configure settings for production:
- DEBUG = False
- ALLOWED_HOSTS
- CSRF and session security
- Collect static files
- Run migrations
- Scale web dyno
The live application can be found here:
https://the-polite-pup-ad968cdaf660.herokuapp.com/
Heroku needs two additional files in order to deploy properly.
- requirements.txt
- Procfile
You can install this project's requirements (where applicable) using:
- pip3 install -r requirements.txt
If you have your own packages that have been installed, then the requirements file needs updated using:
- pip3 freeze --local > requirements.txt
The Procfile can be created with the following command:
- echo web: gunicorn app_name.wsgi > Procfile
- replace app_name with the name of your primary Django app name; the folder where settings.py is located
For Heroku deployment, follow these steps to connect your own GitHub repository to the newly created app:
Either:
- Select Automatic Deployment from the Heroku app.
Or:
- In the Terminal/CLI, connect to Heroku using this command: heroku login -i
- Set the remote for Heroku: heroku git:remote -a app_name (replace app_name with your app name)
- After performing the standard Git add, commit, and push to GitHub, you can now type:
- git push heroku main
- Go to the [GitHub repository.] (https://github.com/Dmolloy/the_polite_pup).
- Locate the Code button above the list of files and click it.
- Select if you prefer to clone using HTTPS, SSH, or GitHub CLI and click the copy button to copy the URL to your clipboard.
- Open Git Bash or Terminal.
- Change the current working directory to the one where you want the cloned directory.
- In your IDE Terminal, type the following command to clone my repository:
- Press Enter to create your local clone.
By forking the GitHub Repository, we make a copy of the original repository on our GitHub account to view and/or make changes without affecting the original owner's repository. You can fork this repository by using the following steps:
- Log in to GitHub and locate the GitHub Repository.
- At the top of the Repository (not top of page) just above the "Settings" Button on the menu, locate the "Fork" Button.
- Once clicked, you should now have a copy of the original repository in your own GitHub account!
For all testing, please refer to the TESTING.md file.
There are no other known bugs.
- Stack Overflow- For help with learning proper syntax and troubleshooting tips
- Code Institute - Tutorials and engaging course work.
- youtube - For helping with understanding live deployment using Heroku
- favicon.io - For providing the favicon
- Squoosh - For resizing and converting images that were too big and causing performance issues. -Pexels - Where I sourced all of my iamges for this project.
I would like to thank Code Institute for the lessons and guidance in working on this project. The Discord Community for the support to help continue moving with the project.













