Skip to content

ntindle/gridfinity-space-optimizer

Repository files navigation

Gridfinity Calculator

CI Code Quality CodeQL SAST Deploy codecov

This project is a web-based calculator for designing custom Gridfinity layouts, built with React, Vite, and Tailwind CSS.

Features

  • Easy-to-use calculator interface
  • Customizable grid dimensions
  • Real-time visual preview
  • Export designs for 3D printing
  • Support for various 3D printer sizes

Getting Started

Prerequisites

  • Node.js (version 22.5 or later recommended)
  • npm or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/ntindle/gridfinity-space-optimizer.git
  2. Navigate to the project directory:

    cd gridfinity-space-optimizer
  3. Install dependencies:

    npm install

    or

    yarn install

Development

To run the development server:

npm run dev

or

yarn dev

The application will be available at http://localhost:8080 by default.

Testing

Run the test suite:

npm test

Run tests with coverage:

npm test -- --coverage

Linting

Check code quality:

npm run lint

Building for production

To create a production build:

npm run build

or

yarn build

CI/CD

This project uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Runs on every push and pull request

    • Tests across Node.js versions 18.x, 20.x, and 22.x
    • ESLint and TypeScript type checking
    • Build verification
    • Bundle size analysis
  • PR Checks: Automated quality gates for pull requests

    • Test coverage reports
    • Code quality metrics
    • Automated PR comments with status
  • Deployment: Automatic deployment to GitHub Pages on main branch

  • Security:

    • CodeQL semantic analysis for JavaScript/TypeScript
    • Multiple SAST tools (Semgrep, Snyk, Trivy)
    • Secret detection (Gitleaks, TruffleHog)
    • Weekly dependency audits
    • Automated Dependabot updates
  • Accessibility: Automated WCAG 2.0/2.1 compliance testing

  • Performance: Lighthouse CI and bundle size monitoring

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

All pull requests must pass:

  • TypeScript type checking
  • ESLint with no errors
  • All tests passing
  • Successful build

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Gridfinity for the original modular storage system concept
  • Vite for the fast build tool and development server
  • React for the UI library
  • Tailwind CSS for the utility-first CSS framework
  • Shadcn UI for the beautiful and customizable UI components

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7