Portfolio_Project_5_v4 is an E-commerce website built using the Python/Django Framework to sell Musical Instruments.
- Contact Pages in Django - Python Django Dentist Website #6
- How To Send Email With Django - Python Django Dentist Website #7
- find unclosed html tags
- black.vercel.app Black v22.6.0 - The uncompromising Python code formatter.
- heroku
- AWS S3
- GitPod
- GitHub
- Visual Studio Code
- Code Institute
- Bootstrap
- Django
- Django allauth
- Django countries
- dj-database-url
- django-crispy-forms
- django-storages
- gunicorn
- Pillow
- Header and footer
- Bootstrap grid examples
- Bootstrap: Force columns to stack up vertically on mobile (responsive design)
(Note: image links are also in products/fixtures/products.json)
- clarinet-hd-compressed.png
- flute-hd-compressed.png
- guitar-hd-compressed.png
- harmonica-c-major-hd-compressed.png
- saxophone-hd-compressed.png
- trombone-hd-compressed.png
- alt link to trombone image with embeddable script
- trumpet-hd-compressed.png
- tuba-bb-hd-compressed.png
- violin-hd-compressed.png
- Used in portfolio_project_5_v4/urls.py on last line, as the command
# noqa: F811,E501
Ignoring Errors with Flake8
As per the LMS Tutorial which mentioned incorporating dependabot security updates, one of the options given was to simply merge the pull request from the dependabot which only added 3 characters to the project ".14" to update Django from 3.2 to 3.2.14 so that the project was no longer susceptible to what were deemed by the bot to be critical security vulnurabilities allowing the potential for SQL injection. However, the tutorial mentioned that this would not be applicable here, but since issued the severity had increased, so it was decided to merge the pull request, which led to 2 contributors being listed on the project i.e. the first being the author and the second being the dependabot (for adding ".14" to the requirements.txt file on a single merge commit). commit 0218233861c9ce95cf75731a46a584361da3a17f Showing 1 changed file with 1 addition and 1 deletion. In a previous trial run at this project, the commit was done manually, which did not result in the dependabot being listed as a contributor, so it was quite surprising when accept security update was selected that dependabot was listed as a contributor.
Due to time constraints:
- the review model needs more refinement.
- ideally edit button would handle the issue of one review per customer.
meta tags
- used for todo app [Django To Do List App With User Registration & Login](https://youtu.be/llbtoQTt4qw?t=237
the following sites are working on the local site: /todo/ /todo/task/1/ /todo/task/2/ /contact/
the following sites have been tested on the heroku deployed app: /products/
Was having an issue where by all pages were giving 500 errors with deployed and local images not showing.
I have run migrations at least once today as I added two or three new models but now images are not showing on local at all except for background and not in individual product views on heroku, with the latter giving a 500 error.
I discovered the issue on my local so I ran another deploy on heroku to see if it was just a local issue but now the individual products are not showing there either I am not sure what to do. I have not yet tried rolling back migrations.
Redeploy heroku
rerun the commands:
python3 manage.py loaddata categories python3 manage.py loaddata products
add DEVELOPMENT = 1 variable temporarily to herokku config vars
run heroku login -i
run heroku run python3 manage.py migrate --app herokuprojectappname
Heroku notices python app as this files is in root folder:
- requirements.txt This allows the Python buildpack to proceed.
- Deploying Python and Django Apps on Heroku
Followed Code Institute Deployment Tutorials and Changes sheet.
Amazon Web services was used to host media and static files.
S3 used.
Changes to AWS deployment: On create bucket: ACLs enabled, allowing objects in bucket to be owned by AWS accounts.
Object ownership: Bucket owner preferred option selected.
Under S3 bucket settings: The new page is scrollable as opposed to the old one where you click through each option. Properties tab > scroll to bottom of page > static website hosting Permissions tab > 3 settings.
The following was pasted into the CORS section:
[
{
"AllowedHeaders": [
"Authorization"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
enabled List for Everyone (public access)
- Accepted warning box
At this point a disabled edit button would have indicated Object Ownership needed to be changed to ACLs enabled.
Access Control List (ACL) both list and write options under Objects column were selected. both read and write options under Bucket ACL column were selected.
Under Objects column: List was enabled
User groups selected on side bar
Clicked Button to go to next page to add tags. Even though tags were not used, this step is necessary to get to the review policy page.
On sidebar User Groups clicked. Group selected.
Opened add permissions dropdown
Search Engine Optimisation
3 steps:
- see where website ranks cueerntly online
- looking where competitors rank
- Finding the right keywords and search phrases that your target customers tend to use on a daily basis.
- I noticed this was a good Readme to try and learn from specifically for SEO. Clay and fire GitHub repo
In Google I searched: musical instruments musical instruments stores musical instruments stores online buy musical instruments found: - this used the terms Gear and marketplace reverb
from this I searched: musical instrument gear shop store online orchestral musical instrument gear shop store online
short tail vs long tail keywords short more competitive less focused
other keywords less directly applicable that the user may use in which this site for musical instruments may turn up
musical instrument lessons learning a musical instrument how to play instruments listening to music composers musical analysis
What are questions that potential customers have? What are other things they will go online for?
Auto complete for search phrases or keywords
Further search terms
- musical instrument online buy
Selection based on relevance authority and volume
Eliminate generic words
eliminate search terms inclined to look for results which which speak from a place of authority, as this ecommerce store is unlikely to compete with that. unlikely to work: best musical instrument store top 10 musical instrument stores where is the best place to buy musical instruments
want ideally high volume low competition keywords
[WordTracker.com] searched musical instrument buy results:
string order guitar saxophones for sale clarinets for sale used drum sets for sale price of violin price of guitar harmonicas for sale pedal order guitar buy guitar
trending in last month
of these the following are relevant: string, guitar, saxophones, clarinets, violin, harmonicas, buy
from this search "buy violin" seems to have high volume and low competition.
[Google Keyword planner]
In settings.py, Debug set to False so that excess information used in Development is not presented in production, for security.
- For structure README.so
- For SEO Clay and fire GitHub repo
-
Used for task managemment YouTrack