Giter VIP home page Giter VIP logo

zaccord's Introduction

Zaccord

A service for ordering STL files and lithophanes & a webshop for selling 3D printed products.

Zaccord is a Hungary-based e-commerce website where users can order a variety of 3D-printed products or upload their STL files for custom printing & creating lithophanes.
We tried to create a great customer experience by allowing users to upload their own STL files, give them an instant quote and provide the possibility to order their uploaded products immediately.

Target audience

We aim to make Zaccord available for as many people as we can but currently we are limited to Hungary. Therefore, only Hungarain citizens and people with a valid Hungarian address are able to use the service and buy products since shipping is restricted to inland.
Also note that Zaccord is currently only available in Hungarian.

Technical

The site is mostly written in JS (Node.js on server side) and the price calculation algorithm is implemented in C. The price is solely determined by the uploaded STL file and no slicing or g-code generation occurs on the server side. Despite that it makes the calculation less precise it also eliminates the need to create a request to the server side and return it to the client, making the process faster and easier.

Price calculation & STL parsing

First an estimated price is calculated from the STL file which can change later if the user modifies some of the parameters. The base price is determined by an algorithm you can find here.

TODOs

Implementing one or more of the following features would be nice & you may also get a reward:

  • Geometrically check if the uploaded STL file determines a closed object in space
  • Check if the STL file has a minimum wall thickness (necessarry for printing)
  • Check any other requirements for 3D printing
  • View lithophanes in STL mode (see 3DRocks)
  • A clever algorithm for giving a close enough price estimate for custom printed products & lithophanes
  • Anything else you think would be cool...

Distributing source code

If you found any bugs or want to contribute to the development of Zaccord as a developer feel free to do it in a pull request. You can even use it as a reference for creating your project or getting ideas for 3D-printing websites.

Contributing

If you want to contribute to the development of Zaccord feel free to do it. We are grateful for anyone who contributes to the project.
In addition, if you implement one or more of the TODOs listed above or significantly contribute to this project we may send you a free 3D printed product of your choice.

Setting up the project

After cloning the repository & installing Node.js create the database by importing database.sql to MySQL.
In src/js/includes/connConstants.js configure the parameters for connecting to the database.
If you want to use all features you should configure src/js/includes/constants.js according to your needs.
The minimum you need to do to make it work is to change SESSION_SECRET in src/js/includes/constants.js to some random string.
Note that Zaccord is only tested in Node v. 16 and it’s advisable to run it with this version. I’m planning to test it on newer versions of Node as well. To install the run npm ci to install the dependencies from package-lock.json.
Optionally, you can download Slic3r as an executable & its libraries and place it under Slic3r. It’s ignored it the current version.
To start the project run node app.js and the site should be up on port 5000.

Contact

If you have any questions drop me with an e-mail at [email protected].

zaccord's People

Contributors

dependabot[bot] avatar squancy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zaccord's Issues

cannot start app

Hello
i have a error

node app.js
[ 470, 450, 450 ] [ 250, 220, 120 ]
/root/zaccord/node_modules/client-sessions/lib/client-sessions.js:548
throw new Error("cannot set up sessions without a secret "+
^

Error: cannot set up sessions without a secret or encryptionKey/signatureKey pair
at clientSessionFactory (/root/zaccord/node_modules/client-sessions/lib/client-sessions.js:548:11)
at createSession (/root/zaccord/src/js/includes/createSession.js:7:17)
at Object. (/root/zaccord/app.js:113:19)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47

any idea ?

many thanks

Failed Database Table 3d.z_prod

Hi,

Great Work and thanks for your comment from my prev post.

I missing a database table 3d.z_prod

(node:126954) UnhandledPromiseRejectionWarning: Error: ER_NO_SUCH_TABLE: Table '3d.z_prod' doesn't exist

it is not in the database.sql dump.

where is the directory e-invoice?
error: ENOENT: no such file or directory, open 'e-invoices/998597326835.pdf'

least where are the storage from the STL Files ?

many questions :-)

Thanks

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.