All Projects β†’ ccwukong β†’ Elfcommerce

ccwukong / Elfcommerce

Licence: apache-2.0
A headless open source Ecommerce project written in ReactJS + ExpressJS

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Elfcommerce

Inventory Application
Shopping app using MERN stack
Stars: ✭ 74 (+57.45%)
Mutual labels:  ecommerce, inventory-management, expressjs
Shopyo
🎁 Your Open web framework, designed with big in mind. Flask with Django advantages. Build your management systems, ERP products & mobile backend (coming soon). Small business needs apps included by default. First timers friendly. Email: [email protected] | password: pass
Stars: ✭ 172 (+265.96%)
Mutual labels:  ecommerce, e-commerce, inventory-management
kasir
Cashier Management & Inventory Management System
Stars: ✭ 28 (-40.43%)
Mutual labels:  ecommerce, crm, e-commerce
Aimeos Laravel
Laravel ecommerce package for professional, ultra fast online shops, complex B2B applications and #gigacommerce
Stars: ✭ 5,204 (+10972.34%)
Mutual labels:  ecommerce, e-commerce
S Cart
Free Laravel open source e-commerce for business: shopping cart, cms content, and more...
Stars: ✭ 286 (+508.51%)
Mutual labels:  ecommerce, e-commerce
Practicalnode
Practical Node.js, 1st and 2nd Editions [Apress] πŸ““
Stars: ✭ 3,694 (+7759.57%)
Mutual labels:  expressjs, express-js
Quasar Admin Crm
Quasar CRM Admin | VueJS Admin | Featuring 3 different dashboards | Give it a star if you find it useful.
Stars: ✭ 254 (+440.43%)
Mutual labels:  crm, dashboard
Nopcommerce
The most popular open-source eCommerce shopping cart solution based on ASP.NET Core
Stars: ✭ 6,827 (+14425.53%)
Mutual labels:  ecommerce, e-commerce
Example Storefront
Example Storefront is Reaction Commerce’s headless ecommerce storefront - Next.js, GraphQL, React. Built using Apollo Client and the commerce-focused React UI components provided in the Storefront Component Library (reactioncommerce/reaction-component-library). It connects with Reaction backend with the GraphQL API.
Stars: ✭ 471 (+902.13%)
Mutual labels:  ecommerce, e-commerce
Ecommerce Codeigniter Bootstrap
Responsive, Multi-Vendor, MultiLanguage Online Store Platform (shopping cart solution)
Stars: ✭ 788 (+1576.6%)
Mutual labels:  ecommerce, e-commerce
Jet
Jet is an e-commerce framework for Amber / Crystal
Stars: ✭ 18 (-61.7%)
Mutual labels:  ecommerce, e-commerce
Firebase Cms
A CMS + E-commerce platform built with Angular and Firebase
Stars: ✭ 286 (+508.51%)
Mutual labels:  ecommerce, e-commerce
Saleor Dashboard
A GraphQL-powered, single-page dashboard application for Saleor.
Stars: ✭ 278 (+491.49%)
Mutual labels:  ecommerce, dashboard
Serverless Express
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, Lambda@Edge, and ALB.
Stars: ✭ 4,265 (+8974.47%)
Mutual labels:  expressjs, express-js
S Cart
This project has been replaced by https://github.com/s-cart/s-cart
Stars: ✭ 258 (+448.94%)
Mutual labels:  ecommerce, e-commerce
Generator Express No Stress
πŸš‚ A Yeoman generator for Express.js based 12-factor apps and apis
Stars: ✭ 534 (+1036.17%)
Mutual labels:  expressjs, express-js
Veniqa
MEVN Full Stack E-Commerce Solution. Built using MEVN Stack (Node.js, Express.js, Vue.js, MongoDB) with Developer Friendliness and Cloud Integrations in mind. Previously Powered the Veniqa New York Startup. 100% Customizable. For Demos and Documentation, Visit Official Website
Stars: ✭ 832 (+1670.21%)
Mutual labels:  e-commerce, inventory-management
Online Bling
Stars: ✭ 9 (-80.85%)
Mutual labels:  ecommerce, express-js
Node Production
Take Your Node.js Project to The Production Environment (VPS/Dedicated Server).
Stars: ✭ 35 (-25.53%)
Mutual labels:  expressjs, express-js
roboserver
Control OpenComputers robots without writing any code!
Stars: ✭ 52 (+10.64%)
Mutual labels:  expressjs, express-js

