squancy / zaccord

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

Home Page:https://www.zaccord.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 mark@pearscom.com.

About

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

https://www.zaccord.com


Languages

Language:JavaScript 52.9%Language:HTML 37.0%Language:CSS 10.1%