Git Product home page Git Product logo

app's Introduction

CouchCommerce App

This is our App based on our SDK.

Prerequisites

You need to have the following tools installed globally on you machine:

  • node
  • npm
  • bower
  • karma
  • compass
  • protractor

Make sure to install Java on your local machine.

Installation

Clone the repo via git:

$ git clone https://github.com/sofa/app sofa-app && cd sofa-app

Install depencencies:

$ npm install
$ bower install

Running the App

To run the app you have to make sure that a selenium server is running, since the inital build task will run all provided e2e tests. To run a selenium server all you have to do is to run

webdriver-manager start

The webdriver-manager comes with the installation of protractor (npm install -g protractor).

After that simply run:

$ grunt watch

This will run the build and the delta task. You can now open a browser at http://localhost:9000.

The task also takes care of re-running sub targets during development when changes occur.

Configuration

To configure the app, makes changes in the build.conf.js file accordingly.

Build Tasks

  • grunt watch - process build tasks and starts a server for you
  • grunt build - generates a build of the app. This can be run in the browser.
  • grunt compile - compiles a built app. The result is a production ready package.
  • grunt compile-debug - same as compile without uglified JavaScript
  • grunt deploy - deploys the app.
  • grunt deploy-debug - same as deploy without uglified JavaScript.

##Versioning

Make sure to update dependency versions of sofa in the package.json. Working directly against unversioned npm packages totally breaks the whole idea of version control. Unfortunately we had that wrong for one week between versions 0.32.0 and 0.33.0 so that any ref you might check out in between could be broken in subtile different ways. Deployment packages are correct though since those add a fixed sofa dependency directly to version control.

The typical update process goes like this:

1. Create new versions of sofa dependencies that need updates.

  • 1.1 run grunt in the sofa component to run tests and produce dist files
  • 1.2 run grunt changelog to generate the changelog accordingly
  • 1.3 update package.json and bower.json with the new version number according to http://semver.org/
  • 1.4 make a commit that roughly goes like this chore(release): cutting the 0.3.4 release
  • 1.4 tag the version (e.g. git tag 0.3.4)
  • 1.5 run git push origin master && git push --tags
  • 1.6 run npm publish

2. OPTIONALLY (IF NEEDED): Create new version of sofa-base

  • 2.1 run grunt in sofa-base
  • 2.2 tag the version according to http://semver.org/ (e.g. git tag 0.33.0)
  • 2.3 run git push origin master && git push --tags

3. Update the app

  • 3.1 update the package.json of the app to use the correct versions of the sofa dependencies
  • 3.2 make a commit that roughly goes like this chore(package.json): updating dependencies
  • 3.2 in case updates have been made to sofa-base make sure to also update the tag dependency in the app's package.json
  • 3.3 run grunt deploy --app-version=VERSION with the correct version number (e.g. grunt deploy --app-version=0.50.0)
  • 3.4 enjoy!

4. Deploy versions from the console

  • 4.1 go to couchdemoshop/admin
  • 4.2 pick version from the selectbox and update (might take a minute or two until it shows up)
  • 4.3 drop a note in the QA room about the update and what they should test
  • 4.4 Wait for feedback, slowly roll it out to a handful shops if everything is fine and give another note to the QA team about updated shops
  • 4.5 Roll it out to all the other shops (usually we let a couple of days pass until we roll out things to ALL THE SHOPS)

#Contribute

We'd love you to contribute. Please make sure to read the CONTRIBUTING guide line.

app's People

Contributors

0x-r4bbit avatar basteln3rk avatar cburgdorf avatar danielx12 avatar dimitrigat avatar janpantel avatar nickjanssen avatar revolunet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app's Issues

not working on the windows7

I checked out and installed by 'npm install'.
However it keeps giving me this error message.

npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
[email protected] node_modules\sofa-base
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected])

When I install this app on mac, it works perfectly. Can you check with windows environment or Can you tell me what do I miss?

Unable to install sofa.io on MAc running Mavericks