ElfCommerce

ElfCommerce is a headless ecommerce dashboard written in ReactJS + ExpressJS. Here is the developer guide for you to start with this project.

Demo account

Username: [email protected]

Password: 123

Installation

Step 1, clone this repo

Step 2, add the .env file in server directory with environment settings:

tokenSecret=REPLACE_THIS_WITH_ANY_LONG_RANDOM_STRING
dbHost=MYSQL_SERVER_CONNECTION_STRING
dbUser=MYSQL_USER
dbPassword=MYSQL_USER_PASSWORD
dbName=MYSQL_DATABASE_NAME
testDbName=MYSQL_DATABASE_NAME_FOR_INTEGRATION_TEST
sendgridApiKey=SENDGRID_API_KEY
sendgridDailyLimit=SENDGRID_DAILY_LIMIT_FOR_FREETIER
elasticemailApiKey=ELASTICEMAIL_API_KEY
elasticemailDailyLimit=ELASTICEMAIL_DAILY_LIMIT_FOR_FREETIER
passwordCallbackUrl=https://www.example.com
senderEmail=SYSTEM_EMAIL_SENDER_EMAIL

Step 3, install all dependancies for ExpressJS

cd server && yarn install

Step 4, install all dependancies for ReactJS

cd client && yarn install

Step 5, create your own config.js in client/src directory with following settings:

const config = {
  apiDomain: 'API_DOMAIN',
  accessTokenKey: 'THE_KEY_FOR_LOCAL_STORAGE_TO_STORE_ACCESS_TOKEN',
  googleApiKey: 'GOOGLE_API_KEY',
  mediaFileDomain: 'http://localhost:8080', //If you allow images to be uploaded to your local server
  saveMediaFileLocal: false, //Set this to true if you allow images to be uploaded to your local server
  sendgridApiKey: 'SENDGRID_API_KEY',
  sendgridDailyLimit: 'SENDGRID_DAILY_LIMIT_FOR_FREETIER',
  elasticemailApiKey: 'ELASTICEMAIL_API_KEY',
  elasticemailDailyLimit: 'ELASTICEMAIL_DAILY_LIMIT_FOR_FREETIER',
  passwordCallbackUrl: 'https://www.example.com',
  senderEmail: 'SYSTEM_EMAIL_SENDER_EMAIL',
};

export default config;

Step 6, set up database

Before run the following command, make sure you already created a database and have it configured in your .env file.

cd server && yarn db:migrate

Step 7 (Optional), if you wanna deploy the RESTful API to AWS lambda function using ClaudiaJS, please make sure you follow the instructions.

ClaudiaJS doesn't create a Lambda function with environment variables from the .env file, thus you'll need to put all environment varibles in a .json file and run the following command when creating a Lambda function for the first time:

claudia create --handler lambda.handler --deploy-proxy-api --region AWS_REGION_NAME --set-env-from-json FILE_PATH

How to run this?

cd client && yarn start

Unit Test

For every main directory (components, containers etc.), there should be a __tests__ directory for all unit test cases.

cd clint && yarn test [test_directory]
cd server && yarn test [test_directory]

Project structure

Project restructured based on Fractal + ducks for greater scalability

