All Projects → AmitXShukla → Online-Shop-eCommerce-App-Angular-6-Firebase

AmitXShukla / Online-Shop-eCommerce-App-Angular-6-Firebase

Licence: MIT license
Online eCommerce Store app in Angular 11.0 & Firebase

Programming Languages

HTML
75241 projects
typescript
32286 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Online-Shop-eCommerce-App-Angular-6-Firebase

Angularspree
angular e-commerce framework for online store
Stars: ✭ 1,576 (+1541.67%)
Mutual labels:  ecommerce, online, store
saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 15,824 (+16383.33%)
Mutual labels:  ecommerce, store
solidus graphql api
GraphQL comes to Solidus!
Stars: ✭ 28 (-70.83%)
Mutual labels:  ecommerce, store
Openshop.io Ios
OpenShop.io
Stars: ✭ 374 (+289.58%)
Mutual labels:  ecommerce, mobile-app
E-commerceRetailerFYP
Android E-commerce Platform. Allow retailer to post product, manage order, chat and view report
Stars: ✭ 31 (-67.71%)
Mutual labels:  ecommerce, store
frontend-developer-coding-challenge
Are your looking for a remote developer job? Solve this frontend developer challenge and show us what you can do and what you are an expert at!
Stars: ✭ 112 (+16.67%)
Mutual labels:  ecommerce, store
awesome-ecommerce
Collect and develop Open Source or Free Projects for building ecommerce platform easy and fast and free
Stars: ✭ 39 (-59.37%)
Mutual labels:  ecommerce, store
CakeShop
eCommerce website with cakephp
Stars: ✭ 19 (-80.21%)
Mutual labels:  ecommerce, store
Simplestore
A clean, responsive storefront boilerplate with no database or backend
Stars: ✭ 468 (+387.5%)
Mutual labels:  ecommerce, store
Nordic Store
Tailwind CSS Starter Template - Nordic Shop / Store
Stars: ✭ 61 (-36.46%)
Mutual labels:  ecommerce, store
amazin
A MERN-stack app for eCommerce platform, Webshop, Web Store. Storybook: https://www.amazin.one/ Alternative: https://ntrix.github.io/amazin-story
Stars: ✭ 27 (-71.87%)
Mutual labels:  ecommerce, store
Spree
Open Source headless multi-language/multi-currency/multi-store eCommerce platform
Stars: ✭ 11,571 (+11953.13%)
Mutual labels:  ecommerce, store
GPS-Mobile-Tracking-App
Angular 9.0 HTML Bootstrap NodeJS and MYSQL App - Store GPS Mobile Browser Location
Stars: ✭ 32 (-66.67%)
Mutual labels:  mobile-app, download-free-source-code
FoodDelivery
E-Commerce demo project. Food delivery application project made with.
Stars: ✭ 106 (+10.42%)
Mutual labels:  ecommerce, store
React Image Magnify
A responsive image zoom component designed for shopping sites.
Stars: ✭ 391 (+307.29%)
Mutual labels:  ecommerce, store
Saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 14,720 (+15233.33%)
Mutual labels:  ecommerce, store
Fluttergames
Flutter app for purchasing and renting games.
Stars: ✭ 182 (+89.58%)
Mutual labels:  ecommerce, store
Vuemmerce
👉 Responsive ecommerce template 🛒 built with Vue.js and Nuxt.js
Stars: ✭ 223 (+132.29%)
Mutual labels:  ecommerce
Zencart
Zen Cart® is a full-function e-commerce application for your website.
Stars: ✭ 250 (+160.42%)
Mutual labels:  ecommerce
Commerceql
UNMAINTAINED
Stars: ✭ 217 (+126.04%)
Mutual labels:  ecommerce
- If you like this project, please consider giving it a star (*) and follow me at GitHub & YouTube.

Download Online Store eCommerce App in Angular 11 Firebase with complete source code


This repository is updated to Angular v11.0.0 now. Please don't forget to update tsconfig.json as well.
Click here for Video Tutorial !
In this video, I will show you one complete Online Store eCommerce App using all latest versions like Angular 6, Angularfire2 and Google Firebase/Firestore database, You will be able to download entire source code, deploy it on your local machine or cloud and I will leave it up to you if you want to enhance this and make more changes.
THis tutorial is not for beginners and is not for teaching purpose, but you don't need to be an expert either to understand these technologies.
I recommend to please take this video as a design pattern discussion where I am showing how we can use different technologies to solve real work problems and deliver a great quality app.

Objective: This document serves as an Installation Guide for Elish eStore Cloud free commmunity version Desktop/Mobile App.

Tools: Angular 6, Google Firebase/Firestore

What's included :

In this repository, Only Online Shop portal is included.

Elish CRM Cloud v1.1.8

Elish CRM Cloud provide a completely free desktop and mobile app for managing Customer, Vendors, CRM and other management modules.

future update/version/releases after v1.1.8 baseline release, will include new features and bug fixes for free under community license. For enhancement/feature requests, please open a new issue at this Github Repository.

App Choices:

#A. Elish HCM Cloud also provide a free web and mobile Enterprise app, hosted on Google Cloud with Google Firebase/Firestore database at:

