GithubHelp home page GithubHelp logo

amylour / freefido_v2 Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 14.9 MB

A social-community and booking system for a private dog park. Built for Code Institute's Full Stack Software Development Diploma using Django, ElephantSQL and Bootstrap.

Dockerfile 1.33% Shell 0.63% Python 37.28% Procfile 0.02% HTML 47.35% CSS 13.39%

freefido_v2's Introduction

  • πŸ‘‹ Hi, I’m @amylour
  • πŸ‘€ I’m currently learning React, Next.js, Tailwind and TypeScript.
  • 🌱 I am a Full Stack Developer and have worked with Django, HTML/CSS, JS, Python, Flask, Bootstrap and jQuery.
  • πŸ“ I sometimes write and post my articles and illustrations on CodΓΊ https://www.codu.co/amy-richardson-dev
  • πŸ—οΈ Portfolio site under construction.

freefido_v2's People

Contributors

amylour avatar

Stargazers

 avatar

Watchers

 avatar  avatar

freefido_v2's Issues

Testing #5 - Booking Feature

As a developer I can thoroughly test my Booking Feature so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Booking Feature is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript (if applicable)
  • Validate Python
  • Record results in TESTING.md

Dev Task # 19 - Visit Us Page: Styling & Content

As a developer I can add content and styling to my visit us page so that it can inform and guide a park visitor.

Acceptance Criteria

  1. Visit Us page shows map of park location
  2. Park address and Opening Times clearly displayed
  3. User reviews are displayed

Tasks

  • Add CSS and Bootstrap styling to page
  • Connect Google Map to the page for interactivity
  • Create User Review feature

Bug # 2 - icontains invalid lookup

  • When using the 'Search' bar feature in the Articles section, my search for 'beagle', a word featured in an article, yielded 'Related Field has invalid lookup: icontains'.
  • When looking for the reason for the error code I discovered that by including the 'author' in my views.py search function, I was causing this error as 'author' is a ForeignKey in this model.
  • Removing 'author' from the search function fixed this thanks to this StackOverflow question -> https://stackoverflow.com/questions/11754877/troubleshooting-related-field-has-invalid-lookup-icontains

User Story # 25 - Create an Article

As a user, I can fill-in, edit and save an article text field so that I can create and share an article from my profile.

Acceptance Crteria

  1. User can navigate to the the 'Add Article' page.
  2. Django RichTextField is visible to user to enter and edit their article.
  3. 'Save&Post' button allows the user to save the article and share it to the Article view page.

Tasks

  • Install and setup Django RichTextField editor
  • Make changes to models.py and migrate
  • Create 'add_article.html' page
  • Create method to navigate to 'add_article' page, enter the article data and save it to the user's model profile and to the article page.
  • Ensure authentication is present and that the article saves to the user's model database

Dev Task # 22 TESTING.md create and update

As a developer I can create and update a TESTING.md file so that I can record and document the testing of my project.

Tasks

  • Create a TESTING.md file
  • Create structure of TESTING file
  • Update TESTING sections
  • Add screenshots of testing validation/bugs/form validation
  • Spellcheck and format

User Story # 32 - Add Reviews Feature

As a user I can fill out a review form so that I can leave feedback about my park visit.

Acceptance Criteria

  1. User can see the 'Leave a Review' form field
  2. User can submit a review and 'paws out of 5' score
  3. Review is submitted and viewable on the 'Visit Us' page

Tasks

  • Add feedback feature in 'Visit Us' app
  • Add form field to visit us page
  • Create views for form submission by logged in user
  • Display 5 reviews from a shuffled array of user reviews, random reviews shown change everyday

User Story # 23 - Comment on a post

As a user I can comment on a post so that I can interact and get involved with the conversation.

Acceptance Criteria

  • A text field and submit button allows an authenticated user to submit a comment.

Tasks

  • Create comment field on article page html
  • Ensure user is authenticated so that they can interact with the comment field
  • Connect user model with the article post model and comment model

User Story # 17 - Articles feature setup

As an user, I want to be able to create and view articles so that I can learn more about dog related topics

