Giter VIP home page Giter VIP logo

kydzoster-huntinteriors's Introduction

Hunt Interiors

Click LiveSite to open Hunt Interiors Milestone Project.

The Hunt Interiors website was developed for Code Institute as a final project. This website is for any client who requires an interior and exterior changes for their property and also for the site owner to be able to update and create its content without any prior knowledge of websites code using custom made administration tools.

Table of contents

  1. UX
    1. User goals
    2. Admin goals
    3. Design choices
    4. Wireframe
  2. Features
    1. Accounts
      1. Register page
      2. Login page
      3. Reset password
    2. Home
    3. Services
    4. Gallery
    5. Shop
    6. Testimonials
    7. Contact Us
    8. Dashboard
    9. Site Management
      1. Add Services
      2. Add Slides
      3. Add to Gallery
      4. Add Products
      5. Review Testaments
    10. Features left to implement
  3. Technologies
    1. Tools
    2. Libraries and frameworks
    3. Languages
  4. Testing
  5. Deployment
    1. Instructions
    2. Deployment to Heroku
  6. Credits
    1. Media
    2. Code
    3. Acknowledgment

UX

User goals

The target audience of Hunt Interiors are:

  • People who need interior and exterior changes to their property.
  • People who want to buy hand-made furniture created by Hunt Interiors.
  • Homeowners who need reliable and trustworthy maintenance experts.

User goals:

  • As a user I should be able to search a product from the shop when typing into a searchbar
  • As a user I should be able to learn more about the company and offered services
  • As a user I should be able to view recently added furniture on a homepage
  • As a user I should be able to view recently posted reviews on a homepage
  • As a user I should be able to view My Account to Register a new account
  • As a user I should be able to view My Account to Login with an email or username or login with a Facebook or Google account
  • As a user I should be able to view My Account and edit my personal details or change a password under My Dashboard
  • As a user I should be able to view My Account to Logout from my profile
  • As a user I should be able to view services to find out services provided by Hunt Interiors
  • As a user I should be able to view Gallery to see uploaded images of completed/delivered projects
  • As a user I should be able to click on an image to view its description and to view an image up-close/enlarged
  • As a user I should be able to view Shop to see furniture sold by Hunt Interiors, sorted by categories
  • As a user I should be able to view an Item and its description or to choose a quantity and add to a cart or return to all products
  • As a user I should be able to add a product to cart view its price and total price, update its quantity or remove it from cart
  • As a user I should be able to securely check out and receive an email about a successful purchase
  • As a user I should be able to view Testimonials/Reviews and add new review about the services or purchased products
  • As a user I should be able to edit or delete my posted reviews
  • As a user I should be able to view Contact Us page to see social platforms operated by Hunt Interiors or send a personalised message

Admin goals

The site owners goals are:

  • As an admin I should be able to have a Site management tools which provide easy to access most relevant CRUD options with a good looking overlay
  • As an admin I should be able to edit About Us information and pictures from the homepage
  • As an admin I should be able to add new services, slides, gallery and furniture from the site management page or edit them from their current location
  • As an admin I should be able to view Testimonials from website pages and approve or delete them

Design choices

Hunt Interiors website as an Interior and Exterior designer site should be easy for an eye, but also the one you would remember when visited.

Fonts

Styling

  • Box shadow in card to give a depth idea and contrast with the background.
  • Scroll effects to give a better experience to users.
  • Icons used are Themify

Wireframes

The wireframe developed for this project was built for desktop use, with taking in consideration that mobile users will also use this website. The wireframe was created in Balsamiq.

Features

Hunt Interiors contains 7 apps: accounts, bag, furnitures, gallery, home, services and testaments.

Accounts

The accounts app holds the functionality of dashboard/profile, register, login, logout and the password reset.

Dashboard

  • Dashboard lets you change or update your account/profile information
  • Profile must be completed to be able to buy products from the shop, a notification will be given and redirect will be initiated if the profile is incomplete.

Register page

  • Username, name, email and password are required to create an account.
  • Username must be unique.
  • Password should not be short, must contain at least 8 characters and should not be common.
  • As soon as the user creates its username they are redirected to the home page.

Login page

- Login page will ask for a username which can be a username or emailaddress and a password to login. - There is also an option to log in with Facebook or Google account

Forgot Password

  • Step 1: at the login page, under the password you can find the forgot password? link in which will lead to a form to add your account email.
  • Step 2: Add the email you registered with to reset the password.
  • Step 3: You will receive an email with a link that will allow you to add a different password sending you to a reset password form.
  • Step 4: Add a new password and confirm it.
  • Step 5: Once the password is set you can log in with the new password.

Home

The Home app holds the functionality for Title, Slides, Management and Contact Us.

Click Here to view a video of the Home page

Services

The Services app holds the functionality for Services.

Gallery

The Gallery app holds the functionality for Gallery.

Click Here to view a video of the Gallery page

  • Gallery can be viewed in three sections All Gallery, Interiors and Exteriors
  • Each picture can be viewed separately to find out a short description of a work accomplished in the picture.

Shop

The bag app holds the functionality for bag, checkout, search and invoice.

Click Here to view a video of the Shop page

  • Shop is separated into 5 categories: All Furnitures, Bed, Sofa, Chair and Table.
  • Client can also search for a product using a search a product bar, this search bar is a global and can be viewed from any page.
  • To view an Item need to click on View Item, it will show product details, product image and a short description
  • Potential buy can select a quantity and view a product in full scale when clicked on it.
  • Once the product is added to cart/bag it can be viewed in Shopping cart, where the client can change its quantity or delete it from a cart.
  • when the client is ready to checkout he will be directed to Stripe payment section, however, if the client has not updated his details he will be directed to his profile account
  • once payment has been made, the client will receive a notification of a successful payment and an email sent to his registered email address.