https://alivetracking.com
Google Playstore - https://alivetracking.com

#B. For Community/Developer edition, developers can download a copy of "out of the box installable software package" or complete source code for free.

Below documentation serves as installation instruciton for point #B mentioned above.

  1. Installation Instruction for "out of the box Installable Desktop/Mobile App"
  2. Community/Developers Open Source Code guide

Installation Instruction for "out of the box Installable Desktop/Mobile App"

------------------------------------------------------------------------------------

If you wish to migrate/upgrade your old desktop or client/server software to enterprise desktop/mobile app, please write to [email protected] for Enterprise version upgrade.

Step #1: Install NodeJS, Angular CLI
Please follow Video Tutorials along installation instruction and proceed to next step when database installation is complete and verified.

Step #2: Signup with Google Firebase
Please follow Video Tutorials along installation instruction and proceed to next step when database installation is complete and verified.

  1. Setup Firebase Sign-in methods (enable Google, Facebook and email signin)
  2. Make sure, Firebase Sign-in method include your domain for autherntication.
  3. Open Firebase > Database > rules
    copy paste following code in rules tab, save and publish.

service cloud.firestore {
  match /databases/{database}/documents {
   
  	match /onlinestore/{document} {
    allow read: if false;
    allow write: if false;
    }
    
    match /onlinestore/elish/admins/{documents} {
    allow read: if true;
    allow write: if false;
    }
    
    match /onlinestore/elish/carts/{documents} {
    allow read: if request.auth.uid!= null && 
    request.auth.uid == get(/databases/$(database)/documents/onlinestore/elish/carts/$(document)).data.authid;
    allow write: if request.auth.uid!= null;
    }
    
    match /onlinestore/elish/product/{documents} {
    allow read: if true;
    allow write: if request.auth.uid!= null;
    }
  
  	// rules for estore collections
  	 match /estore/{document} {
      allow read: if request.auth.uid == get(/databases/$(database)/documents/estore/$(request.auth.uid)).data.authid;
      allow write: if false;
    }
    match /estore/{document}/product/{prods} {
      allow read: if true;
      allow write: if request.auth.uid == get(/databases/$(database)/documents/estore/$(request.auth.uid)).data.authid;
    }
    match /estore/{document}/cart/{shoppingcart} {
      allow read: if isSignedIn() && isDocOwner();
      allow write: if isSignedIn();
    }
    match /estore/{document}/interests/{shoppingcart} {
      allow read: if false;
      allow write: if isSignedIn();
    }
  
    // rules for PORTALDB collections
    match /portaldb/{portaldb} {
      allow read, write: if request.auth.uid != null;
    }
    // rules for USERAUTH collections
    match /userauth/{userauth} {
      allow read, write: if request.auth.uid != null;
    }
    // rules for USERDB collections
    match /userdb/{user} {
      allow read, write: if request.auth.uid != null;
    }
    
    // rules for PORTAL collections
    match /portal/{portaldb} {
      allow read, write: if request.auth.uid != null;
    }
  
  	// rules for USERS collection
  	match /users/{users} {
  	//allow read: if isDocOwner();
    //allow create: if isSignedIn();
    //allow write: if isDocOwner() && get(/databases/$(database)/documents/portal/$(request.resource.data.portal)).data.portal == request.resource.data.portal && get(/databases/$(database)/documents/portal/$(request.resource.data.portal)).data.key == request.resource.data.key;
    allow read, write: if request.auth.uid != null;
    }
      
    }
  	
   // helper functions
    function isDocOwner(){
    // assuming document has a field author which is uid
    // Only the authenticated user who authored the document can read or write
    	return request.auth.uid == resource.data.author;
      // This above read query will fail
    // The query fails even if the current user actually is the author of every story document.
    //  The reason for this behavior is that when Cloud Firestore applies your security rules, 
    //  it evaluates the query against its potential result set,
    //   not against the actual properties of documents in your database. 
    //   If a query could potentially include documents that violate your security rules, 
    //   the query will fail.
    //   on your client app, make sure to include following
    //   .where("author", "==", this.afAuth.auth.currentUser.uid)
    }
    function isSignedIn() {
    // check if user is signed in
          return request.auth.uid != null;
    }
    function isAdmin() {
    return get(/databases/$(database)/documents/attendanceusers/
    $(request.auth.uid)).data.isAdmin == true;
    }
    
    // examples from firestore
    function signedInOrPublic() {
    // True if the user is signed in or the requested data is 'public'
    // assuming document has a field name 'visibility'
      return request.auth.uid != null || resource.data.visibility == 'public';
    }
    function getRole(rsc) {
        // Read from the "roles" map in the resource (rsc).
          return rsc.data.roles[request.auth.uid];
		}
    function isOneOfRoles(rsc, array) {
          // Determine if the user is one of an array of roles
          return isSignedIn() && (getRole(rsc) in array);
    }
    function onlyContentChanged() {
          // Ensure that user is not updating their own roles
          // fields are added to the document.
            return request.resource.data.roles == '';
    }
    function isModuleAdmin() {
    return get(/databases/$(database)/documents/payrollusers/$(request.auth.uid)).data.roles["admin"] == true;
    }
}

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].