SpoodleSpace is a Django REST Framework API that powers the frontend React app, delivering a full social platform for Cockapoo dog owners and enthusiasts.
Originally inspired by Cockapoo Club, this project expands the idea into a more engaging, interactive, and scalable experience using HTML, CSS, JavaScript, Python, React, Bootstrap, and Django REST Framework.
🚧 Site is Available on Desktop, but Temporarily Unavailable on Mobile Devices. This is due a necessary Database Migration as a result of ElephantSQL's End of Life. The website has since been moved to Heroku's PostgreSQL database service
I am actively working to restore full functionality for use on mobile devices as quickly as possible. I am also evaluating a wide range of other relational database management systems to ensure the website has a robust and scalable infrastructure for the future.
Thank you for your patience. I appreciate your understanding.
This social platform allows users to connect, share photographs, and exchange information about caring for Cockapoos — one of Ireland’s most beloved dog breeds.
Unlike typical social networks, this project fosters a shared identity and belonging within a niche community. It is designed to attract:
- Families, couples, or individuals who already own Cockapoos.
- People seeking guidance on training, health, or behaviour.
- Potential owners researching the breed.
- Owners wanting to share photos, stories, and adventures.
- Anyone looking for peer support from fellow dog lovers.
The backend plays a critical role in linking frontend components and ensuring smooth user experiences.
- Users can access a navigation bar on all pages.
- Users can sign up, log in, and stay logged in using JWT.
- Users can tell whether they're logged in and view avatars.
- Conditional rendering: signed-in vs. signed-out views.
- View other users' profiles.
- See most followed profiles.
- View profile stats: post count, followers, etc.
- Follow/unfollow users.
- Update username and password.
- Create, view, edit, and delete posts.
- Like/unlike posts.
- Comment on posts, view timestamps, and edit/delete comments.
- Infinite scrolling for all post lists.
- Add and edit your dog's profile and photo.
- View recent and searchable dog profiles.
- View others’ dog profiles (if following).
- Add/edit your dog’s health info.
- View recent health details.
- Keyword search and infinite scrolling.
- Add/edit information about how dangerous your dog is.
- View recent posts and search.
- Infinite scrolling enabled.
-
Built-in Django models were used with three custom models:
DogProfileDogHealthDogDanger
This ERD details the core database relationships in the SpoodleSpace backend. It highlights the 1:1 and 1:M connections between user profiles, posts, comments, likes, followers, and data Users can CRUD that is specific to their Dog Profile.
Manual testing was carried out to:
- Restrict user access to protected actions.
- Verify full CRUD functionality in the API.
- Validate user story outcomes.
Refer to /testing.md for backend testing details.
User stories and acceptance criteria are tracked in GitHub Projects.
Frontend testing can be found in the frontend repo README and testing.md.
The Code Institute's CI Python Linter was used to validate all Python code.
All apps passed validation except for E501 long line warnings:
Model changes caused database inconsistencies.
A ForeignKey field was mistakenly used instead of OneToOneField, corrupting migrations.
Resolution involved deleting the old ElephantSQL DB, creating a new one, and updating env.py and Heroku Config Vars.
- Log in to ElephantSQL.
- Create a new instance (
Tiny Turtleplan). - Choose nearest region.
- Review and create.
- Copy the database URL.
- Add it to Heroku config vars.
- Log in to Heroku.
- Create a new app.
- Set region and app name.
- Link GitHub repo under Deploy tab.
- Install required packages (
psycopg2,dj-database-url, etc.). - Configure JWT, CORS, allowed hosts, etc.
- Ignore
env.py. - Generate
requirements.txt. - Click Deploy Branch.
- After build, click Open App.
⚠️ The database is currently being migrated to Supabase.
- W3Schools
- Stack Overflow
- Code Institute's Moments Project
- Tom Ainsworth – debugging support
- README Template – structure inspiration
- Mentors: Naoise Gaffney, Antonio Rodriguez
- CI Student Care Team and Tutors