I tried installing sofa via the download button and run script .. but on running the script I got several errors essentially saying there weren't .json files and that it couldn't find a local grunt.

The json files are in the same directory as the run script Not sure how to check for grunt.

Attempting to open the localhost:9000 doesn't work, not surprisingly.

Any suggestions appreciated!

(routing - question ) State -> product

Hi, i have some questions, maybe you can help me.

what url will match here
https://github.com/sofa/app/blob/master/src/app/app.js#L140 ?

will this just populate the :category ? what will be in :productUrlKey?, maybe is missing a "/" ... i'm just a little confused 😞

and could you explain me what is the function of the UNIQUE_URL_PREFIX. (is just to make the url fall in "$urlRouterProvider.otherwise" ?)

PS: sorry i can't find the way to change the label.

Checkout: Rearrange Steps

Since getSupportedCheckoutMethods() often has a dependency on a valid billingAddress and/or shippingAddress, we want to change the order of the checkout process steps (back) to the common way.

While the current flow looks like this:

  1. Select Payment Method
  2. Select Shipping Method
  3. Add Billing Address
  4. Optionally add Shipping Address

We want it to become this:

  1. Add Shipping Address (yes, better ask for the Shipping Address first)
  2. Optionally add Billing Address
  3. Select Payment Method
  4. Select Shipping Method

Payment and shipping methods will stay disabled, until the required address fields are filled in and valid.

What about PayPal Express Payment?

Paypal Express takes the address data which is stored in the user's PayPal account, so there's no need to ask the user for any address information if she plans to checkout via PayPal Express.
For this reason we want to exclude the PayPal Express payment method from the payment methods select box (which in the new design comes after the address fields) and place it on top of the checkout page (as in the cart drawer).

What about customer score checks?

Any customer score check will only run when the user has selected a payment method that requires checking.

Migrate to Angular 1.3 and take advantage of it's new features

This mainly includes:

  • Replace bind-once with one-time bindings
  • Make use of ngModelOptions in search module (debouncing etc.)
  • Remove sofa-lazy-validation directive and rebuild all forms using ngModelOptions
  • Make custom filters stateful if needed
  • Apply ES6 Style Promise syntax to make code cleaner (rather a nice to have)
  • Disabling Debug Info in production app to get a performance boost for free
  • Use controllerAs syntax whenever possible (Since this is considered a best practice. This has been introduced in 1.2 already)
  • Bind to Directive Controllers in directives with isolated scope and get rid off linkFn where possible. This goes hand in hand with controllerAs.
  • Make use of ngMessages directive for checkout and other forms
  • Integrate features of newly introduced validation process
  • Add ngStrictDI directive to application to be really sure we're on a safe side

I gonna update this issue over time with more things once I explored them.

Port back features from reno

  • define category structure for filters/sorting (example, CategoryTreeResolver reno)
    • How does that scale for large category trees (Arktis)
  • backport
    • filter
    • paging
    • sorting
    • new checkout
    • new search

Build Fail. Dependencies on sofa-base package.

Hey guys. Great work.

I'm getting acquainted with the setup for the first time however there seems to be a dependency problem. It looks like there is a dependency on the npm package sofa-base which doesn't exist. Because of this I'm unable to build and run the app. I've tried to build both master and sofa-1.0.

Please clarify dependency between sofa-app and sofa-base

I can't find any complete installation instructions.

sofa-app/master does not seem to work with sofa-base/master.

sofa-app/sofa-1.0 does not seem to work with sofa-base/sofa-1.0.

sofa-base is not in the npm registry.

How do I get a working install? Thanks.

[package.json] sofa-base npm

Hi guys, i had a problem while running the npm, with this line
"sofa-base": "git+ssh://github.com/couchcommerce/sofa-base.git#0.41.0"

npm ERR! git clone ssh://github.com/couchcommerce/sofa-base.git Permission denied (publickey).
npm ERR! git clone ssh://github.com/couchcommerce/sofa-base.git fatal: Could not read from remote repository.

i solved changing the ssh to https, maybe someone else have the same issue.
Best.

PS: why the base is not an npm module like the others?

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.