Acceptance Criteria

  • A user can view, create, edit and delete articles

Tasks

  • Create Articles app
  • Connect urls/views/templates
  • Connect user with article ownership
  • Add 'articles' to INSTALLED APPS
  • Configure admin.py for admin access

User Story # 30 - User Feedback for max booking allowance

As a user, I can get feedback from the website that will explain that only four active bookings are allowed per person.

Acceptance Criteria

  1. User is informed via message that they cannot have more than 4 active bookings.
  2. User is unable to book more than 4 bookings per account.

Tasks

  • Create views.py code preventing the user from having more than 4 active bookings
  • Ensure message is displayed on screen when tested
  • Display User's active bookings in their profile

User Story # 26 - Delete Article

As a user, I can click on the delete button on my own article page so that I can delete the article.

Acceptance Criteria

  1. User must be authorised to view 'Delete' button only on their own articles
  2. User is asked to confirm deletion to prevent error
  3. Unauthorised user brought to 403 error page with redirect to 'Home' page

Tasks

  • Create 403 error page
  • Create confirm article deletion page
  • Use LoginRequiredMixin/UserPassesTestMixin to secure auth
  • Create ArticleDelete view
  • Connect urls

User Story # 20 - View Articles

As a user I can visit the articles page so that I can read and interact with the articles.

Acceptance Criteria

  • User can access the 'Articles' page via the navbar.
  • Articles page displays article cards for user to choose.

Tasks

  • Create Articles template page
  • Connect views and urls
  • Update navbar link to bring user to Articles page
  • Basic styling of page

User Story # 24 - Alert messages

As a user I want to see a message when I have successfully/unsuccessfully completed an action so that I can receive feedback from my interaction with the website.

Acceptance Criteria

  1. Alert message displays successfully for login/logout/errors/information.
  2. Alert message disappears by itself after a set amount of time and have a manual close button.
  3. Alert messages styled to reflect the project whilst staying sensitive to the alert type.

Tasks

  • Create alert message HTML using Bootstrap
  • Add new classes to add my own styling for the project design
  • Add JS setTimeout function to have the message fade away after a set amount of time.
  • Add additional message to inform user if their comment has been approved and posted.

User Story # 31 - Upload image to Gallery Wall

As a user I can click the upload image button on the Gallery page so that I can upload an image of my dog have fun in the park.

Acceptance Criteria

  1. Upload image button brings user to upload image page
  2. User can choose an image and give it a title and an image alt
  3. Image is successfully uploaded to the Gallery page

Tasks

  • Create upload image form
  • Write upload image views
  • Connect the urls
  • Test that image is saved correctly to Cloudinary via admin panel and displayed on page

User Story # 29 - Delete comment

As a user, I can click a delete button so that I can remove a comment that I have made.

Acceptance Criteria

  1. User can see the 'delete' button for removing comment.
  2. User is brought to confirm comment deletion page.
  3. Comment is removed successfully.

Tasks

  • Add 'delete' button to comment area for registered user's related comment
  • Delete button brings user to confirm deletion page
  • Confirm deletion page created
  • Comment is removed and redirect back to article page

User Story # 28 - Search function

As a user, I can enter a search term into the search bar so that I can search for particular articles and articles with information topics that I am interested in.

Acceptance Criteria

  1. User can see the 'search' bar in the navbar of the Article page views only
  2. Search bar takes user input
  3. Article page displays search results

Tasks

  • Create search bar html
  • Create Search bars function in views.py
  • Search bar only yields 'published' articles
  • Check returned article is viewable when clicked

Bug #5 - Deceptive Site Issue

Deceptive site issue - Heroku site presenting as a 'Deceptive Site' intermittently on Chrome, Edge, FireFox, Safari

There were a couple of fixes for this issue. Firstly, on consulting with Tutor Support, Joanne assured me that since I had double checked all of my csrf tokens, forms and anchor tags that unfortunately the deceptive site issue was an occassional problem for different people and it was not an issue for assessment once I had made all of my checks. I persued the issue further and validated my site with Google using a head meta tag and validation via their Google Search Console. It informed me that my site had issues with 'phising' but it could not give me the exact location. There were no issues with a deceptive site with Google after this issue yet the issue remained with other browsers. I then discovered that occassionally when clicking 'Open App' from the Heroku dashboard, it was not automatically applying 'https://' to the site address and that this was causing the issue. Typing the full URL allows browsing of the site with no issues (so far).| 43975ef |

