The project as part of Module4:Code Institute .
Frameworks used including Django and PosgresSQL s3 and heroku.
UserStoryID | As a | I want to be able to | So that I can | Implemented |
---|---|---|---|---|
1 | Shopper | See a list of Paintings | Select some to purchase | Yes |
2 | Shopper | View Indivudual Painting details | Identify Painting Details , Price and framing options | Yes |
3 | Shopper | View Shopping Basket | Identify Shopping details and price costs at any time during purchase | Yes |
4 | Shopper | View new paintings created by user image and style preferences | to create photo art from image | Yes |
UserStoryID | As a | I want to be able to | So that I can | Implemented |
---|---|---|---|---|
5 | SiteUser | Easily Register for an account | Have a personal account and be able to view my profile | Yes |
6 | SiteUser | Easily logon or logout | Access my Personal account information | Yes |
7 | Shopper | Easily recover my password | Recover access to my account | Yes |
8 | Shopper | Have a personalised user profile | View my Personal order History , order confirmation and save my payment information | Yes |
UserStoryID | As a | I want to be able to | So that I can | Implemented |
---|---|---|---|---|
9 | Shopper | Search for a painting by Name and description | Find a specific Painting I had like to Purchase | Yes |
10 | Shopper | Easily see what I have searched for | quickly decide whether the painting was available | Yes |
11 | Shopper | Easily recover my password | Recover access to my account | Yes |
12 | Shopper | Sort paintings in each category | Easily identify products | Yes |
UserStoryID | As a | I want to be able to | So that I can | Implemented |
---|---|---|---|---|
13 | Shopper | Easily select the type of frame , size and quantity of a painting when purchasing it | easily get the right painting | Yes |
14 | Shopper | view items in my bag to be purchased | Identify quantity and price of items being purchased | Yes |
15 | Shopper | Easily enter my payment information | checkout quicky | Yes |
16 | Shopper | View order confirmation after checkout | Verify that havent made any mistakes | Yes |
UserStoryID | As a | I want to be able to | So that I can | Implemented |
---|---|---|---|---|
17 | Shopper | Add /Sell a Painting on Site | So I can earn money on site | Yes |
18 | Shopper | Edit/update a painting | Change Painting details | Yes |
19 | Shopper | Remove Paintings | So i can painting no longer on sale | Yes |
20 | Shopper | Sell a Painting on Site | earn money | No |
-
The Skeleton Layout:
- A HomePage : Page explaining User needs and Web app Goals
- Gallery: Page to display Paintings along with a Title , likes & No of Images uploaded with search and sorting options
- View Painting: Page to display a single Paintings in a User chosen Frame and option to save the shopping bag
- Create : A form page which allows users to create new paintings and allow users to either save it to the Gallery or simply view the painting
- Shopping bag : A page which allows users to view theur shopping products
- Subsuquent Edit and Delete Pages from the above
- Sign In / Create Account : Allow users to sign-up or login in to the website information
- Order History: Allow users to view their previous Order History
- Payment Form : Which Allows users to pay for their items in the shopping bag
Initial wireframe used for developing a prototype :
- Postgres SQL were designed as Follows :
-
Category Table which contains various categories for the paintings:
-
Painting Table which contains uploaded images ,created paintings , user choices etc regarding painitings:
-
Order Table which contains Info regarding order , delivery info etc .
-
User Profile table which contants info about user
-
A full schema of the table is as follows :
The Web-Pages are designed to make it users to shop and create new paintings very accessible ( albeit for limited images sizes)
-
Features Added:
- Allow Users to purchase paintings with specific frames and sizes
- Allow Users to create their own painting
- Allow users to see how each painting is created by tiling uploaded style and content images , offering inspiration to create new paintings
- Allow Users to create and then view the corresponding painting
- Allows users to create and then sell it on the website
- Allow users to sort and select categories of various paintings
- Allow users to search for paintings they are intrested in
- Allow users to have their own USer profiles with their Order History
-
Features Not Implemented or nice to Haves :
- Pagination
- A comment section
- A Rating section
- HTML
- CSS
- Javascript
- Python (Django)
- PosgresSQL
- Jquery
- deepai.org
-
Most of UI & BAck-end adapted from Code instute tutorials
-
Code for moving carousel with buttons adapted from https://stackoverflow.com/questions/46249541/change-arrow-colors-in-bootstraps-carousel to customise carousel icons
-
Frames created using code adapted from https://medium.com/@saishaddai/til-css-to-draw-a-frame-from-a-picture-2b0cfcf67c9a
-
Header & Navigation bar :
- Href links to correct elements -checked and working
- Nav Bar correcly alligned for Desktop Version only !
- NAv bar side display added for Mobile Version
-
Body :
- Loaded Pages in (Safari,Firefox and Chrome)
- Works well in Desktop versions + Mobile views
- Forms render well in all views
-
Full web page checks :
- Tested all of the above on desktop (firefox and chrome) and mobile (iphone 6+)
-
API requests :
- Tested API calls on large and small Image sizes
- Limited to 5000 calls in total
Bug-Location | Bug-Type | Solution | Bug-Status |
---|---|---|---|
Stripe Payments | Prices with smaller than $.50 returns error from stripe | Add $1 to prices smaller than $1 and fix the corresponding bag to show $0.00 in jinja | Fixed |
Index.html | search query | Change url link with corresponding search terms to return entire categories | Fixed |
Index html | Html-validation errors | NA | Open |
R14 error Heroku | App would close after afew seconds due to Image processing script taking up too much memory | Had to exclude all the image processing scripts and Used an external API | Fixed |
The Web pages was deployed through following :
- Setting up a heroku app with login.
- adding files through git remote
- made sure all keys + access keys were deleted and any accidentally uplodaded keys were rotated to new ones .All config variables were set to enviornment variables using Heroku set CLI and using a pylib dot env to read the env variables.
- Set up Postgres Database
- Install requirements .txt
- Build process through git remote heroku and push
Thanks for Code institute and their awesome tutor support team :)