Skip to content

Commit

Permalink
feat: bring more latest updates to Github repo
Browse files Browse the repository at this point in the history
  • Loading branch information
evereq committed Feb 13, 2019
1 parent 806e1b5 commit f9805d2
Show file tree
Hide file tree
Showing 195 changed files with 11,943 additions and 10,021 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ Thumbs.db

yarn.lock
/yarn-error.log
*.lerna_backup
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ before_install:
- npm i -g lerna@latest

install:
- git clone -c core.symlinks=true --recursive --depth=3 --branch=$TRAVIS_BRANCH https://github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_REPO_SLUG
- git clone -c core.symlinks=true --recursive --depth=3 --branch=$TRAVIS_BRANCH https://github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_REPO_SLUG
- cd $TRAVIS_REPO_SLUG
- git checkout -qf $TRAVIS_COMMIT
- yarn install
- yarn bootstrap

matrix:
include:
- env: PROJECT=backend/api
# - env: PROJECT=backend/api
# - env: PROJECT=admin/website-angular
# - env: PROJECT=carrier/mobile-ionic
# - env: PROJECT=shop/mobile-ionic
Expand Down
90 changes: 56 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,38 @@ Expect _lots_ of changes and some :bug: and please be nice! :stuck_out_tongue_wi

- Open Platform (every part is Open-Source)
- Everything Reactive, Real-Time and Blazing Fast!
- Headless Commerce framework, which allows different implementations of store-fronts, Admin UIs and client apps. Exposes rich GraphQL, REST and WS APIs.
- Shopping Mobile App for customers to make On-Demand orders (iOS and Android using Ionic / Ionic Native)
- Carrier Mobile App for carriers, drivers or delivery service providers (iOS and Android using Ionic / Ionic Native)
- Shopping e-commerce Website for customers to make in-browser On-Demand purchases of food, goods or services
- Merchant Tablet App used by 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 accross Platform (i18N)
- Products Catalogs (global and per Merchant) with Multiple Product Images
- Inventory Management and Real-time Order Management/Processing accross the Platform
- Deliveries/Shipping management and processing accross Platform (shipping with real-time location tracking)
- Inventory/Stock Management and Real-time Order Management/Processing accross the Platform
- Deliveries/Shipping management and processing accross 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](https://stripe.com))
- Rich GraphQL, REST and WS APIs
- Plugins / Extensions / Custom Fields (WIP)

## Planned Features

- Tax Calculations
- Third-party Shipping providers integrations
- Users Roles / Permissions accross 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](https://github.com/ever-co/feature-requests/issues).

## Technology Stack and Requirements

- Almost every part of the Platform build using [TypeScript](https://www.typescriptlang.org) language (version >=2.9)
- Most of projects require [Node.js](https://nodejs.org) (version >=10)
- Shopping Mobile App developed using [Ionic](https://ionicframework.com) version 4
- Carrier Mobile App developed using [Ionic](https://ionicframework.com) version 3
- [TypeScript](https://www.typescriptlang.org) language (version >=2.9)
- [Node.js](https://nodejs.org) (version >=10)
- [Ionic](https://ionicframework.com) (version 4) for Shopping Mobile App, Carrier Mobile App and Merchant Tablet App
- Shopping Website developed with [Angular](https://angular.io) 7 using [Angular Starter](https://github.com/gdi2290/angular-starter)
- Merchant Tablet App developed using [Ionic](https://ionicframework.com) version 3
- Admin Website developed with [Angular](https://angular.io) version 7 using [ngx-admin](https://github.com/akveo/ngx-admin)
- Backend Api (Server) developed using [Nest](https://github.com/nestjs/nest) with heavy use of our own Pyro module. Supports GraphQL, REST and WS Real-Time APIs (WebSockets using [Socket.io](https://socket.io) library)
- Headless Commerce framework (Backend APIs/Server) developed using [Nest](https://github.com/nestjs/nest) with heavy use of our own Pyro module. Supports GraphQL, REST and WS Real-Time APIs (WebSockets using [Socket.io](https://socket.io) library)
- [RxJS](http://reactivex.io/rxjs) library used heavy in every part of the Platform
- [InversifyJS](http://inversify.io) used for Inversion Control / Dependency Injection in most parts of the Platform. On the Backend/API we also use DI provided by [Nest](https://github.com/nestjs/nest)
- [MongoDB](https://www.mongodb.com) Database used with [Mongoose](https://mongoosejs.com) ORM (supported MongoDB version >= 3.2; we recommend version >=4)
Expand All @@ -60,17 +67,6 @@ For quick overview of each project in the Platform (Server, Admin, Shops, etc),

## Getting Started

### MongoDB

You can download and install free Community version of MongoDB from the [official MongoDB download center](https://www.mongodb.com/download-center/v2/community).

After installation, make sure MongoDB service is running and accepting connections on default `localhost:27017` (change connection parameters in the ./backend/api/.env file if you run on different location/port)

To manage database, you can use free [MongoDB Compass Community Edition available](https://www.mongodb.com/download-center/v2/compass) or some other GUI for MongoDB, e.g. Studio 3T (https://studio3t.com)

For production, we recommend [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).
It is also possible to use [AWS DocumentDB](https://aws.amazon.com/documentdb) or [Azure Cosmos DB](https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction)

### Clone Repo

Clone the Ever Platform Git repo:
Expand All @@ -96,43 +92,69 @@ Notes:

### Yarn

Currently we are using Yarn (instead of npm), so make sure you have latest Yarn version installed before running Ever Platform:
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
```

### Lerna
### Quick installation

We are using [Lerna](https://github.com/lerna/lerna), so you need to run the following command from working folder where you cloned Ever git repo (this will install Lerna and other packages):
After git repo is cloned, just run following command to install/bootstrap all dependencies:

```
yarn bootstrap
```

This will install required packages in all Platform projects using Lerna

### Lerna (manual installation)

We are using [Lerna](https://github.com/lerna/lerna) for mono-repo management.
You need to run the following command from working folder where you cloned Ever git repo, which will install Lerna together with other packages:

```
yarn install
```

You may instead install Lerna globally (recommended) and let Lerna install everything for you:
You may instead install Lerna globally:

```
npm install lerna@latest -g
```

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

```
yarn bootstrap
yarn lerna bootstrap
```

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

### Platform Configuration
### MongoDB

We created template & initial configuration files (with reasonable defaults) for each project in the Platform, to save your time and keep things simple:
You can download and install free Community version of MongoDB from the [official MongoDB download center](https://www.mongodb.com/download-center/v2/community).

After installation, make sure MongoDB service is running and accepting connections on default `localhost:27017` (change connection parameters in the ./backend/api/.env file if you run on different location/port)

To manage database, you can use free [MongoDB Compass Community Edition available](https://www.mongodb.com/download-center/v2/compass) or some other GUI for MongoDB, e.g. Studio 3T (https://studio3t.com)

For production, we recommend [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).
It is also possible to use [AWS DocumentDB](https://aws.amazon.com/documentdb) or [Azure Cosmos DB](https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction)

_Note: we currently integrating [Mongo Memory Server](https://github.com/nodkz/mongodb-memory-server) which will allow to test Platform without need to install MongoDB locally._

### Platform Configuration (optional)

We created templates & initial configuration files (with reasonable defaults) for each project in the Platform, to save your time and keep things simple:

- For _Backend (API)_ configuration, the `./backend/api/.env.template` file should be copied into `./backend/api/.env` and relevant changes should (optionally) be done.

**IMPORTANT**: you should have `./backend/api/.env` file in place to be able to run the Platform on developer machine
**IMPORTANT**: you should have `./backend/api/.env` file in place to be able to run the Platform on developer machine if you want to use different settings to our defaults.

- For _Admin_ Angular App configuration, the `./admin/website-angular/.env.template` file should be copied into `./admin/website-angular/.env` and relevant changes should (optionally) be done.

- For _Admin_ Angular App configuration, see `./admin/website-angular/src/environments/environment.ts` and `./admin/website-angular/src/environments/environment.prod.ts` files
Note: the "Standard" Angular environment configuration files `./admin/website-angular/src/environments/environment.ts` and `./admin/website-angular/src/environments/environment.prod.ts` will be auto-generated from .env file (if it's exists) or from default settings on the first app run

- For _Merchant_ Ionic App configuration, see `./merchant/tablet-ionic/src/environments/environment.ts` and `./merchant/tablet-ionic/src/environments/environment.prod.ts` files. If you need to run Merchant App using PM2 (as Web app, not Tablet App), needs copy `./merchant/tablet-ionic/.env.template` to `./merchant/tablet-ionic/.env` and make relevant changes (if required)

Expand All @@ -144,9 +166,9 @@ We created template & initial configuration files (with reasonable defaults) for

Notes:

- for initial development run no changes required in the `environment.ts` files, unless changes were done to the Backend (API) configuration. However, to enable some of the Platform features, you may need to change relevant configurations at corresponding files.
- for initial development run no changes required in the `.env` or `environment.ts` files in the projects, unless some manual changes were done to the Backend (API) configuration. However, to enable some of the Platform features, you may need to change relevant configurations at corresponding files.

- files environment.prod.ts are configurations for production environments/builds only (you should probably not publish them, unless you removed all private/secure parameters).
- files `.env`, `environment.ts`, `environment.prod.ts` are configurations you should never make public, unless you removed all private/secure parameters from them.

### Run Platform Projects

Expand All @@ -171,7 +193,7 @@ You can use credentials above to login into Platform Admin App, which available
## Contribute

- Please give us :star: on Github, it **really** helps!
- You are more than welcome to submit feature requests in the separate repo: [https://github.com/ever-co/feature-requests/issues](https://github.com/ever-co/feature-requests/issues)
- You are more than welcome to submit feature requests in the [separate repo](https://github.com/ever-co/feature-requests/issues)
- Pull requests are always welcome! Please base pull requests against the _develop_ branch and follow the [contributing guide](.github/CONTRIBUTING.md).

## Collaborators and Contributors
Expand All @@ -191,7 +213,7 @@ You can use credentials above to login into Platform Admin App, which available
- Elvis Arabadjiyski ([Dreemsuncho](https://github.com/Dreemsuncho))
- Emil Momchilov ([jew-er](https://github.com/jew-er))

#### QA
#### Graphic Designer & QA

- Julia Konviser

Expand Down
5 changes: 3 additions & 2 deletions admin/website-angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
"@nebular/security": "^3.1.0",
"@nebular/theme": "^3.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.0.1",
"@ng-select/ng-select": "^2.15.3",
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0",
"@swimlane/ngx-charts": "^10.0.0",
Expand Down Expand Up @@ -164,14 +165,15 @@
"@types/leaflet": "^1.2.14",
"@types/mongodb": "^3.1.18",
"@types/mongoose": "^5.3.7",
"@types/node": "^10.12.18",
"@types/node": "^11.9.3",
"@types/socket.io-client": "^1.4.32",
"@types/stripe": "^6.19.1",
"@types/uuid": "^3.4.4",
"@types/yargs": "^12.0.8",
"babel-loader": "^8.0.5",
"codelyzer": "^4.5.0",
"conventional-changelog-cli": "^2.0.11",
"cross-env": "^5.2.0",
"dotenv": "^6.2.0",
"envalid": "^4.2.1",
"husky": "^1.3.1",
Expand All @@ -192,7 +194,6 @@
"tslint": "^5.12.1",
"tslint-language-service": "^0.9.9",
"typescript": "~3.1.6",
"cross-env": "^5.2.0",
"yargs": "^12.0.5"
},
"engines": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ import { takeUntil } from 'rxjs/operators';
`
})
export class GoogleMapComponent implements OnInit, OnDestroy {
//
@ViewChild('gmap')
mapElement: any;

@Input()
mapTypeEvent: Observable<string>;

@Input()
mapCoordEvent: Observable<google.maps.LatLng | google.maps.LatLngLiteral>;

@Input()
mapGeometryEvent: Observable<
google.maps.places.PlaceGeometry | google.maps.GeocoderGeometry
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ $nb-themes: nb-register-theme(
alert-bg: #1f212a,
select-bg: #1f212a,
color-bg: #1f212a,
color-info: #888,
drops-icon-line-gadient: -webkit-linear-gradient(gray, black),
// cards
card-border-color: rgba(0, 0, 0, 0.125),
Expand Down
6 changes: 6 additions & 0 deletions admin/website-angular/src/app/@theme/styles/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
@import './angular2-wizard';
@import './google-map';

@import '~@ng-select/ng-select/themes/default.theme.css';

// In the future versions of ngx-highlight we need to import theme globally
// @import 'node_modules/highlight.js/styles/github';
// install the framework and custom global styles
Expand Down Expand Up @@ -177,3 +179,7 @@ ea-product-create .card-footer {
border: 2px solid white;
}
}

.ng-select .ng-select-container .ng-value-container .ng-input > input {
height: auto !important;
}
11 changes: 6 additions & 5 deletions admin/website-angular/src/app/@theme/styles/theme.everdark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,8 @@ export const EVERDARK_THEME = {
secondLineGradFrom: 'orange',
secondLineGradTo: 'red',

secondAreaGradFrom: 'orange',
secondAreaGradTo: 'red',
secondAreaGradFrom: '#ce4843',
secondAreaGradTo: 'orange',
secondShadowLineDarkBg: '#2c5a85',

// third line
Expand Down Expand Up @@ -206,9 +206,10 @@ export const EVERDARK_THEME = {
},

orderProfitLegend: {
firstItem: 'linear-gradient(90deg, #00c7c7 0%, #00d977 100%)',
secondItem: 'linear-gradient(90deg, #a454ff 0%, #7659ff 100%)',
thirdItem: '#4e40a4'
firstItem:
'linear-gradient(90deg, #47d26f 0%, mediumspringgreen 100%)',
secondItem: 'linear-gradient(90deg, #ce4843 0%, orange 100%)',
thirdItem: 'linear-gradient(90deg, gray 0%, lightgray 100%)'
},

visitors: {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<div class="modal-header">
<h3>{{ 'CARRIERS_VIEW.CARRIER_PAGE.CARRIER_INFO' | translate }}</h3>
<button class="close" aria-label="Close" (click)="cancel()">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<h6>
<strong
>{{ 'CARRIERS_VIEW.CARRIER_PAGE.CARRIER_ID' | translate }}:</strong
>
{{ carrierId }}
</h6>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';

@Component({
template: `
<div class="modal-header">
<h3>{{ 'CARRIERS_VIEW.CARRIER_PAGE.CARRIER_INFO' | translate }}</h3>
<button class="close" aria-label="Close" (click)="cancel()">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<h6>
<strong
>{{
'CARRIERS_VIEW.CARRIER_PAGE.CARRIER_ID' | translate
}}:</strong
>
{{ carrierId }}
</h6>
</div>
`
templateUrl: './carrier-info.component.html'
})
export class CarrierTableInfoComponent implements OnInit {
public carrierId: string;
Expand Down
Loading

0 comments on commit f9805d2

Please sign in to comment.