This is a website for Rainbow Felt Designs to sell homemade crafted products in the UK.
This website is made to allow users to browse through and purchase crafted products. Users will be able to create an account, login and add products to a cart which they can then purchase with paypal. Users will be able to request custom products to be made, view information about all products and business.
This website uses Django as a base framework for site and for handling of databases. The site is styled with Bootstrap, mainly used for Nav-Bar, creating columns and making forms with the use of Django forms bootstrap. Small section of CSS code for collapsing navbar is from StackOverflow, see credits section for details. Javascript/JQuery has been used to improve the UX by improving responsiveness through AJAX, e.g. resize main container of site to fit users browser and to allow users to lookup to their postcode to make address input easier. Django Carton has been used to add shopping cart functionality to website, I've altered some of the code to add the ability to pay for contents of cart with PayPal. PayPal is used to pay for products using Django PayPal, PayPal is in sandbox mode for testing purposes, some settings would have to be changed for production. This website has been deployed on Heroku to be viewed and tested, you can see the site in action HERE
- Eye catching home page with image carousel
- Products page to browse through all available products
- Ability to view separate pages of products to see description and pictures
- Ability to register an account, login and log off
- Page to request custom products
- Ability to add products to cart
- About page describing the store
- Pay for cart contents using PayPal
- Ability to lookup address from postcode
- None
- HTML, CSS, Javascript and Python
- Are base languages for the website
- Bootstrap
- Used to give my project a simple, responsive layout
- jQuery
- Need for Bootstrap functionality and most of my javascript code
- Django
- Used as base framework for the site
- SQLite
- Using Django's inbuilt functionality to create and modify database
- Django Carton
- Used as a base to create shopping cart for the site
- Django Forms Bootstrap
- Used to create Bootstrap stylized forms with ease in Django
- Django PayPal
- Used to allow Django to talk to PayPal API
- Font Awesome
- Used for some of the icons on the site
- Jasmine
- Used to test my javascript
- WhiteNoise
- Used to serve static files once deployed on Heroku
- Google Geocoding API
- Used to make postcode/address lookup
- Used built in Django testing functionality to test my views and forms for my apps
- Used Jasmine to test postcode validation javascript
- Tested functionality and responsiveness of website on various devices/browsers (see below)
- Computer browsers:
- Opera, Firefox, Chrome, Edge
- Android phone:
- Chrome
- iPhone and iPad:
- Safari
- Firstly you will need to clone this repository by running the
git clone <project's Github URL>
command - After you've that you'll need to make sure that you have Python 2.7.14 installed
- You can get Python by installing it from here
- Ensure you have pip installed by running
pip --version
, it should be installed from Python installation - Install virtualenv with
pip install virtualenv
then create a virtual environment withvirtualenv rainbow
- Activate your virtual environment using
rainbow\scripts\activate
- Make sure you are in project root directory and use
pip install -r requirements\dev.txt
to install requirements - Now you can run the project using
python manage.py runserver
- The project will now run on localhost
- Make changes to the code and if you think it belongs in here then just submit a pull request
- A lot of images used were from Pixabay
- Some images from Etsy
- Section of CSS for collapsing navbar menu was by user ZimSystem from StackOverflow