User Story # 24 - Gallery page

As a user, I can visit the gallery page so that I can view the gallery wall of photos.

Acceptance Criteria

  1. User can visit the gallery page when clicking on the gallery link.
  2. Gallery page is viewable by registered and non-registered users.

Tasks

  • Create basic gallery page
  • Link urls and navbar button
  • Write view for gallery view page

Testing #1 - Home Page

As a developer I can thoroughly test my Home Page so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Home Page is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript
  • Validate Python
  • Record results in TESTING.md

Dev Task # 18 - Register/Sign In/Logout Pages: Styling & Content

As a developer I can style the authentication pages so that I can make them visually appealing and coherent for the user.

Acceptance Criteria

  1. User can access auth pages when clicked
  2. Auth pages process user data correctly with styled button
  3. Design keeping in line with project styling

Tasks

  • Style forms in project styling
  • Test buttons work

User Story # 18 - Site Pagination

As a user, I would like to move to the next page so that I can view all of the articles.

Acceptance Criteria

  • Successful addition of Django's site pagination features

Tasks

  • Add paginate order to ArticleList Class

Testing #6 - Gallery Feature

As a developer I can thoroughly test my Booking Feature so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Booking Feature is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript (if applicable)
  • Validate Python
  • Record results in TESTING.md

Testing #2 - SignIn/SignUp

As a developer I can thoroughly test my Sign In/SignUp pages so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Sign Up/In pages are fully responsive, cross-browser compatible, run without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript
  • Validate Python
  • Record results in TESTING.md

Dev Task # 21 - README.md updating

As a developer I can create and update a README.md file so that I can record and document my project progress.

Tasks

  • Create README.md
  • Create README structure and contents
  • Complete README sections with project info
  • Screenshot wireframes/features/design content for addition to README
  • Add Deployment section
  • Update Credits section with reading material and tutorials
  • Spell check and format

User Story # 34 - Delete Review Feat

As a user I can click the delete button beside my review so that I can delete a review that I made.

Acceptance Criteria

  1. Logged in relevant user can see the delete button beside their review
  2. Delete button asks user to confirm deletion
  3. Review is removed from user profile and review bank

Tasks

  • Create delete button and views
  • Connect urls
  • Check delete form submission has removed review

Dev Task # 15 - Articles Pages: Styling & Content

As a developer I can style the article pages so that I can make them visually appealing and enjoyable for the user.

Acceptance Criteria

  1. User can access article pages when clicked
  2. Article pages display user created articles clearly
  3. Article create form submits and displays user content appropriately
  4. Design keeping in line with project styling

Tasks

  • Style pages in project styling as per Figma wireframes
  • Test buttons work for Create, Edit and delete

Dev Task # 14 - Home Page: Style & Content

As a developer, I can add content and styling to my home page so that it is informative and engaging for the user.

Acceptance Criteria

  1. User is engaged with the website's styling
  2. Website meets accessibility standards for contrast
  3. Information is clear
  4. Images are rendered appropriately

Tasks

  • Add logo and icons to navbar
  • Tidy hero section -> add 'Book Now' button
  • Add About/Safety/Benefits text + images

Bug #6 - Wrong photo deletion

Wrong photo deletion - Delete icon was deleting the most recently uploaded photograph instead of the actual photo it was connected to
Fix -> Developer typo issue with calling photo.pk instead of photo.id

Testing #3 - Profile Feature

As a developer I can thoroughly test my Profile Feature so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Profile Feature is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript (if applicable)
  • Validate Python
  • Record results in TESTING.md

Dev Task # 16 - Booking Pages: Styling & Content

As a developer I can style the booking pages so that I can make them visually appealing and coherent for the user.

