Giter VIP home page Giter VIP logo

radical_rides's Introduction

Radical Rides

The Radical Rides e-commerce platoform is the 1 stop destination for surfers, skaters and snowboarders to purchase all of their sporting goods needs in one place.

Link to live site here.

image of the Radical Rides website home page on all devices

E-commerce business model & Product Model Canvas

The Radical Rides e-commerce platoform aims to address two issues. Pain point number 1 is that most surfers, skaters and snowboarders do at least 2 if not all 3 sports because the skill-set for all 3 sports is the same, however having to visit 3 different stores is not convenient. Also, because the equipment for all three sports is quite large, most stores have a limited stock which requires the athlete to order the needed board with the store and come back at a later date to pick up the desired board with the desired dimensions and customziations.

Radical Rides will be the central location for the needs of all 3 sports and should our store not provide the needed board the customer is looking for, the user can submit a custom board order right from the website.

image of the Radical Rides product model canvas

Customer Acquisition

Initial marketing will be focused on creating a Facebook business page since it is the largest social media platform on the market and then utilize Facebook's advertisment campaing features to drive potential customers to our Facebook page and then the e-commerce website.

image of the Radical Rides Facebook page

The second marketing strategy will be to collect user emails via the website which will then be targeted via email marketing campaigns with new product releases, promotions and discounts.

image of the Radical Rides email subscription feature

After Facebook ad marketing campaings, uitilization of Google Ads will be considered as the next logical move to increase brand awareness and drive new customers. The GoogleAds platform is very simple to use and it is convenient in having you set your own budget and only spend what you are willing to pay so there are no hidden costs. Their analytics also provide a lot of insight on where your customers are coming from and provide tips on how to better conduct marketing campaigns.

image of the Google ads platform

Business Requirements

Prior to initiating the project's development, user stories were created to give a high level understanding of what the platform's functional requirements will be and they were assigned labels based on their importance using the MoSCoW prioritization method.

image of the Radical Rides website userstories

The user stories were then placed into a kanban board in order to track the progress of the platform's development. The Agile development kanban board can be found here.

image of the Radical Rides project agile kanban board

Wireframes

Once the user stories were completed, the next phase of the project was to complete the UX of all the expected pages and functionalites in the platform. All wireframes can be found in the designMD file here.

Radical Rides project wireframes

Database Schema

After the wire-frames completion, a database schema was created to understand what models need to be devoloped and what information and data should be stored on the back-end database.

Radical Rides Project DB schema

Features

The Radical Rides e-commerce site consists of the following pages and features:

Landing Page

The home page of the Radical Rides website displays the website's navigation based on product type with a few custom pages and is followed by a carousel displaying the three main types of boards that the business offers making it clear to potential buyers that the website is a full-service platform for all three sports.

Radical Rides landing page

Products Page

Products can be viewed in three ways, either all the products which the website offers at the same time, products based on a sport category i.e. (surfing) or products based on a sports sub-category i.e. (surfing-long boards). When viewing numerous products, if the amount of products exceeds 15 products per page, the user will see a pagination feature at the bottom of the page to move onto the next page instead of having a very long scroll, providing a much simpler user experience.

Radical Rides products page

Product Details Page

The product details page provides all available attribute information of the product being viewed and also shows a section under the main product of other products which are similar to the prooduct being viewed with an option to visit the similar product's product details page.

Radical Rides Product details page

Shopping Bag

A central feature of any e-commerce platform, the shopping bag shows the list of items which the user has added for purchase. In the shopping bag, the user can increase or decrease the quantity of items they would like to purchase or delete them altogether and remove them from the shopping bag.

Radical Rides landing page

Liked Products Page

The liked products page is a very handy feature. Should the user be browsing products casually and is hesitant to add interesting products to the shopping bag because that would indicate an intent to purchase, each product details page has a LIKE button which the user can click and the product is immediately added to the liked or bookmarked products page.

Then at a later time they can visit the liked products page in order to see a summary of all of the produts which they liked on the site and likewise unlike and remove them from that section or click on them to go the product's details page and add them to the shopping bag.

The user does not need to be logged in or have an account in order to like products and add them to the liked products page, therefore minimizing the adoption drop rate of using this feature.

Radical Rides liked products page

Custom Board Orders Page

Should the website not have a board that meets the exact specifications of a customer, they have the option to visit the custom board orders page and submit a custom board order. They can specify the board type based on sport, board class, its length, width and thickness, image to be printed on the board, select a board color and input any additional notes to the board designer.

Radical Rides custom product orders page

Wish Lists Page

The website consits of a wishlists page. This feature gives the user the ability to create a wishlist for a specific occasion, add products to it and have it always saved to their profile in order to revisit at a later date and purchase when the needed occasion arrives. Products in a whislist are daynamic, users can add more products to them or remove products from them.

Radical Rides wishlist page

Product Reviews Page

Previous customers of Radical Rides products have the option of visiting the product reviews page and submitting a review of a product which they have purchased and can leave an honest review of how they feel about the product's quality with a star rating and text review.

Anyone can view the reviews page, however users have to be logged in to actually submit a review in order to avoid spam reviews and so that there is accountability on who wrote the review and the business owner can reach out to users if they were genuinely unhappy about a specific product in order to remedy the siuation. Viewing reviews however is open to all users whether logged in or not. This feature builds greater trust and transparency amongst potential customers regarding the business' products and offerings.

Radical Rides product reviews page

Contact Form

