Giter Site home page Giter Site logo

baitcenter / ever Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ever-co/ever-demand

0.0 1.0 0.0 29.81 MB

Ever® - Open-Source Commerce Platform for On-Demand Economy and Digital Marketplaces

Home Page: https://ever.dev

License: Other

JavaScript 1.53% Dockerfile 0.06% HTML 24.80% TypeScript 63.72% CSS 9.89%

ever's Introduction

*** If you are running IT Company, check our new project Gauzy ***

Join the community on Spectrum Gitter Get help on Codementor

Open-Source On-Demand Commerce Platform

Ever® is an Open-Source, Real-Time, Reactive, On-Demand Commerce Platform built with TypeScript.

overview

Features

  • Modern & Open Platform for On-Demand Economy and Digital Marketplaces
  • Supports Single-Store and Multi-Store / Multi-Vendor / Peer-to-Peer Marketplaces
  • Everything Reactive, Real-Time and Blazing Fast!
  • Headless Commerce framework, which allows different implementations of store-fronts, Admin UIs and client apps. It exposes rich GraphQL, REST and WS APIs.
  • Mobile ordering App for customers to make On-Demand orders (Hybrid / PWA, iOS and Android using Ionic / Ionic Native)
  • Carrier (Driver) Mobile App for deliveries by carriers, drivers or service providers (iOS and Android using Ionic / Ionic Native)
  • Customizing Shopping e-commerce Website for customers to make in-browser On-Demand purchases of food, goods or services
  • Merchant Tablet App for Stores/Merchants/Warehouses to manage & track orders, organize deliveries, etc.
  • Admin Website used to manage all platform features and settings in the single Web-based interface
  • Multi-language and culture settings across Platform (i18N)
  • Products Catalogs (global and per Merchant) with Multiple Product Images
  • Inventory/Stock Management and Real-time Order Management/Processing across the Platform
  • Deliveries/Shipping management and processing across Platform (shipping with real-time location tracking for On-Demand orders)
  • Real-Time discounts, promotions and products/services availability updates
  • Customers registration, Guest Checkouts, Invitations (optional)
  • Gateway and Payment Processing (currently supported Payments Gateway - Stripe)
  • Plugins / Extensions / Custom Fields (WIP)

Planned Features

  • Tax Calculations
  • Third-party Shipping providers integrations
  • Users Roles / Permissions across Platform
  • Large products catalogs with products variants, facets and full-text search

You can also track feature requests from the community in the separate repo.

Disclaimer

A word of caution: We are in α (alpha), i.e. Ever® Platform™ is very much under development (work in progress, WIP).
Expect lots of changes and some 🐛 and please be nice! 😜

Technology Stack and Requirements

  • TypeScript language (version >=2.9)
  • Node.js (version >=10)
  • Ionic (version 4) for Shopping Mobile App, Carrier Mobile App and Merchant Tablet App
  • Shopping Website developed with Angular 8 using Angular Starter
  • Admin Website developed with Angular version 8 using ngx-admin
  • Headless Commerce framework (Backend APIs/Server) developed using Nest with heavy use of our own Pyro module. Supports GraphQL, REST and WS Real-Time APIs (WebSockets using Socket.io library)
  • RxJS library used heavy in every part of the Platform
  • InversifyJS used for Inversion Control / Dependency Injection in most parts of the Platform. On the Backend/API we also use DI provided by Nest
  • MongoDB Database used with Mongoose ORM (supported MongoDB version >= 3.2; we recommend version >=4)
  • We have ongoing effort (WIP) to add support for other databases using TypeORM and Prisma. Following additional DBs will be fully supported: MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server and Oracle.
  • For production, we integrate and recommend to use PM2

See also README.md and CREDITS.md files in relevant folders for lists of libraries and software included in the Platform, information about licenses and other details.

Documentation

Please refer to our official Platform Documentation and to our Wiki (WIP).

For a quick overview of each project in the Platform (Server, Admin, Shops, etc.), you can search for README.md file in the root of the projects folders. For example, see ./backend/api/README.md for Server (Backend) related overview.

Getting Started

We follow Gitflow Workflow, so the develop branch may be in an unstable or even broken state during development. Please use releases or master branch instead of the develop branch in order to get more stable code.

Clone Repo

Clone the Ever Platform Git repo:

