/Portfolio-Project-4

FullStack project

Primary LanguagePython

The Green Thumb

Am I Responsive

Navigation Through Content

Project Purpose

(Taken from Assessment Handbook provided by Code Institute)

  • Project purpose: In this project, you'll build a Full-Stack site based on business logic used to control a centrally-owned dataset. You will set up an authentication mechanism and provide role-based access to the site's data or other activities based on the dataset.

Learning Outcomes

  • Use an Agile methodology to plan and design a Full-Stack Web application using an MVC framework and related contemporary technologies.
  • Implement a data model, application features and business logic to manage, query and manipulate data to meet given needs in a particular real-world domain.
  • Identify and apply authorisation, authentication and permission features in a Full-Stack web application solution.
  • Create manual and/or automated tests for a Full-Stack Web application using an MVC framework and related contemporary technologies.
  • Use a distributed version control system and a repository hosting service to document, develop and maintain a Full-Stack Web application using an MVC framework and related contemporary technologies.
  • Deploy a Full-Stack Web application using an MVC framework and related contemporary technologies to a cloud-based platform.
  • Understand and use object-based software concepts

Technologies and Libraries used

Languages used

Databases

  • Postgresql
    • As database in Heroku
  • SQLite
    • As database for Gitpod, the initial thought was to use this for unittest. The setting is left as part of future features, to have automatic testing instead of manual testing

Frameworks and tools

Cloud storage and deployment services

Initial planning

Initial plan

  • In the intial meeting there was three ideas. Recipe website, Garden blog and Car Dealship. Two rough wireframes where created.

Wireframe 1 Wireframe 2
Wireframe 1 Wireframe 2

Plan

Home Page Blogpost page
Rough sketch of Garden blog Rough sketch of blogpost page

User Experience (UX)

Demographics

  • People who want to know more about gardening and adjancent subject.

User Goals

  • As a Site User I can view a list of posts so that I can select one to read
  • As a Site User I can click on a post so that I can read the full text
  • As a Site User / Admin I can view the number of likes on each post so that I can see which is the most popular or viral
  • As a Site User / Admin I can view comments on an individual post so that I can read the conversation
  • As a Site User I can register an account so that I can comment and like
  • As a Site User I can leave comments, edit and delete comments, on a post so that I can be involved in the conversation
  • As a Site Admin I can create, read, update and delete posts so that I can manage my blog content
  • As a Site Admin I can create draft posts so that I can finish writing the content later
  • As a Site Admin I can approve or disapprove comments so that I can filter out objectionable comments
  • As a Content Creator I can upload more then one image so that I can have multiple images in a carousel

Credits

Thank you

  • Spencer Barriball for always being there and being a fantastic mentor.
  • Daisy McGirr for helping me and giving me insights into backend cooperation with frontend, helping me with some debugs and lessons around django.
  • Bim Williams for being a good person to talk to, and for supplying link to API to render content into a downloadable PDF.

Content credits

  • This project is modelled and followed using the "I Think Therefore I Blog" walkthrough, produced by Matt Rudge at Code Institute. Using this allowed me to focus on understanding the concepts instead of inventing the wheel with every line of code I produce.
  • Another source used in this project is Djanogcentral. Wherever code from this walkthrough is used, there is credit given in that file.
  • To upload multiple images I took a lot of inspiration from a content creator on Youtube called The Pylot, my code is not a copy paste of his, but I used his video as a stepping stone to get functionality for my Carousels. I also used docs from Cloudinary.
  • For the alt_tags a line of code from a question on StackOverflow was used.

Media