Users can submit a contact form and leave a message in order to get in touch with Radical Rides staff. The staff of the website receive the submitted messages in their Django admin portal.

Radical Rides contact form

Profile Page

The profile page is mainly focused on storing two pieces of information, the user's default delivery or shipping information and an order history of previous purchases. When a user fills out their profile delivery information, that information is filled out by default on the order checkout page simplifying the checkout process and providing a smoother user experience.

Radical Rides landing page

Newsletter Subscribtions

In the footer of every page, there is a form for users to input their email and subscribe to Radical Rides news and email marketing content. All inputed emails are stored in the business' MailChimp account.

Radical Rides subscription form

Admin User Product Management - Create Products

In addition to being able to CRUD products via the Django admin panel, when an admin user is logged into the website, in the profile section they will see an additional tab called "Product Management," which allows them CRUD products functionality via the e-commerce website without having to necessarily go into the admin panel. The "Product Managment" tab is visible only to users with admin credentials, regular users do not see this tab.

Radical Rides admin user rights

Radical Rides admin user rights

Admin User Product Management - Edit & Delete Products

When an admin user is logged into the website, visible only to them, on the all products page and product details page, they will see an "Edit product" and "Delete product" buttons next to each listed product on the website. These buttons are only visible to users with admin credentials, for everyone else, these buttons are hidden and not visible.

Radical Rides admin user rights

Radical Rides admin user rights

Testing

All fucntional testing, user story testing, device compatibility testing and browswer compatibility testing can be found in the TestingMD file.

Deployment

Deployment of the Radical Rides application required deployment of the web app on 3 platforms: Heroku, ElephantSQL and AWS S3 through the following steps:

  • In ElephantSQL I created a new instance and copied the new database URL.

  • Then on Heroku I created a new application and in the app's config vars section added the ElephantSQL database URL.

  • In my project's settings.py file I installed psycopg2, imported the dj_database_url, commented out the DATABASES section and replaced it with another temporary DATABASES section, migrated the database models to the new database, loaddata-ed the categories, products and created a new superuser. After completing the migration I removed the newly created temporary DATABASES section and uncommented the original DATABASES section in my settings file, git commited and git pushed my code in order to initiate the deployment.

  • Then on AWS I created a new bucket to store static files and configured the bucket's settings. In the bucket's settings, I updated the CORS configuration, enabled ACLs, updated object ownership permissions, generated a bucket policy, created a new group in the Identify and Access Management (IAM) section, attached the newly generated bucket policy to it, and finally retrieved and downloaded the access keys in a CSV file.

  • Back in the IDE I added 'storages' to my apps in settings.py and an additional setting to use AWS storage.

  • In Heroku, in the config vars section, I added the AWS retrieved keys and to use AWS and removed the disable collect static variable so that static files would be pushed to S3.

  • Back in the IDE again, I added a custom_storages.py file, imported S3Boto storage and added a media and static storage classes. After committing and pushing the latest changes, I deployed the app again.

  • Back in AW S3 I created a media folder, uploaded all the proudct images to the folder, granted them public read access and completed the media upload process.

  • Then from the Stripe admin interface I retrieved the Stripe public and private keys and added them as config variables in the Heroku app settings. Also in the Stripe admin dashboard I added the web app's checkout URL in the webhook endpoint URL section and marked it to receive all events.

  • I then copied the Stripe webhook signing secret and added it to the config vars in the Heroku settings.

Credits

radical_rides's People

Contributors

xalil404 avatar

Watchers

 avatar

radical_rides's Issues

Single Sign-on

As a user I would like to easily sign-in or register to the site using a social media account such as Gmail, Facebook or another popular service so that I would not need to remember my account details.

User Profile

As a user I would like to have a profile section where I can view my account details and purchase history.

Implement Products Page Pagination

As a user I would like to easily like to have multiple product pages so that i don't have an endless long scroll of a long list of products.

View Products

As a user I would like to access a list of skate, surf and snow boards/products so that I can purchase them.

Registration

As a user I would like to register an account in order to view my account details and order history. Account registration should include email address confirmation prior to accessing account.

Contact Page

As a user I would like to submit a contact form for an inquiry that I have.

Admin - CRUD Products

As the owner of the platform, I would like to view, add, edit and delete products listed on the website both through the admin panel and through the website front-end user interface.

Wishlist

As a user I would like to add products to a wishlist in order to easily purchase them at a later date.

Shopping Bag

As a user I would like to view the list of products which I have selected for purchase.

Password Recovery

As a user I would like to easily recover access to my account should I not remember my account login details.

Product Likes

As a user I would like to like different products in order to bookmark them and then easily access on a page all of the products which I found interesting on the website.

Custom Order

As a user I would like to submit a custom order for purchase in case the listed products do not meet my specific needs.

Login & Logout

As a user I would like to log in and log out of my account should I be on a device that is not mine.

Edit Shopping Bag

As a user I would like to edit my selected products for purchase prior to checkout. Capabilities should include updating the quantity of selected products or remove them altogether.

Product Reviews

As a user I would like to submit a product review for a product which I purchased from Radical Rides.

Product Search

As a user I would like to input text search values in a search product input field to find all matching products or results.

Order Confirmation

As a user I would like to view my order confirmation after completing checkout to see my order details and receive an email with the order confirmation details as well.

Individual Product

As a user I would like to view the individual page of a product to see it's details such as description, specification, etc....

Check Out

As a user I would like to enter my credit card details & Shipping information in order to securely complete a purchase and checkout.

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.