Coder Social home page Coder Social logo

jvelo / mayocat-shop Goto Github PK

View Code? Open in Web Editor NEW
173.0 173.0 116.0 22.25 MB

[RETIRED] Open source e-commerce and marketplaces made simple on the JVM

License: Other

Java 50.22% JavaScript 22.21% Groovy 16.51% HTML 8.14% PLpgSQL 0.11% SQLPL 0.07% Shell 0.58% CSS 2.10% TSQL 0.06%

mayocat-shop's People

Contributors

jvelo avatar leoaugust19 avatar nesk avatar oeil2lynx avatar veloce 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mayocat-shop's Issues

Move from rhino/handlebars.js to Handlebars.java for server-side rendering

There are several reason why we want to move towards native Handlebars rendering. The main reasons are :

This will also come with some brawbacks:

  • We will need to write most helpers twice (one time for the server-side rendering, one time in JS for client-side rendering). There's a bit of upfront work for the SWAG helpers. Note that for some helpers, there is already two different versions client and server side because some APIs are not available client side (see localization helpers for instance).

Entities image management revamp

The objective of this refactoring/revamp is to introduce new use cases around image management for entities (products, pages, etc.), namely :

  • The possibility to sort images of the entity "main" image gallery
  • The possibility for an entity to define several image galleries.
  • The possibility to define entity addons of type "image" or "image gallery"

Some of the steps required to achieve this :

  • Add a postgres column of type "array of uuid" (uuid[]) to tables of entity that have galleries (right now : product, page, article, collection)
  • Write a migration that will populate this new column with, for each entity, the complete list of image attachments that have that entity as parent.
  • Adapt the REST APIs (To be defined how)
  • Adapt the back-office client

Cropping an image can generate an incorrect URL

While editing an image, if you crop it, there's a chance that the generated URL contains some space characters, which doesn't seems to handled by Mayocat's router.

For example, when I do a cropping similar to this:
capture decran 2013-10-07 a 16 15 47

I get this URL from the server:

/images/thumbnails/vines4_96_77_1 021_1 021.jpg?width=720&height=720

And if I try to access this URL, the server returns a 404 error.

Some little bugs to fix

  • There's no visual feedback when clicking on the Save button on a product page.
  • The labels showing the steps for an order arent correctly highlighted.
  • The buttons inside the Actions menu next to a thumbnail shouldn't be centered.
  • There is no way to edit the collections.
  • When we click on the delete link of an entity, the confirmation modal can pop multiple overlays, this seems to happen randomly.
  • An error 500 happens when a thumbnail is saved without any changes.
  • When a thumbnail is edited, the page must be reloaded to be able to edit another thumbnail.
  • The featured option on a thumbnail can't be removed once it's set.
  • Inside the theme.yml file, the height property must be specified for thumbnails or the server will always return an error (500).
  • If an image is cropped, then removed and reuploaded, the cropping values will still be available. This bug is client side, if the page is reloaded it will disappear.

Can't create two pages with the same name

This seems legitimate but the behavior isn't adapted. When we create a page with a name identical to another one, the creation form never disappear, instead we can see in the network pane there is a 409 error. This error should be handled and an explicit message should be displayed.

Back-office client packaging

  • LESS precompilation instead of JS compilation
  • URI for resources and angular.js templates that defeat browser cache at each release
  • ...

Find out why mayocat-platform-manager build sometime fails with PermGen

What's strange is that every time I got a PermGen, it's always on this module, and its build is not exotic.

Happened on 2 different machines already.

[ERROR] The system is out of resources.
[ERROR] Consult the following stack trace for details.
[ERROR] java.lang.OutOfMemoryError: PermGen space
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
[ERROR] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[ERROR] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
[ERROR] at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[ERROR] at java.security.AccessController.doPrivileged(Native Method)
[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[ERROR] at org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:56)
[ERROR] at com.sun.tools.javac.util.JCDiagnostic$Factory.<init>(JCDiagnostic.java:81)
[ERROR] at com.sun.tools.javac.util.JCDiagnostic$Factory.<init>(JCDiagnostic.java:70)
[ERROR] at com.sun.tools.javac.util.JCDiagnostic$Factory.instance(JCDiagnostic.java:60)
[ERROR] at com.sun.tools.javac.util.Log.<init>(Log.java:128)
[ERROR] at com.sun.tools.javac.util.Log.<init>(Log.java:199)
[ERROR] at com.sun.tools.javac.util.Log.<init>(Log.java:193)
[ERROR] at com.sun.tools.javac.util.Log.instance(Log.java:206)
[ERROR] at com.sun.tools.javac.util.BaseFileManager.setContext(BaseFileManager.java:72)
[ERROR] at com.sun.tools.javac.file.JavacFileManager.setContext(JavacFileManager.java:156)
[ERROR] at com.sun.tools.javac.file.JavacFileManager.<init>(JavacFileManager.java:148)
[ERROR] at com.sun.tools.javac.file.JavacFileManager$1.make(JavacFileManager.java:135)
[ERROR] at com.sun.tools.javac.file.JavacFileManager$1.make(JavacFileManager.java:133)
[ERROR] at com.sun.tools.javac.util.Context.get(Context.java:147)
[ERROR] at com.sun.tools.javac.util.Context.get(Context.java:190)
[ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:422)
[ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:353)
[ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:342)
[ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:333)
[ERROR] at com.sun.tools.javac.Main.compile(Main.java:94)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Database migrations improvements

There are a couple of needs with regard to database migrations we need to address

  • Ideally each module should bring its own migrations. Right now everything is in platform/store/rdbms/migrations, it would be great to split between platform, shop and cms
  • A migration check could be performed at start-up time, and the application would refuse to start up if there are migrations not applied yet

Support for entities localization

  • Back-end support for localized entities
  • Locale switch on entities localized fields
  • Locales list picker in general settings "other locales" (instead of the plain text input)

Image compression could be better

Currently, an image uploaded to Mayocat is compressed a bit harshly. It could be interesting to switch to another compression library or even to an external process like ImageMagick.

Admitting there's no better library, introducing a dependency to ImageMagick could be troublesome for some servers without it. It would great if Mayocat was able to fallback to a JVM library to compress the images if ImageMagick isn't available.

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.