git clone -c core.symlinks=true --recursive https://github.com/ever-co/ever.git

IMPORTANT NOTES:

  • if you want to use development branch (unstable, but latest development) clone using --branch develop
  • it's necessary to enable Git symlinks because they used for shared modules (every project has symlinks to shared modules in the /shared folder)
  • because of symlinks, you may need to clone from an elevated command prompt. On Windows run console with "Run as Administrator" option.

If you use Git >= v2.14, it probably makes sense to setup following globally:

git config --global core.symlinks true
git config --global submodule.recurse true

Notes:

  • to setup Symlinks & Submodules recurse locally only (for Ever repo), remove --global in the commands above
  • for older Git versions see this
  • at the moment we are not using Git sub-modules, but it may change in the future (we were using them, but decided to drop for now in favor of symlinks)
  • we are moving from symlinks to npm modules managed by Lerna. See branch https://github.com/ever-co/ever/tree/feature/use-packages

Yarn

Currently, we are using Yarn (instead of npm), so make sure you have latest Yarn version installed before running Ever Platform:

npm install -g yarn@latest

Quick installation

After git repo cloned, just run following command to install/bootstrap all dependencies:

yarn bootstrap

Above command install required packages in all Platform projects using Lerna.

Note: if above command fails for any reason, you can try to install required packages manually by running yarn inside every sub-folder with 'package.json' file

Lerna (manual installation)

We are using Lerna for mono-repo management. You need to run the following command from the working folder where you cloned Ever git repo, which install Lerna together with other packages:

yarn

You may instead install Lerna globally:

npm install lerna@latest -g

Now, after Lerna installed (locally or globally), you need to Bootstrap all dependencies manually:

yarn lerna bootstrap

The command above install all required packages for every sub-project of the Ever Platform.

Note: if above command fails for any reason, you can try to install required packages manually by running yarn inside every sub-folder with 'package.json' file

MongoDB

Ever platform configured to use MongoDB by default and assume you have MongoDB service running and accepting connections on the default localhost:27017. Please see relevant section in our documentation.

Platform Configuration

See relevant section in our documentation.

Run Platform Projects

Finally, each project from Ever Platform could start by single command from this list:

Note 1: during development you can run server with yarn run:server:dev to enable watch on TS files changes

Note 2: on the first run, API Server (Backend) creates MongoDB local database ever_development with the following (default) Admin user

You can use credentials above to login into Platform Admin App.

Metrics

According to cloc project, Ever Platform today has more than 120K lines of TypeScript, GraphQL, HTML / CSS and other code files. You can get more details in the relevant section of our documentation.

Contribute

  • Please give us ⭐ on Github, it helps!
  • You are more than welcome to submit feature requests in the separate repo
  • Pull requests are always welcome! Please base pull requests against the develop branch and follow the contributing guide.

Collaborators and Contributors

Development Team

Core

Developers (alphabetical order)

Designers & QA

Contributors

View full list of our contributors.

Contact Us

Security

Ever Platform follows good security practices, but 100% security cannot be guaranteed in any software!
Ever Platform is provided AS IS without any warranty. Use at your own risk!
See more details in the LICENSE.md.

In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, Socket.io WebSockets, etc.).

License

This software is available under following licenses:

The default Ever® Platform™ license, without a valid Ever® Platform Enterprise™ or Ever® Platform Small Business™ License agreement, is the Ever® Platform Community™ Edition License.

Please see LICENSE.md for more information on licenses.

FOSSA Status

Trademarks

Ever® is a registered trademark of Ever Co. LTD.
Ever® Platform™, Ever® Platform Community™, Ever® Platform Small Business™ and Ever® Platform Enterprise™ are all trademarks of Ever Co. LTD.

The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.

All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

Circle CI codecov Codacy Badge DeepScan grade Known Vulnerabilities Greenkeeper badge FOSSA Status lerna

*** If you are running IT Company, check our new project Gauzy ***

ever's People

Contributors

ademhodzic avatar alextasev avatar alish931 avatar alishmekliov931 avatar blagovestgerov avatar boyanstanchev avatar closedspace avatar deecoded avatar deepaksslibra avatar dependabot[bot] avatar evereq avatar fossabot avatar greenkeeper[bot] avatar morggansoft avatar mrkomish avatar snyk-bot 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.