β”œβ”€β”€ .circleci                    # CircleCI config file
β”œβ”€β”€ client                       # The web frontend written in ReactJS
β”‚   β”œβ”€β”€ public                   # Static public assets and uploads
β”‚   β”œβ”€β”€ src                      # ReactJS source code
β”‚   β”‚   β”œβ”€β”€ components           # Shared components, like Button, Input etc.
β”‚   β”‚   β”‚   β”œβ”€β”€ __tests__        # Unit test for components
β”‚   β”‚   β”œβ”€β”€ pages                # Top level components
β”‚   β”‚   β”‚   β”œβ”€β”€ __tests__        # Unit test for containers
β”‚   β”‚   β”‚   β”œβ”€β”€ ...              # Sub components of top level components
β”‚   β”‚   β”œβ”€β”€ modules              # Actions + Reducers using ducks file structure
β”‚   β”‚   β”‚   β”œβ”€β”€ __tests__        # Unit test for reducers
β”‚   β”‚   β”œβ”€β”€ utils                # Utilities like language, date utils, string utils etc.
β”‚   β”‚   β”‚   β”œβ”€β”€ languages        # All language translation .json files
β”‚   β”‚   β”‚   β”‚   └── en.json      # Language file
β”‚   β”‚   └── App.css              # Your customized styles should be added here
β”‚   β”‚   └── App.js               # ** Where React webapp routes configured.
β”‚   β”‚   └── index.js             # React webapp start point
β”‚   β”‚   └── config.js            # All global configurations(not included in this repo)
β”œβ”€β”€ scripts                      # Scaffolding & automation scripts
β”‚   └── installation.js          # Script to restore database, generate .env file etc.
β”œβ”€β”€ server                       # The web server part
β”‚   β”œβ”€β”€ db                       # Directory for database raw sql file, migration script etc.
β”‚   β”œβ”€β”€ exceptions               # Directory for all API exception types
β”‚   β”œβ”€β”€ models                   # Directory for all API models
β”‚   β”‚   β”œβ”€β”€ tests                # Directory for all API models test cases
β”‚   β”‚   └── account.js           # User model
β”‚   β”‚   └── auth.js              # Authentication model
β”‚   β”‚   └── categorty.js         # Category model
β”‚   β”‚   └── index.js             # Aggregates all model files
β”‚   β”‚   └── manufacturer.js      # Manufacturer model
β”‚   β”‚   └── order.js             # Order model
β”‚   β”‚   └── product.js           # Product model
β”‚   β”‚   └── public.js            # Public data model
β”‚   β”‚   └── report.js            # Report model
β”‚   β”‚   └── store.js             # Store model
β”‚   β”‚   └── supplier.js          # Supplier model
β”‚   β”‚   β”œβ”€β”€ vendor               # For 3rd party modules
β”‚   β”œβ”€β”€ routes                   # Directory for all router files
β”‚   β”‚   └── auth.js              # Router for authentication endpoints
β”‚   β”‚   └── category.js          # Router for category endpoints
β”‚   β”‚   └── common.js            # Router for public data endpoints
β”‚   β”‚   └── index.js             # Aggregates all router files
β”‚   β”‚   └── manufacturer.js      # Router for manufacturer endpoints
β”‚   β”‚   └── order.js             # Router for order endpoints
β”‚   β”‚   └── product.js           # Router for product endpoints
β”‚   β”‚   └── store.js             # Router for store endpoints
β”‚   β”‚   └── supplier.js          # Router for supplier endpoints
β”‚   β”‚   β”œβ”€β”€ vendor               # For 3rd party modules
β”‚   β”œβ”€β”€ uploads                  # Directory for image uploading, will be created automatically(not included in this repo)
β”‚   └── .env                     # Global environment variables(not included in this repo)
β”‚   └── app.js                   # Restful APIs written in ExpressJS
β”‚   └── app.local.js             # Wrapper file for claudia.js
β”‚   └── lambda.js                # Used by claudiajs for severless deployment, **Don't change contents here.
β”‚   └── package.json             # All project dependancies
β”‚   └── middlewares.js           # Middlewares for ExpressJS routes
└── .eslintrc.json               # **Don't change settings here.
└── .prettierrc                  # **Don't change settings here.
└── LICENSE                      # Project license file, **Don't change contents here.
└── README.md                    # **Don't change contents here.

About the logo

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

License

Elf Commerce is Apache-2.0 licensed.


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].