Skip to content

mnnxp/cdbs-app

Repository files navigation


Logo

Frontend for CADBase Platform

CADBase is a digital platform for sharing 3D models and drawings!
View site · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Test
  5. Roadmap
  6. Contributing
  7. Repositories
  8. License
  9. Contact
  10. Acknowledgments

About The Project

Page Component Screen Shot

This is a digital platform for sharing 3D models, drawings and other engineering data.

At first glance, it may seem that all the challenges of exchanging 3D models, drawings and other engineering data with regard to their versioning and availability have already been solved by existing solutions.

Mechanical engineers and other inventors can already take advantage of this platform and gain the following benefits:

  • Specific data dependencies may interact, such as file sets for component modifications, facilitating work with various computer-aided design (CAD), CAE, CAM, and other systems
  • All users of the platform have access to the API functionality, and each user can connect to the server using their authorization token
  • The ability to integrate the platform with various computer-aided design systems and other solutions provides platform users with a wide range of opportunities for workflow automation
  • File versioning support allows you to return files to the state they were in before the changes, review the changes, and find out who last changed something and caused the problem

We have an ambitious goal: to create a design data exchange solution that is suitable for most engineers.

If you're interested, we're also on YouTube CADBase Platform.

And if you're not interested in this site and its functionality, you can try to profit from the code base of this site. In any case, have peace and goodwill ;)

Built With

For the creation of this part of the project, the following solutions have been used Yew BULMA Three.js

Libraries used
router yewtil bindgen logger instant lipsum log getrandom rand chrono dotenv_codegen lazy_static parking_lot cmark serde regex serde_json thiserror graphql_client wee_alloc web-sys wasm-bindgen-test toml js-sys console_error_panic_hook anyhow

Many thanks to all of you who have contributed to the projects listed above and to the projects listed in the Acknowledgments section! Your input has allowed us to make CADBase better and faster.

Getting Started

To start the frontend, you must perform the a few steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • Rust

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Trunk

    # Install via homebrew on Mac, Linux or Windows (WSL).
    brew install trunk
    # Install a release binary (great for CI).
    # You will need to specify a value for ${VERSION}.
    wget -qO- https://github.com/thedodd/trunk/releases/download/${VERSION}/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
    # Install via cargo.
    cargo install --locked trunk
    # Until wasm-bindgen has pre-built binaries for Apple M1, M1 users will
    # need to install wasm-bindgen manually.
    cargo install --locked wasm-bindgen-cli

Installation

Note: Before performing step 2, check the correct settings of the environment in the file '.env'.

  1. Clone the repo
    git clone https://gitlab.com/cadbase/cdbs-app.git
  2. Build, watch & serve the Rust WASM app and all of its assets
    trunk serve

Usage

We haven't yet opened the backend to a high-profile audience. But since the primary server API is available to all users, you can use these settings:

  API_BACKEND=https://api.cadbase.rs
  API_GPL=https://api.cadbase.rs/graphql

Also please refer to the API Reference if you want make more about API CADBase

Test

If you want to run tests, a few tests are located in the 'tests' folder.

Preparing

To run the tests, you will need to install the framework TestCafe.

  npm i testcafe
  # or (if you prefer yarn)
  yarn add testcafe

Run

This example will run a login test that will be performed using the Firefox browser.

  npm testcafe firefox tests/login_test.js
  # or (if you prefer yarn)
  yarn testcafe firefox tests/login_test.js

Roadmap

  • Make an MVP
  • Add instructions for site users
  • Add versioning support for files
  • Add 3D Viewer (via Three.js)
  • Multi-language Support
    • English
    • Russian
    • Chinese
    • Spanish

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Repositories

The code is distributed in several repositories so that people who want access to the code can get it.

We hope that everyone will be able to access the code published here.

Main

GitLab - https://gitlab.com/cadbase/cdbs-app

Mirrors

Codeberg - https://codeberg.org/mnnxp/cdbs-app

GitHub - https://github.com/mnnxp/cdbs-app

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Ivan Nosovsky - [email protected] or mnnxp#1839 (Discord)

Xia TianHao - [email protected] or Sansx (GitHub)

Acknowledgments