Testimonials

The Testaments app holds the functionality for testaments and testament review.

Click Here to view a video of the Testimonials page

  • Client can add a review of services received by Hunt Interiors, however, his review will have to be approved by the site admin to view it in Testimonials page.

Contact Us

Contact Us is a part of the Home app.

Click Here to view a video of the Contact Us page

  • Client can send a personalised message, email to Hunt Interiors.

Dashboard

The Dashboard is a part of the Account app.

  • Dashboard contains user profile information and an ability to edit it and change a password

Site Management

  • Site Admin can have easy to use basic CRUD functionality for Services, Shop, Gallery, Testimonials and About Us and Slides

Add Services

Click Here to view a video of the Add Services page

Add Slides

Click Here to view a video of the Add Slides and About us page

Add to Gallery

Click Here to view a video of the Add to Gallery page

Add Products

Click Here to view video of the Add Products page

Review Testaments

Click Here to view video of the Review Testaments page

Features Left To Implement

  1. Add star-based reviews for each Service, currently, there is a simple version of revies aka Testimonials.
  2. Add most bought furniture from the shop, currently, there are only recently added products.
  3. Service Level agreement, Policy/Privacy Terms acknowledgement during checkout/registration process.
  4. Allow users to view their reviews from their Dashboard.
  5. Save the purchased furniture history in their Dashboard.
  6. Implement a live feed from the Hunt Interiors Facebook and Instagram on a sidebar.
  7. Implement automated testing
  8. Add an option to gallery to view it as a full-screen carousel

Technologies

Tools

  • GitPod as an IDE to develop this project.
  • VSCode as an IDE to develop this project using localhost for testing purposes
  • Stripe to receive payments.
  • Heroku for hosting the application and deploy.
  • Github to share and store code remotely.
  • Balsamiq for the wireframes design.

Libraries and frameworks

  • Django a high level python web-framework used to design this project.
  • Bootstrap 4 a CSS library grid used for the development of this site.
  • Themify for the creation and implementation of icons.
  • Slick for the carousel and slider
  • Google fonts for custom font styling.
  • Decouple for secrets as env

Languages

  • This project uses HTML, CSS, Javascript and Python programming languages.

Testing

I have used Django Unit testing for urls.py, to activate it use python manage.py test app_name

  • On mobile phones, I have deactivated slider in home page for About Us section and image for Testimonials section.
  • As a payment method you can use 42's continually on all fields except email and postcode
  • I had to add !DOCTYPE html inside each html document before the actual html code, otherwise it gives doctype must be declared error when using GitPod

Deployment

Instructions

  1. Open https://github.com/kydzoster/huntinteriors, hit the green Gitpod button
  2. Run pip install -r requirements.txt in the command line
  3. Migrate the models python manage.py makemigrations and then python manage.py migrate
  4. Create superuser python manage.py createsuperuser
  5. Run Server python manage.py runserver, because DB is not being shared you will have to populate your DB yourself, you can do that through Django admin or Site Management under the My Account.

Deployment to Heroku

To make the deployment of this application to Heroku you will need to do the following steps.

  1. Signup for Heroku
  2. Install Heroku-CLI
  3. In command line type heroku login -i enter email and password when prompted
  4. Create a file named Procfile and add the following code release: python manage.py migrate && python manage.py loaddata initial_data.json then on the next line add web: gunicorn hunt_interiors.wsgi
  5. Save all the requirements by running pip freeze > requirements.txt in the command line
  6. After all the setup is done run git add ., git commit and git push
  7. In your Herokuaccount click new and create a new app.
  8. Select your region and create a name for your project.
  9. In your Heroku settings click reveal config vars.
  10. Add the following config variables:
KEY VALUE
DATABASE_URL <your postgres database url>
DEBUG <False>
DISABLE_COLLECTSTATIC <1>
EMAIL_HOST_PASSWORD <your email password>
EMAIL_HOST_USER <your email address>
SECRET_KEY <your secret key>
SOCIAL_AUTH_FACEBOOK_KEY <your facebook key>
SOCIAL_AUTH_FACEBOOK_SECRET <your facebook secret key>
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY <your Google key>
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET <your Google secret key>
EMAIL_ADDRESS <your email address>
EMAIL_PASSWORD <your email password>
STRIPE_PUBLIC_KEY <your stripe public key>
STRIPE_SECRET_KEY <your stripe secret key>
  1. store data base to > python manage.py dumpdata > initial_data.json
  2. Add a development (postgres) database by following this link: https://devcenter.heroku.com/articles/heroku-postgres-import-export

Credits

Media

Code

  • This application was developed using StartBootstrap templates. But during the development period, it was changed multiple times, a current wireframe is not the original wireframe.
  • Throughout the website, I used Code Institute code from the Boutique Ado project only changing bits and pieces so they would align with my project goals.
  • Django for Beginners v3 by William S. Vincent.
  • Django 3 By Example 3rd ed. by Antonio Mele.

Acknowledgment

  • The initial start of my project was inspired by Cocoabine youtuber, later I had to change some design by adding Code institute code from the Boutique Ado project. After the meeting with my Mentor, I was advised to change my design and inspire more from the professionals like This
  • Huge thanks go to Discord and stack overflow community, especially Martin Schere, Sohal Ahmad and Gaurav Sahdev for helping me with bugs during design, checkout and deployment.

kydzoster-huntinteriors's People

Contributors

kydzoster avatar

Watchers

 avatar

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.