Acceptance Criteria

  1. User can access booking pages when clicked
  2. Booking pages process user data correctly with styled buttons
  3. Design keeping in line with project styling

Tasks

  • Style booking forms as per project styling
  • Test buttons work

Bug # 3 - User id/Profile pk mismatch

Info at commit 976b5ce -> When creating the delete account function, I managed to delete profile pk without deleting the user id which left the id/pk mismatched and caused issues for any new users created. I accessed the python shell and tried to match the id/pk again and ensure that the next registered account would be successful. Unfortunately not so I flushed the db and re-created my superuser. Issue resolved and delete code function removed until function is better understood.

User Story # 27 - Edit Article

As a user I can click on the edit button of my article so that I can edit the article and save it again.

Acceptance Criteria

  1. Successful access to edit button for registered owner of the article
  2. Edit button redirects user to the edit article page
  3. Edit form data saves and article is reposted with the new information

Tasks

  • Create 'Edit Article' html.
  • Create edit view using Django UpdateView functionality
  • Link urls to relevant buttons.
  • Test edit button to ensure only for registered users and that it is changing the data when saved.

User Story # 22 - Like/Unlike Article

As a user I can click a button icon so that I can like/unlike and article.

Acceptance Criteria

  • Button Icon allows user interaction with the article

Tasks

  • Create button icon link
  • Ensure user authentication for button interaction
  • Connect like button with user model

Dev Task - Project Planning Setup

As a developer, I can set up my project planning environments so that I can ** drive my project forward and keep track of my projects progress**.

Tasks

  • Set up GitHub Projects board
  • Set up Project 5 local folder
  • Set up Figma file for wireframes
  • Setup Lucidchart for ERD

Testing # 7 - Visit Us Page

As a developer I can thoroughly test my Visit Us page so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Visit Us page is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript (if applicable)
  • Validate Python
  • Record results in TESTING.md

Dev Task # 17 - Gallery Page: Styling & Content

As a developer I can add styling to the Gallery page so that it has a successful UX/UI.

Acceptance Criteria

  1. Add photo icon works
  2. Design fits in with wireframes
  3. Ensure photos added add to the layout correctly
  4. Delete image button is visible and works

Tasks

  • Create add photo icon
  • Change Gallery forms to fit in with color scheme
  • Position delete photo button for relevant authenticated user

User Story #33 - Edit Review Feat

As a user I can edit my review so that I can correct a mistake or change my review.

Acceptance Criteria

  1. User can only edit own review once logged in
  2. Edit form updates review

Tasks

  • Create edit review form and views
  • Setup edit button for relevant user
  • Display user's own reviews on profile page

User Story # 35 - Delete Photo

As a user, I can click the trash can icon when I hover/click on a photo so that I can delete the photo.

Acceptance Criteria

  • User can remove photo by clicking the trash icon

Tasks

  • Add overlay to image
  • Add 'trash' icon and connect views for delete function
  • Test function

Testing #4 - Articles Feature

As a developer I can thoroughly test my Article Feature so that I can ensure that there are no bugs or issues left for the user.

Acceptance Criteria

  • Article Feature is fully responsive, cross-browser compatible, runs without any bugs

Tasks

  • Check responsiveness
  • Test all buttons/forms/inputs
  • Test across browsers
  • Validate HTML
  • Validate JavaScript (if applicable)
  • Validate Python
  • Record results in TESTING.md

User Story # 19 - View Likes

As a user, I would like to view an article's likes so that I can find the most interesting articles.

Acceptance Criteria

  • Successful addition of like icon under article post

Tasks

  • Source 'like' icon
  • Add icon to static/icons
  • Add icon img tag to article.html

User Story # 21 - Open Article

As a user I can click on an article so that I can view it's contents.

Acceptance Criteria

  • User can view the article on click of the article card.

Tasks

  • Create article page html for viewing article contents
  • Link article card title to the article page view

Dev Task # 20 - Add favicon

As a developer I can add a favicon top my website so that I can make it more noticeable.

Acceptance Criteria

  • Favicon is viewable in browser tab

Tasks

  • Create Favicon
  • Add to base.html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.