Skip to content

A one stop place to buy all the organic and healthy food

Notifications You must be signed in to change notification settings

zubin-arya/Go-organic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go-organic

A one-stop place to buy all the organic and healthy food. It is a web application that can be used to place orders for all organic foods. The website connects the end-user to the best local organic products like groceries, fruits, snacks, vegetables, and cosmetics. The user can sign up and sign in and browse through the catalog. The items can be added to the cart and the quantity of the items can be modified. While the user has added some products to the cart, she can continue to go back and shop. Once shopping is done, the user can proceed to payment after adding the delivery address and providing the necessary details. The user can then choose to log out or continue shopping. The user experience has been given the utmost importance and every aspect of this web application reflects that.

Table of Contents

Features

  • Login|Register|Logout

  • Browse|Search|Add items to the cart

  • Cart| Increase or decrease item quantity| Delete item from cart|add based on availability of products

  • Checkout Cart| Proceed to payment

  • PayPal Merchant API Integration | Sandbox Testing | Payment Modes: PayPal Cash, Card, Bank Transfer

  • Testimonial| About us| Contact details

Technology Stack

  • Front end: Angular 13

  • Back end: Go (1.17)

  • DB: SQLite3 using Gorm

Setup and Install

  • FrontEnd: Install NodeJS, Angular

  • Backend: Install Golang

  • Database: Install SQLite 3 using Gorm

Run instructions

Frontend

In terminal 1
cd <location to the folder Go-organic>
npm install;
ng serve -o

Backend

In terminal 2
cd <location to the folder Go-organic>/backend-go/pkg/api;
go run api.go

End To End Application Demo

Full-Application-Demo.mp4

Product Demo Short Videos

  • Frontend
  1. Sign In and Sign Up sprint3

  2. Logout

logout

  1. Add products to cart -> Checkout Components -> Proceed to Payment

sprint3demo

  1. Make Payment using PayPal (PayPal Cash, Card, Bank Transfer) sprint4pay

  2. Navigation bar -> Navigates within home pages -> Navigates from other page to homepage

navigation

  1. Testimonial page -> from home page

testimonial

  1. Cart -> Delete items from cart(will update cart number) -> Add button is disabled when items are out of stocks

cart

Testing

For testing, we did unit testing in Cypress (Angular) for frontend and in-built testing framework in Golang

Cypress Testing

SIGN UP

sign-up.specs.js.mp4

LOGIN

login.specs.js.mp4

LOGOUT:

logout.specs.js.mp4

CART

cart.specs.js.mp4

CHECKOUT:

checkout.specs.js.mp4

TESTIMONIAL:

testimonial.specs.js.mp4

DASHBOARD:

dashboard.specs.js.mp4

HOME:

home.specs.js.mp4

PAYPAL PAYMENT:

paypalpayment.specs.js.mp4

Back End Unit Testing

FETCH ALL PRODUCTS | FETCH PARTICULAR PRODUCT | SIGN UP| LOGIN | RESET PASSWORD | USER TESTIMONIAL | CART CHECKOUT

Backend-Unit-Testing.mp4

Backend API Documentation

Backend API Docs

Project Board Link

Project Board

Sprint 4 Deliverables

FrontEnd

  • Payment
    • Clicking on checkout redirects the user to fill out delivery mode and address and then proceed to the payment section
    • Added integration with paypal where end user can pay for the items
    • Added a payment successful component which is shown on successful payment. It allows the user to continue shopping
    • Test cases are complete
    • Integration with backend is complete. The number of remaining items of the products are updated in db.
  • Logout
    • UI is complete. Logout button appears once the user is logged in.
    • Clicking Logout redirects user to the sign in screen and ensures the session is still not shown to the user(cart elements)
    • Integration with backend is complete
    • Test cases are complete
  • Testimonial
    • UI is complete. The user can redirect from homepage to testimonial and read through all the testimonials.
    • Integration with backend is complete
    • Test cases are complete
  • Cart
    • Added functionality to add items to the cart only when they are in stock
    • Added functionality to delete the item from the cart, even if it has multiple quantities (on clicking delete)

Backend

  • Testimonial
    • Fetch the testimonials of the users from the database as a GET request
    • New Entries can be added in database to without need for code change
    • Integration with frontend is complete
    • Test cases are complete
  • Payment
    • Get the user specific cart items and checks against the inventory items of all products
    • Initiates third party API invocation passing all params of cart items as product key mapping in the database
    • DB update on the item quantity is reduced after successful payment
    • Integration with frontend is complete. The number of remaining items are correctly reflected in the database
    • Test cases are complete
  • Reset Password
    • Added a functionality to reset the password in case user has forgotten the password
    • New password is successfully updated in the database
    • Relogin attempt with old password does not allow user to login
    • Test cases are complete
  • Cart Checkout
    • Added functionality to keep a check on item values from cart items in the frontend against inventory in the database
    • Reflect which product is out of stock on items exceeding the inventory value in the database
    • Test cases are complete

Bugs Fixed

- Change home banner since the current one is blurred in different resolutions
- Navigate to components(groceries, cosmetics and all) doesn't work clicking navigation bar
- Update product description and fix styling

Sprint Report

Sprint 1

Sprint 2

Sprint 3

Sprint 4

Authors

Authors

Name GitHub ID Email ID Work Type
Ashwin Rai ashwin181 raiashwin018@gmail.com Backend Developer
Kavya Gopal KavyaGopal 95kavya@gmail.com Frontend Developer
Vaibhav Kulkarni KulkarniVaibhav kulvaibhavp@gmail.com Frontend Developer
Zubin Arya zubin-arya virtuoso02031995@gmail.com Backend Developer

About

A one stop place to buy all the organic and healthy food

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •